※ 본 카테고리의 내용은 부스트캠프 챌린지 기간동안 학습한 내용을 바탕으로 정리한 내용입니다.

 

목차


    0. 안드로이드 스튜디오

     

     

    안드로이드 스튜디오(Android Studio) 구글이 안드로이드 앱 개발을 위해서 자바 개발환경으로 매우매우 유명한 IntelliJ IDEA를 기반으로 만든 통합 개발 환경(IDE)입니다.

    2013년에 발표되어 현재 자바, 코틀린, C++등 다양한 언어들을 사용할 수 있게 되었습니다.

    특히 SDK tools를 이용하여 안드로이드 버전별로 다양한 리소스 혹은 네이티브 애플리케이션 제작 등 다양한 개발도구를 병행해서 사용할 수 있도록 하였습니다.

     

    안드로이드 스튜디오의 등장으로 인해 앱 시장에서의 이클립스는 그 자리를 점차 잃어가고 있습니다.

    현재까지 상황을 보면, 결국에는 앱 개발에 있어서 이클립스는 역사의 뒤안길로 사라지지 않을까 조심히 예상해 봅니다.

     

     

    Download Android Studio and SDK tools  |  Android 스튜디오

    developer.android.com

     


    1. 플러터

     

     

    플러터(Flutter)2017년 구글에서 출시한 모바일/웹/데스크톱용 UI SDK이자 프레임워크입니다.

    플러터를 이용하면 하나의 코드로 Android, iOS, macOS, Windows 환경에서 돌아가는 웹앱을 만들 수 있습니다.

    플러터를 사용하기 위해서는 아래에서 설명할 Dart라는 언어를 사용해야 합니다.

     

    플러터의 등장으로 인해서 그 자리를 가장 위협받고 있는 프레임워크는 MS사의 자마린(Xamarin)과 페이스북의 리액트 네이티브(React Native)입니다.

    자마린의 경우 C#과 .NET Framework를 이용하는데, 윈도우 플랫폼을 제외하면 각 진영별 핵심 프레임워크에 비해 큰 경쟁력이 없습니다.

    또한 리액트 네이티브의 경우 리액트를 모른다면 사용하기 어려운 부분이 많고, 코드를 실행할 때 성능저하가 일부 발생할 수 있습니다.

    가장 큰 약점이라면 리액트의 부모님인 페이스북의 지원이 뜨뜨미지근하다는 점도 있겠네요.

     

    이런 상황에서 각 진영의 네이티브급 성능을 보여주고면서 다양한 플랫폼에서 동일하게 돌아가기 때문에 유지보수에 굉장히 편리한 플러터가 크로스플랫폼 프레임워크의 중심으로 떠오르고 있습니다.

     

    특히 플러터의 가장 큰 장점 중 하나는 핫 리로드(Hot-Reload)를 지원한다는 것입니다.

    핫 리로드는 ctrl+s, 혹은 command+s를 통해 모두 저장을 하게 되면 바로 hot-reload가 실행되어 변경 사항이 앱에 적용되는 기능을 말합니다.

    이 말은 곧 변경사항 적용을 위해 굳이 매번 앱을 재실행할 필요가 없다는 이야기가 되겠죠?!

    핫 리로드 기능을 통해서 쉽고 빠르게 UI를 구축하고 기능을 추가하고 빠르게 버그를 수정할 수 있습니다.

     

     

    Flutter - Beautiful native apps in record time

    Flutter SDK is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.

    flutter.dev

     


    2. 다트

     

     

    로고만 봐도 플러터랑 비슷하게 구글 느낌이 나죠?

    다트(Dart)구글이 멀티 플랫폼 상에서 자연스럽게 동작되도록 하는 앱을 만들기 위해 출시하게 된 프로그래밍 언어입니다.

    특히 출시 당시에는 Javascript를 대체하기 위한 언어로 많이 소개되었죠.

    기본적으로 C언어의 문법을 바탕으로 다양한 언어들의 장점만 쏙쏙 빼와서 간결하게 사용할 수 있도록 다양한 기능들을 추가한 언어입니다.

    가장 대표적으로는 main()함수를 채용했다는 점을 들 수 있겠네요.

    근데 왜 이렇게 어렵지?

    공식적으로 지원하는 IDE는 안드로이드 스튜디오, 인텔리제이, VS Code 등이 있습니다.

     

    신기하게도 플러터보다 6년 빠른 2011년에 공개되었습니다.

    사실 플러터 등장 이전에는 굉장히 악명높은 언어로 유명했는데, 다행히 플러터 등장 이후 평가가 어느 정도 반전되어서 점차 점유율을 높여가고 있습니다.

    아마도 구글은 다트를 출시하고 나서 고전을 면치 못하자 다트가 쓰일 수 있을만한 플랫폼을 만들어 주기 위해서 플러터라는 프레임워크를 만들어 준 것이 아닌가라고 쉽게 예측할 수 있습니다!

     

    ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ / 출처 : https://www.codementor.io/blog/worst-languages-to-learn-3phycr98zk

     

    다트의 장점을 살펴보면, 대표적으로 JIT/AOT 컴파일러 지원선언형 프로그래밍 지원이 있습니다.

     

    2.0. JIT/AOT 컴파일러 지원

    우선 JIT(Just-In-Time) 컴파일러AOT(Ahead-Of-Time) 컴파일러를 모두 지원합니다.

    JIT를 이용해 프로그램 실행 중에 즉시 컴파일을 할 수 있고, AOT컴파일을 이용해서 런타임 이전에 컴파일을 실행할 수 있습니다.

    JIT는 우선 실행부터 시키고 컴파일을 할 수 있어서 빠른 개발 주기로 개발을 할 수 있지만 프로그램의 실행 속도가 느려지고(실행 후에 컴파일을 진행하므로), 

    AOT는 프로그램을 변경한 후에 실행해야 하기 때문에 개발 주기가 느리지만 프로그램의 실행 속도는 빨라집니다.

    다트는 두 방법 중에서 원하는 방법을 선택해서 진행할 수 있죠.

    둘 중 하나만 지원하는 것보다는 당연히 둘 다 지원해서 필요에 따라 골라 쓰는게 낫겠죠?

     

    2.1. 선언형 프로그래밍 지원

    그 다음은 선언형 UI를 제공한다는 점입니다.

    명령형 프로그래밍에 비해 더 간결하고 알아보기 쉬운 형태로 작성할 수 있습니다.

    속성을 순차적으로 나열하는 명령형과는 다르게 파라미터별로 속성을 지정합니다.

    지금까지 명령형 언어만 사용해왔다면 명령형이 훨씬 자연스러워 보이는 사람이 있을 수 있으나, 겉보기에도 선언형이 훨씬 명료하고 깔끔해 보이는 것을 확인할 수 있습니다.

     

     

     


     

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기