개발자
웹 개발 쪽만 하다가 코틀린을 기반으로 앱 개발 프로젝트를 하나 진행하려고 시도 중입니다. 정말 아무것도 노베이스인 상태에서 개발도구나 언어를 좀 추릴려고 하는데 모르는 부분이 많아 올려봅니다... (바보 같은 질문일거 같네요... ㅠ 1도 지식이 없어서) 앱에서는 프론트, 백엔드 부분이 나뉘어 지나요? 리액트 네이티브와 코틀린을 같이 사용할 수 있나요? (흔히 프론트와 백엔드로 나눌 수 있는건가요?) 아니면 아예 다른 언어로써 상호 공존이 되지 않나요? 만약 앱개발을 시도한다면 어떤 언어가 좋을까요?
답변 1
인기 답변
1. 프론트 / 백엔드의 구분은 요구사항, 그리고 인력에 따라 다릅니다. 클라이언트 단에서 오프라인으로 전부 처리해도 괜찮으면 앱개발만 해도 됩니다. 만약 온라인 통신이 필요하면 서버가 필요하실 겁니다. 이와 별개로 클라이언트, 서버 개발을 혼자 한다면 풀스택 개발을 하시면 됩니다. 만약 각 파트 개발을 나눌 인력이 된다면, 프론트엔드가 클라이언트 개발을 맡고 백엔드가 서버 개발을 맡습니다. 이외에도 Firebase 같은 Serverless 제품도 고려해볼 수 있습니다. 2. React native와 Kotlin은 React native 환경에서는 같이 사용 가능합니다. 대신 익숙하신 프론트-백엔드 개념과는 다릅니다. 기본적으로 React Native로 앱을 만들다가, Android에 국한된 기능이 필요할 때 Kotlin으로 기능을 만드는 시나리오를 고려해볼 수 있습니다. 앱 개발 생태계는 다음처럼 나뉩니다. (Native) Android - Java or Kotlin (Native) iOS - Objective-C or Swift Cross platform - React Native / Flutter / Kotlin Multiplatform Webview - 웹페이지 앱은 Native 환경을 기본으로 합니다. 대신 OS에 따라 개발도 따로따로 하셔야 합니다. 코드베이스가 2개로 나뉘는 불편함을 해소하기 위해 Cross platform을 사용합니다. 구현 방식에 따라 다르지만 기본적으로 Native 환경에서 별도 엔진을 실행하는 방식입니다. 따라서 Cross platform은 Native 환경을 필요로 합니다. Cross platform을 사용하면 js, dart, kotlin 등으로 구성된 1개의 코드베이스만을 사용할 수 있습니다. 하지만 각 Native 기능이 필요할 때는 Native 코드를 직접 짜신 뒤, Cross platform 엔진과 통신하는 방식을 사용합니다. (ex: 카메라 모듈, 보통은 남이 만든 이미 라이브러리가 있음) 이때는 Cross platform이 클라이언트고, Native가 서버 느낌입니다. 3. 웹개발을 하셨다고 하니 React Native를 추천드립니다. 다만 코틀린으로 꼭 하셔야겠다고 한다면 Android 개발만 하거나, Kotlin Multiplatform(KMM)을 고려해볼 수 있습니다. 하지만 KMM은 문서나 레퍼런스가 정말 적은 신생아 생태계이므로 추천드리진 않습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 12월 20일
안녕하세요! 앱 개발에 대한 질문, 환영합니다. 1. "앱에서 프론트, 백엔드 부분이 나뉘어 지나요?": 네 그렇습니다. 대부분의 앱들은 프론트엔드(사용자 인터페이스)와 백엔드(서버, 데이터 처리)로 구분할 수 있습니다. 2. "리액트 네이티브와 코틀린을 같이 사용할 수 있나요?": 리액트 네이티브는 자바스크립트로 작성된 크로스 플랫폼 모바일 앱 개발을 위한 프레임워크입니다. 반면에 코틀린은 안드로이드 네이티브 앱 개발을 위해 주로 사용됩니다. 따라서 일반적으로 리액트 네이티브와 코틀린을 동시에 하나의 프로젝트에서 사용하는 것은 권장되지 않습니다. 3. "만약 앱개발을 시도한다면 어떤 언어가 좋을까요?": 언어 선택은 여러 요인에 따라 달라집니다 - 예를 들면, 개발하고자 하는 플랫폼(안드로이드, iOS 또는 둘 다), 개발 속도, 언어에 대한 지식 등이 있습니다. - 안드로이드 앱을 개발하려면, Java 또는 Kotlin를 학습하는 것이 좋습니다. 특히 Kotlin은 Google에서 공식적으로 지원하고 있으며, 현대적인 기능과 간결한 문법을 제공합니다. - iOS 앱을 개발한다면 Swift나 Objective-C를 학습할 수 있지만, 주로 Swift가 권장됩니다. - 둘 다 개발하려면 크로스플랫폼 솔루션인 React Native (JavaScript)나 Flutter(Dart)를 활용할 수 있습니다. 마지막으로, 어떤 언어를 선택하든 기본적인 프로그래밍 원리와 문제 해결 능력은 중요합니다. 이러한 기초가 확립되면 필요에 따라 언어를 배우거나 전환하는 것이 상대적으로 쉬워집니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!