-
1. 서론
항상 화이트해커를 꿈꾸는 나였지만, 계속해서 공부를 해나가면서 느낀것은 어떠한 개발 경험 없이 화이트해커부터 시작하기에는 무리가 있을 수 있다고 생각하게 되었다. 시큐어 코딩이나 서버 보안을 관리하려면 결국 서버나 앱과 같은 프로그램 개발 경험이 필수적이라는 결론에 도달했다. 그래서 가장 쉽게 접할 수 있는 서비스가 무엇일까 생각해보니, 런칭이 비교적 쉬운 앱 부터 시작하는것이 좋겠다는 생각이 들었다! 그 후, 이미 런칭된 유명한 앱들은 어떠한 언어로, 어떤 방식으로 설계되었는지 알아보기 위해서 잡 플래닛에 들어갔다. 앱 개발 부분 경력직 채용에 들어가면 해당 정보를 얻을 수 있다고 생각했다. 지금 내가 사용하고 있는 서비스인 티스토리의 App 개발 채용 공고를 보고 정보를 얻었다.
- 브런치/티스토리 Android 앱 개발 및 공통 모듈 설계를 담당합니다.
- 전체 코드가 Kotlin으로 작성되었으며, MVVM 아키텍쳐로 구현하였습니다.
"[브런치/티스토리] Android 앱 개발자 모집 (경력)," kakao 영입, n.d. 수정, 2021월 2월 10일 접속, https://careers.kakao.com/jobs/P-11860.
해당 글을 보고 처음 보는 단어들부터 조사를 하는게 좋다고 생각했다. 가장 먼저 눈에 띄는 단어는 "MVVM 아키텍처"였다. Kotlin은 학교 안드로이드 프로그래밍 수업 시간에 이미 사용해본 언어이었기 때문에 알고 있었고, MVVM 아키텍처도 데이터베이스 시간에 어렴풋이 본듯한 기억이 들었지만, 자세히 알고 있는것은 아니기 때문에 해당 단어를 선택했다.
2. 본론
"MVVM 패턴이란 Model, View, ViewModel의 줄임말이다."라는 글 부터 보였다. MVVM은 Model, View, ViewModel의 줄임말으로써 하나의 소프트웨어를 최대한 기능적으로 작은 단위로 나누어 테스트가 쉽고 큰 프로젝트도 상대적으로 관리하기가 좋은 구조라 해당 구조를 채택한것으로 보였다.
"안드로이드 아키텍처 패턴 - MVVM이 뭘까?" velog.io, n.d. 수정, 2021월 2월 10일 접속, velog.io/@jojo_devstory/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%ED%8C%A8%ED%84%B4-MVVM%EC%9D%B4-%EB%AD%98%EA%B9%8C
학교 안드로이드 프로그래밍 시간에도 Model, View, ViewModel을 나눠서 프로그래밍 하라고 배웠지만, 왜 그렇게 해야하는지에 대해서는 별로 생각해본적이 없었다. 해당 모델을 채택한다면, Model, View, ViewModel 간 의존성이 사라지므로 테스트와 유지보수가 쉬워진다는것을 알게되었고, 앞으로의 개발에도 해당 모델을 채택하는것이 좋다고 생각했다.
3. 결론
실제 대형 앱 프로젝트 참가 경험은 고사하고, 상용 앱 조차 만들어본적이 없었기 때문에 MVVM 구조를 완벽히 채택 할 수 있을지는 모르겠지만, 비슷하게라도 채택하여 앱을 만들어보기로 했다. 최근에 해본 작업이 원스토어를 디컴파일 해보고 분석했던 작업이였기 때문에, 상점앱을 만들어보기로 했다. 더해서, 지금까지 직접 만들어본 앱이나 프로그램에대해서 테스트 코드나 UI 자동화 테스트는 실행해본적이 없었다. 이에 대해서도 추가적인 조사를 통해 적용해볼 예정이다.
'App' 카테고리의 다른 글
카카오톡 인천대학교 학식봇 만들기(AWS Lambda) - 5 (0) 2021.07.05 카카오톡 인천대학교 학식봇 만들기(크롤링) - 4 (0) 2021.07.02 카카오톡 인천대학교 학식봇 만들기(크롤링) - 3 (0) 2021.07.01 카카오톡 인천대학교 학식봇 만들기 (크롤링)- 2 (0) 2021.06.29 카카오톡 인천대학교 학식봇 만들기 - 1 (0) 2021.06.29