앱 개발 언어, 안드로이드는 어떤 것을 주로 쓸까?
스마트폰 출시 이후 핸드폰 앱 관련 사업이 크게 증가하면서 이전에 PC에서 하던 대부분의 작업을 스마트폰에서 할 수 있게 되었습니다.
그에 따라 개발의 수요도 급격히 증가하게 되었는데요. 이번 글에는 스마트폰 앱 개발 수요 증가에 따라 안드로이드 앱 개발을 위해 사용되는 안드로이드 언어 3가지에 대하여 이야기해 보려고 합니다. 가장 널리 알려지고 사용되는 언어 대표 3가지. 자바(Java), 코틀린(Kotlin) 그리고 플러터(Flutter)입니다.
자바(Java)
* 출처 : Java 메인 홈페이지
-자바 주요 사용 용도와 특징
자바는 세 언어 중 제일 먼저 부각이 된 프로그래밍 언어입니다. 초장기 온라인게임, 핸드폰 게임, 프로그램 제작에 압도적으로 많은 개발자 들이 자바를 이용해서 제작했는데요. 그 이유는 절차 지향이 아닌 객체지향의 언어로 개발 초창기에 이해하기 쉬운 캡슐화로 다양한 기능을 쉽게 사용할 수 있었기 때문입니다.
또한 컴퓨터의 발달로 메모리 관리에 중요성이 점차 사라지면서 대중적인 언어로 유명해지면서 한때에는 점유율 1위까지 올랐던 언어입니다.
더욱이 안드로이드 스마트폰이 자바를 채택함으로써 안드로이드 개발자들은 자바를 이용하여 초창기 대한민국의 스마트폰 서비스의 발전에 많은 기여를 했습니다.
이렇듯 자바는 대중적인 IT 기기 초창기에 강력한 객체지향 언어로 큰 역할을 했으며 아직까지도 일부 기업, 프로그램들에서 프로그래밍 언어로 많이 사용 중에 있습니다.
- 자바의 장단점
사실 자바를 위의 코틀린, 플러터와 비교하는 것은 큰 의미가 없습니다. 자바는 C, C++, C#, 파이썬 등의 10년 전에 빛을 보던 언어들과 비교를 해야 하고 최근에 나온 코틀린, 플러터는 자바의 단점을 보완하는 형식으로 발전해 왔기 때문입니다.
이러한 배경에서 자바의 장단점을 C, C++ 등의 언어와 비교한다면, 자바는 캡슐화가 쉽고 참조가 까다롭지 않으며, 메모리를 직접적으로 관리하지 않아도 돼서 쉽게 프로그램을 제작할 수 있습니다.
또한 수많은 사람들이 사용함에 따라 구글 같은 곳에 많은 정보가 있어 웬만한 코드는 다 찾아볼 수 있습니다. 하지만 편하게 개발을 할 수 있는 만큼 단점도 있겠죠?
C, C++처럼 직접 메모리를 관리하고 어느 정도 절차 지향의 언어들보다 컴파일 속도가 느립니다. 아주 깊게 들어간다면 결론적으로 같은 기능일 때, 프로그램의 속도가 느리다는 점입니다.
하지만 고성능 PC, 스마트폰이 출현함에 따라 그 속도 차이는 웬만한 프로그램에서 사람이 더 느리다는 느낌은 받지 않게 됐습니다. 그래서 비교적 쉬우면서도 조금은 메모리가 무거운 자바가 빛을 발휘하게 되었습니다.
코틀린(Kotlin)
* 출처 : Kotlin 메인 홈페이지
- 코틀린의 주요 사용 용도와 특징
코틀린은 요즘 안드로이드 스튜디오에서 적극적으로 밀고 있는 프로그래밍 언어입니다.
자바 기반에서 코드량을 줄이고 자바와 호환되어 컴파일이 가능하게 제작된 언어로써 어떻게 보면 안드로이드 앱 개발을 위한 언어라고 해도 과언이 아니라고 할 수 있습니다. 실제로 안드로이드 앱 개발에 가장 많이 사용되고 있지요.
자, 그럼 코틀린은 왜 만들어졌을까요? 현재 자바는 메모리 관리를 거의 하지 않는 언어로 쓰이고 있습니다. 따라서 어떻게 코딩을 해도 프로그램에 동작하긴 하지만 그 내부의 메모리 관리가 잘되지 않아 보이지 않는 곳은 뒤죽박죽 일 수도 있어요.
지금이야 고사양의 하드웨어를 사용하여 상관이 없지만 고성능의 프로그램이나 고사양의 게임, 소형 기기 같은 경우 메모리 관리는 필수적이기 때문에 코틀린은 자바의 성격을 그대로 가져오면서 메모리 관리를 어느 정도 할 수 있게 하는 언어로, 앱을 만들 때 고성능의 기능이 필요하면 메모리 관리에 좀 더 수월하게 개발되었습니다.
코틀린의 메모리 관리는 C언어같이 직접 코드로 구현하는 것이 아닌, 코드 자체에 메모리 관리가 되게끔 고안되었습니다. 예를 들어 파이썬처럼 변수 유형 추론이 가능하고, 메모리 관리를 위한 NULL 처리가 확실하게 되도록 만들어졌습니다.
또한 자바에서 10줄 코드가 코틀린에서는 6줄 정도에 끝날 수도 있으며, 긴 라이브러리도 코틀린은 자바보다 확실히 짧게 구현 가능합니다. 글로만 봐선 잘 모르시겠죠? 코드를 예시로 들어보겠습니다.
* 코드 예시 - Java
* 코드 예시 - Kotlin
위의 예시는 버튼 클릭 시 동작하도록 작성된 코드입니다. 자바는 자바 언어를 안드로이드 스튜디오에 맞춘 느낌이라면, 코들린은 안드로이드에서 편하게 코딩을 하기 위해 만들어진 느낌입니다.
코틀린은 까다로운 변수 유형 정의부터 다른 함수를 override 하는 부분 등을 모두 없애고 안드로이드 특성에 맞게 함수를 그냥 갖다 쓸 수 있습니다. 그럼에 따라 코드 양이 줄고 더욱 직관적으로 코드 분석이 가능합니다.
- 코틀린의 장단점
위의 예시에서 보았듯이, 코틀린은 확실히 코드가 짧고 NULL 처리가 확실해서 빈값에 대한 에러가 적습니다. 물론 숙련된 사람들은 자바로도 확실한 처리들을 할 수 있지만 처음 접하는 사람에겐 메모리 처리가 어려울 수 있어, 코드를 직관적으로 선언할 수 있는 코틀린으로 작업을 진행한다면 에러 요소를 줄일 수 있습니다.
또한 자바만큼 캡슐화도 쉬우며 최근에는 문서도 많아 구글에서 코딩에 대한 정보들을 많이 얻을 수 있습니다. 파이썬처럼 변수 유형 유추 기능도 있어 초보 개발자도 사용하기 편리한 언어라고 볼 수도 있겠습니다.
그렇다면 코틀린의 단점은 무엇일까요? 바로 ‘느린 컴파일 속도’입니다. 사실 새로운 언어가 나올수록 사용하기에는 간편하지만 컴파일, 프로그램 속도는 느려집니다. 그 이유는 사람이 해야 할 작업을 프로그램에 내재된 언어 코드 자체에서 메모리를 효율적으로 처리하기 때문입니다.
플러터(Flutter)
* 출처 : Flutter 메인 홈페이지
- 플러터의 주요 사용 용도와 특징
플러터는 2017년에 구글에서 선보인 프레임 워크입니다. 사실 플러터 언어라고도 할 수 있지만, 정확히는 ‘프레임워크’입니다. 프레임 워크란 안드로이드 스튜디오처럼 특수한 프로그램 작업에 특화된 툴입니다.
비슷한 예로 오라클, 비주얼 스튜디오처럼 프로그램을 제작할 때 특화된 라이브러리들을 제공하는 툴입니다. 그런데 플러터를 왜 프로그래밍 언어로 생각할까요?
플러터 프레임워크에는 자바, 코틀린을 사용하지 않고 구글에서 제작한 언어를 사용합니다. 때문에 플러터를 개발 언어라고 칭합니다.
플러터는 Dart라는 언어를 사용하는데 이 언어를 구글에서 개발하였고 대부분의 일반 개발자들은 플러터에서 말고는 Dart를 거의 사용하지 않습니다. 그래서 대부분 플러터를 Dart를 포함하여 플러터 언어라고 칭합니다.
플러터는 구글에서 크로스 플랫폼을 위한 목적으로 만든 야심작입니다. 약 7년 전까지 같은 기능을 가진 프로그램을 만들 때, 안드로이드, iOS, 웹 등 환경에 따라 프로그램 구현을 따로 했어야 했습니다.
그러기에 기업들도 프로그래밍 언어를 다룰 개발자를 따로 채용했습니다. 이를 보완한 것이 크로스 플랫폼에서 사용 가능한 프레임워크입니다.
플러터처럼 크로스 플랫폼 프레임워크를 사용함으로써 한 코드로 여러 OS의 프로그램을 출시할 수 있게 됐습니다. 그렇기에 안드로이드, IOS, 웹 모두 한 사람이 관리할 수 있어 각각의 개발자를 고용할 필요가 없어져 개발 시 들어가는 인건비를 줄일 수 있게 되었습니다.
- 플러터 장단점
플러터는 소개한 것처럼 구글에서 만든 크로스 플랫폼으로 안드로이드, iOS, 웹을 한 개의 코드로 모두 구현할 수 있다는 아주 큰 장점이 있습니다. 물론 각 OS들을 위해 구조를 조금씩 다르게 추가해야 하지만 하나의 코드 파일로 모든 플랫폼의 컴파일을 할 수 있습니다.
그러나 각 OS가 채용하는 네이티브 언어가 아니기 때문에 OS 고유의 기능은 라이브러리로 사용하기 힘들고 각각의 프레임워크에 있는 편한 기능을 직접 구현하거나 플러터 라이브러리로 만들어 내야 하는 단점이 있습니다.
하지만 플러터로도 카메라 조작같은 기기를 제어하는 기능 말고는 대부분의 기능은 큰 제약 없이 모든 OS의 앱을 제작할 수 있기에, 성능이 간단한 앱 개발을 하고자 한다면 플러터를 사용하는 것이 좋습니다.
안드로이드 개발 대표 언어 3가지의 사용 용도
위 글에도 말했다시피 자바, 코틀린, 플러터의 관계는 자바와 코틀린은 안드로이드 스튜디오 프레임워크를 사용하는 언어이고 플러터는 플러터 프레임워크를 사용하는 언어라고 보시면 됩니다.
즉, 자바와 코틀린은 상위 호환 관계이며, 플러터는 그냥 다른 언어지만, 공통점은 셋 다 안드로이드 앱을 개발하는 데 사용할 수 있는 언어입니다.
안드로이드 대표 언어로 꼽히는 세 언어는 앱 개발 상황이나 용도에 따라 다르게 사용하는 것이 좋습니다. 안드로이드 전용 앱을 만들 경우는 자바나 코틀린을, iOS와 호완 가능한 앱을 만들 때는 플러터를 사용해야 하는데, 왜 그런지 언어별 용도와 함께 자세히 알아보겠습니다.
- 자바 & 코틀린 : 꾸준한 기능 업데이트가 필요할 때
안정적이고 오랜 앱 관리와 꾸준한 기능 업데이트가 필요한 앱을 개발해야 한다면 네이티브 언어인 자바, 코틀린을 사용하여 안드로이드 앱을, 스위프트를 이용하여 iOS 앱을 제작하는 것이 좋습니다.
왜냐하면 네이티브 언어들은 해당 폰이 업그레이드될 때마다 추가되는 기능이나 효율성을 즉각적으로 프레임워크에 업데이트하여 함수를 제공하기 때문입니다. 즉, 네이티브만의 고유의 기능을 스마트폰이나 프레임워크에 업데이트할 시에 즉각적으로 적용하고 서비스를 제공할 수 있습니다.
- 플러터 : iOS와 호환이 필요할 때
만약 앱 개발을 하고 싶은데 안드로이드와 iOS를 동시에 출시하고 싶다면 3가지 언어 중 플러터를 선택하는 것이 가장 현명한 방법입니다.
특히 정보 제공 플랫폼이나 채팅 등 하드웨어의 기능을 사용하지 않는 IT 서비스를 제공하는 앱을 개발해야 한다면 플러터를 사용해도 문제없이 개발할 수 있기 때문에, 통합 컴파일이 가능한 플러터를 사용하는 것이 관리하기도 편하고 유지 보수에 좋습니다.
통합 컴파일이란 여러 OS를 한 코드로 컴파일 하는 것으로, 원래는 안드로이드, iOS, 웹 등 각각의 컴파일러가 있지만 플러터 같은 경우 일부 구조만 넣어주면 모두 호환이 가능하여 통합적인 컴파일이 가능하기에 iOS와 호환되는 앱 개발이 필요하다면 플러터를 사용하는 것을 추천드립니다.
성공적인 안드로이드 & iOS 앱 개발을 위해
결론적으로 말씀드리자면 기기 자체에 접근을 하는 서비스 앱을 만들 경우는 따로따로 정해진 프레임워크를 사용하여 제작해야 그 기능을 제대로 발휘할 수 있기 때문에, 안드로이드 앱 개발시에는 자바나 코틀린 같은 언어를, iOS 앱 개발시에는 스위프트 같은 언어를 사용하는 것이 좋습니다.
반대로 개발하려는 앱의 기능이 크게 변하지 않고 단순히 데이터만 주고받는 서비스의 앱이라면 나의 코드로 모든 OS를 관리하는 플러터를 사용하여 인건비 감축과 빠른 유지 보수를 하는 것이 좋은 방법입니다.
상황에 따라 선택 할수 있는 언어는 달라지기 때문에 어떤 언어가 더 좋다고 평가하기보다 목적에 따라 올바르게 선택하여 개발하려는 앱의 성능을 최대한으로 끌어낸다면 앱 개발에서 만족할 만한 성과를 거둘 수 있을 것입니다.
앱 개발을 위한 전문가를 찾으시나요?
대한민국 대표 IT 프리랜서 플랫폼 이랜서가
도와드리겠습니다.
이랜서는 대한민국 최초, 최대 IT 프리랜서 매칭 플랫폼으로 약 40만 명의 프리랜서 회원을 보유하고 있습니다. 24년 동안 61,000개 이상 / 1조 원 이상의 프로젝트를 수주하며 대한민국 최대 IT 프리랜서 플랫폼으로서 검증된 프리랜서 매칭을 도와주고 있습니다.
IT 전문가를 찾는 기업들이
이랜서를 사용하는 이유
하나. 대한민국 업계 최저 수수료율
이랜서는 기업들이 합리적인 비용으로 아웃소싱을 하거나 프리랜서 매칭을 경험할 수 있도록 대한민국 프리랜서 플랫폼 중에서 업계 최저 수수료율을 적용하고 있습니다.
둘. 1:1 매니저 시스템
이랜서는 기업들이 원하는 프리랜서를 매칭하기 위해, 프로젝트 등록 시 1:1로 매니저를 배치하여, 프리랜서 매칭부터 인터뷰, 계약사항까지 꼼꼼하게 확인하며 프리랜서 매칭을 돕고 있습니다.
셋. 24년의 DB를 활용한 프리랜서 매칭 시스템
이랜서의 프리랜서 매칭 서비스는 데이터를 통해 실력부터 인성까지 모두 검증합니다. 기업들이 찾는 검증된 프리랜서 매칭을 위해 약 350만 개의 프리랜서 평가 데이터와 약 1.5억 개의 서비스 데이터를 활용하여 프로젝트에 걸맞은 프리랜서를 매칭합니다.
이랜서를 사용한 기업들의
프로젝트 재의뢰율 98%
이랜서를 사용한 기업들이
이랜서만 다시 찾는 이유
“ 인재 프로필을 주실 때, 특장점,
필요한 경력을 정리해 주셔서
빠르고 정확하게 확인할 수 있었습니다.”
아**기업 담당자님
“소개부터 인터뷰, 계약 진행까지
프로젝트 전반을 이랜서가 조율해 줘서
순조롭게 프로젝트를 진행할 수 있었습니다.”
수** 기업 담당자
“이랜서를 통해 소개받은 인재는
기술뿐만아니라 업무 적성까지 검증된 분들이라
인터뷰 이후에도 능력치에 대한 의심이 없습니다”
C** 기업 담당자
체계적인 프로세스의 프리랜서 매칭 시스템.
24년의 노하우와 데이터를 총동원한
‘검증된 프리랜서 매칭’
실력과 인성 모두 검증된 IT 전문가를 찾으시나요?
대한민국 No.1 IT 인재 매칭 플랫폼 이랜서에
-> 회원 가입만 하세요.
-> 24시간 안에 전담 매니저가 연락을 드립니다.
-> 끝입니다. 이게 다냐구요? 네, 이게 다입니다.
-> 급하시다고요? 전화 주세요. 02-545-0042
24년의 노하우와 데이터를 바탕으로 검증된 IT 프리랜서를 매칭해 드립니다.