[TECH!T] 앱 스쿨 2기 : Android 수료 회고

Jbro·2023년 10월 11일

회고

목록 보기
2/3
post-thumbnail

2023.04.24 부터 2023.09.26 까지 23주에 걸친 Android 앱 스쿨의 일정이 마무리 됐다.

앱스쿨 이전에 안드로이드 프로그래밍을 배운 건 2022년 상반기에 자바를 이용한 안드로이드 프로그래밍 과목을 한 학기 동안 수강한 것 외에는 없다. 그리고 그것또한 기본적으로 자바를 이용해서 배운 것이기 때문에 코틀린을 이용한 개발 경험은 전무했고 2022년 하반기 졸업 프로젝트시에 처음 코틀린을 익히면서 제작한 경험이 있다.

졸업 후에, 안드로이드 개발자로서의 성장을 위해 코틀린을 이용한 안드로이드 개발을 위한 교육이 필요하다고 생각했고 여러 고민 끝에 앱스쿨을 선택했다.
결과적으로 최종 프로젝트에서 대상을 수상하며 성공적으로 마무리지었다고.
이를 통해 어떤 것을 배웠고 어떤 점이 아쉬웠고, 앞으로 어떤 점을 개선하면 좋을지 에자일 회고 방법을 기반으로 정리해보려고 한다.

좋았던 것(Liked)

앱 스쿨 기간동안 좋았던 점은 당연하게도, 성공적으로 과정을 마무리했다는 점과 운좋게도 좋은 팀원들을 만나 1등으로 수료해 대상을 수상했다는 것이다.
연이은 팀원의 개인사정으로 인한 과정 포기로, 다른 팀들에 비해 2명 정도 적은 인원으로 진행했지만 각자 맡은 바를 성실하게 개발한 결과 대상을 수상할 수 있게 되었다.

다른 팀에 비해서 불리한 상황에도 불구하고 팀원들 덕에 1등으로 마무리할 수 있었다.

배운 것(Learned)

코틀린

기본적으로 기존에 알고 있던 자바가 아닌 코틀린이라는 언어에 대해서 깊게 공부했고, 자바를 베이스로 만들어진 언어가 어떻게 자바로 변환되어 동작하는 지 알게되었다.

코틀린 안드로이드 프로그래밍

학습한 코틀린을 기반으로 안드로이드 프로그래밍을 처음부터 다시 공부할 수 있는 기회가 되었는데, 기존에 알고있던 개발 방식과 몇 가지 차이가 있었다.

첫 번째로 Activity 위주의 구조에서 Fragment 위주의 구조로 작성하게 되었다.
기존 개발 방식은 앱 내부에서 기능별 Activity를 실행시키는 방식으로 개발했지만, 하나의 Activity에서 여러 개의 Fragment를 관리하고 실행시키는 방식으로 변경되었다.
이를 통해서 여러 화면에서 공통적으로 쓰이는 정보를 효율적으로 관리하고 사용할 수 있었고, 개발과 유지보수에 있어서 좀 더 나은 향상이 있었다.

두 번째로 ViewBinding 을 이용한 개발 방식으로 바뀌었다.
기존에 findViewById 함수를 이용한 방식보다 훨씬 안전하고 효율적으로 View에 접근할 수 있었고, 코드가 더 간결해졌다.

디자인 패턴 적용

기존에 개발하던 방식은 하나의 파일에 데이터 관련 코드와 UI 관련 코드를 모두 작성했는 데, MVVM 패턴, Repository 패턴을 학습하고 이를 코드에 적용했다.
이를 통해서 기능에 따른 코드의 분리와 유지 보수성을 증대시킬 수 있었고, 불필요한 코드의 중복 방지등 많은 이점을 얻을 수 있었다.

Fork와 PR을 통한 버전 관리

대학교에서의 여러 팀 프로젝트내에서 사용한 버전 관리는 Git을 이용한 버전 관리를 경험해봤지만, 단순히 브랜치를 이용한 버전 관리였다.

이번에 재능 기부 앱 개발 프로젝트에서 fork, pull request, rebase merge를 통한 버전 관리를 하니, 무분별한 conflict 발생을 막을 수 있고 코드를 merge하기 전에 전체 팀원이 코드를 점검할 수 있어서 좋은 경험이 되었다.

또한 issue 생성과 관리를 통해, 전체 프로젝트에서 어떤 기능을 개발해야하고, 또한 남은 기능이 무엇인지 쉽게 관리할 수 있는 점 또한 좋았다.

부족했던 것(Lacked)

성공적으로 수료했다고 생각하지만, 물론 아쉬웠던 점과 보완해야할 점 또한 존재한다.

동네이션 제작시에 처음으로 디자인 패턴을 적용해 구현해 나가려고 하다보니, 코드의 구조를 짜는 데 굉장히 미흡하고 시간 또한 많이 소요된 것 같다.
그리고 개발이 점점 진행될 수록 생각하지 못한 오류가 등장하고, 내가 생각하는 것 보다 많은 코드들이 들어가야하는 상황이 일어나서 소위 말하는 스파게티 코드로 변해가는 모습을 보고 리팩토링에 대한 필요성이 강하게 느껴졌다.

또한 다른 팀원이 쓴 코드를 보고 이해해야하는 부분이 많았는데, 이런 과정을 통해 다른 팀원과 같이 프로젝트를 진행하려면 지금보다 더 간결하고 이해하기 쉽게 코드를 작성해야겠다라는 생각이 들었다.

바라는 것(Longed for)

앞으로 안드로이드 개발자로서의 커리어를 시작하기 위해서는 어떤 점을 보완해야할까 생각해보면 크게 세 가지로 나눌 수 있을 것 같다.

  1. 안드로이드 관련 학습: 디자인 패턴과 비동기 처리에서 아직은 미숙한 부분이 보여 이 부분의 개념을 다시 한 번 학습하고, 어떻게 하면 간결하고 좋은 코드를 쓸 수 있을 지 계속 발전하도록 한다.
  2. 알고리즘 학습: 프로젝트 진행에 밀려 비교적 소홀했던 알고리즘 관련 학습을 한다.
  3. 이력서 작성: 앱 스쿨동안 배웠던 내용과 진행했던 프로젝트들을 기반으로 이력서를 작성해 본격적인 구직을 시작한다.
profile
안드로이드 개발자 꿈나무

0개의 댓글