안드로이드 개발을 함에 있어서 이제는 단순히 기능 구현만을 위한 코딩 보다
조금 더 깊이있고, 효율적인 코드 작성을 하고 싶었어요!
그러다 친구의 소개로 부스트코스 에이스를 모집 한다는 것을 알게되었습니다!
부스트코스 에이스란?
부스트 캠프는 들어봤지만 부스트 코스 에이스는 처음 들어봤었는데,
부스트코스 에이스로 활동하게 되면,
프로젝트당 2회씩 무료로 실무자의 코드리뷰를 받아 볼 수 있고,
9월 말에는 해커톤 & 기업 네트워킹데이 까지 마련 해 주기 때문에
지나치기 쉬웠을 잘못된 습관들을 바로잡을 수 있고, 구현 해 보고 싶었던 기술들을 하나하나 적용하면 그에 대한 피드백도 받을 수 있는 좋은 기회라고 생각했어요! 해커톤, 기업 네트워킹 이라는 좋은 자리도 마련 해 주니 하고싶은 마음이 더 간절 해졌어요 ༼;´༎ຶ ༎ຶ`༽
선수 프로젝트인, 1번 프로젝트를 완료 후! 지원서를 써서 안드로이드 파트에 지원을 하게되었어요!
지원서에는 저의 간단한 안드로이드 프로젝트 경험들정말 열심히 하겠다는 엄청난 열정과, 새로운 디자인패턴과 기술스택, 라이브러리 등을 적용 해 보겠다는 엄청난 포부를 적어... (•̀.̫•́✧ ㅋㅋㅋ)
합격을 해서 현재 부스트코스 에이스 2기로 활동을 하고있답니다!
계획 & 목표
주마다 한개의 프로젝트가 주어지고, 이 프로젝트들이 합쳐지면 네이버 영화 어플리케이션이 완성이 돼요!
각각의 프로젝트에서 주어지는 과제는 좋아요구현&listView구현/API/데이터베이스 ... 정도로
그리 많지 않은 양 이기 때문에 7일이면 제가 해보고 싶은 것을 다 해볼 수 있는 시간이라고 생각했어요!
그래서 저는 이번 기회에 MVVM디자인 패턴에 대해 공부하고 프로젝트에 적용 해 보며, 추가로 가능하다면 data binding ,rxjava까지 적용을 해 보며 한주 한주 프로젝트를 완성하려는 계획을 갖고 있었답니다!
그러나 ... 〣(ºΔº)〣!!!
부스트코스 1기로 먼저 활동하고 있는 친구가 말하길.. 코드리뷰가 3일 이상의 시간이 소요된다고 하더라구요....ㅠ.! (실제로 저의 경우에도 첫번 째 프로젝트 코드 리뷰 완료까지 거의 4-5일이 걸렸었어요 ㅠㅠㅠ..)
현실적으로 디자인패턴도 적용 해 보고싶고, 그에 따라 함께 적용하면 좋은 라이브러리, 개발스택 들도 적용해 보며 천천히 해보고싶었지만 3-4일의 시간동안 완벽하게 구현할 자신은 없었기에... 일단 데이터 바인딩만 적용시켜 기능을 구현하고, 코드리뷰를 받고! 리뷰 결과를 기다리는 동안 디자인패턴을 적용하는 방식으로 진행을 했습니다!
* 데이터 바인딩에 대해 처음 공부를 해 보아서 지금 당장은 이해도 잘 안되고, 너무 얇팍한 지식밖에 없기 때문에.. 지금 당장은 힘들겠지만.. 프로젝트를 조금 더 진행 해 보고, 어느정도 이해가 되는 수준이 되면 블로그에 데이터바인딩에 대한 게시글도 정리해서 올려 보도록 할게요!
리뷰 내용
이번주 미션은 영화 상세 페이지의 좋아요, 싫어요 기능 & ListView를 구현하는 것 이였어요!
data binding 라이브러리를 처음 적용 해 보았고, 주변에도 쉽게 물어볼 사람이 없었기에.. 코드리뷰를 받는게 엄청 난 기회라고 생각을 했어요. 그래서 코드리뷰 파일을 제출 하기 전에 코드리뷰를 해 주시는 멘토님에게 한마디 남길수 있는 공간에 정말 정말... 장문의 글을 남겼답니다... 질문 하나하나에 정말 꼼꼼히 대답 해 주셨어요! ʚ(ȉˬȉ⁎)ɞ˒˒
사실 안드로이드 개발은 그래도 일년정도 하면서 기본적인 기능들은 무난하게 구현 할 수 있는 실력은 되지만,
이번 프로젝트는 이제껏 한번도 다뤄보지 못했던 라이브러리와 기술들을 적용하면서 구현했기에 놓치는 부분이 많이 있을 것 같아서 Pass를 받지 못하면 어쩌나 걱정을 많이 했었어요 ㅠ_ㅠ
그래도 다행히 프로젝트 Pass 를 받았고! 코드 리뷰어님께서도 좋은 말을 남겨주셔서 힘이 되었답니다!
<코드 리뷰 내용>
1. 잘못된 코드 컨벤션
자바가 아닌 다른 언어에서도 CamelCase와 언더바를 혼용하는 경우가 많이 있었는데, 이렇게 잘못 된 점을 집어주셔서 잘못된 코딩습관을 고칠 수 있는 좋은 기회가 되었습니다. 단순히 기능 구현을 위한 부분만이 아니라 이런 부분까지 세심하게 봐주셔서 정말 감사했어요!
java에서 변수 및 파라미터 naming시에 일반적으로 '_'를 사용하지 않습니다.
lowerCamelCase로 일관성있게 맞추는것이 좋습니다.
2. DataBinding
MVVM 디자인패턴을 적용시키기 위한 밑바탕으로, 프로젝트에 DataBinding 라이브러리를 적용시켜서 구현하였습니다.
그 이후에는 어떻게 어떤 기술을 적용해야하나 고민을 하고 있었는데,
ViewModel과 LiveData를 사용하는 방법도 검토 해 보았으면 좋겠다. 라는 피드백을 받았고,
이후 프로젝트 부터는 ViewModel과 LiveData까지 적용하여 프로젝트를 진행하고 있습니다!
3. 패키징
데이터 바인딩을 적용시켜서 하다보니, 패키지 구조와 파일들의 구성이 이전의 프로젝트와 조금씩 달랐어요.
이전에는 모든 action을 view(activity, fragment)에서 처리하다보니 패키지를 구성하는데 있어서 크게 고민이 없었는데,
이번에는 data와 ui가 모호하게 나눠지는 부분이 많이 고민이 많았어요.
본 클래스는 정보보다는 정보의 동작과 표현에 가까우므로, 클래스명이 적절하지 않은것 같습니다.
또한, 패키지도 data 보다는 ui쪽에 더 어울리는것 같습니다.
제가 생각했을 때, data를 다루고 있는 부분이라고 생각해서 data패키지에 담아 두고 있던 클래스를, 코드리뷰를 통해 쓰임새를 확실하게 파악하고 정리 할 수 있었어요!
느낀점!
선수 프로젝트였던 PJ1의 코드리뷰때는 크게 도움이 되었다고 느낀 것이 크게 없었어요. 아무래도 xml만 짜다보니 그런 것 이라고 생각했었는데, 이번 두번 째 프로젝트를 하고 리뷰를 받아보면서 느낀점은!
프로젝트의 난이도를 떠나서 본인이 얼마나 이 프로젝트에 시간을 쏟았는지, 궁금한 점을 많이 갖고 있는지가 더 중요하다고 느꼈어요. 궁금한 점을 많이 물어보면 물어볼수록 리뷰 멘토님도 열심히 답변을 해 주시는 것 같았어요!
앞으로 남은 6주 동안도 열심히 성실하게 참여해서, 더 많은 것을 얻어 갈 수 있도록 노력할 예정입니다!
'안드로이드 > 부스트 코스 에이스' 카테고리의 다른 글
[부스트코스ACE 2기] 6주차 마지막 프로젝트 후기 (0) | 2019.09.19 |
---|---|
[부스트코스ACE 2기] 5주차 프로젝트 후기 (0) | 2019.09.14 |
[부스트코스ACE 2기] 4주차 프로젝트 후기 (0) | 2019.09.06 |
[부스트코스ACE 2기] 3주차 프로젝트 후기 (0) | 2019.08.29 |
[부스트코스ACE 2기] 2주차 프로젝트 후기 (0) | 2019.08.22 |