Skip to content

개인 회고 ‐ K017

Taewan Park edited this page Dec 13, 2023 · 6 revisions

5주차 (12/08/2023)

  • 이번주는 푸시알림 연동이 대부분이었다. 백엔드 팀에서 푸시알림이 완성되는 동안 다양한 버그들을 고쳤다. 주변에서는 버그가 없어보인다고 다들 뛰어나다고 하지만 팀원들끼리 항상 만지다 보면 항상 버그가 생기거나 보인다.
  • 이번주에 고치지 못한 버그가 있어서 너무 아쉽다. 기능에 크리티컬한 버그라 배포 전에 고치고 싶었으나 시간이 너무 부족해서 원인 분석도 실패하고 버그도 고치지 못했다. 주말에 추가로 만져볼 생각이다.

트러블슈팅

  • 이번주는 실제로 Maven Central Repository에 배포를 진행하였다. 배포하면서 불친절한 부분도 많고 잘 모르는 부분도 많았지만 어떻게든 해냈다. 이에 대한 블로그 포스팅을 할 예정이다.

4주차 (12/01/2023)

  • 이번주는 우리 프로젝트의 핵심 기능 중 하나인 그래프 라이브러리 구현이었다. 라이브러리를 원하는대로 막상 구현하려고 하니 막막한 부분이 많았으나, 라이브러리 구현을 단계별로 쪼갠 후, 팀원들과 분업하니 어느새 완성되어 있었다. 팀원들이 정말 대단하다!
  • 구현에만 집중한 나머지 아직 UI/UX 최적화 부분도 남아있고 사소한 버그들도 남아있다. 이를 그나마 여유로운 다음주에 수정을 할 예정이다.
  • 이번주에 못한 배포도 다음주에 진행할 예정이다.

트러블슈팅

  • 라이브러리 구현을 분업해서 개발하였는데, 그중에서도 나는 그래프 축을 그리는 부분을 맡았다. 그래프 축에서 몇칸을 그릴지, 눈금당 간격은 어떻게 정할지와 같은 정규화 부분에서 엄청 오래동안 삽질을 했다. 이 부분에 대해서는 여기가 아닌 따로 블로그 포스팅을 할 예정이다.

3주차 (11/24/2023)

  • 이번주에 백로그상에도 그렇고 할 작업이 제일 많았다. 다른 주차보다 하루에 개발하는데 제일 많은 시간을 썼던 것 같다. 잠도 많이 자지 못했다. 백로그상 모든 일정을 소화하지는 못했으나 저번주에 완료하지 못했던 것과 이번주에 작업량이 제일 많았던 것을 생각하면 매우 만족한다.
  • 저번주에는 페어프로그래밍을 많이 했는데 이번주에는 각 기능별로 따로 분업하고 분업한 기능을 각자 PR을 날려서 서로가 리뷰하는 시간을 가졌다. PR의 내용은 많고, 시간은 부족하고, 코딩 스타일이 다 똑같지가 않아 지금 보니 코드가 일관적이지 않다는 생각이 들었다. 다음주 메인 기능을 어느정도 개발하고 나면 리팩토링을 하면 좋을 것 같다.

트러블슈팅

  • 아직 해결하지는 못했으나 Toolbar가 collapsing 되면서 색상이 바뀌는데 이때 상단바 색깔도 같이 바뀌어야 한다. 하지만 어떤 값을 설정해도 이 값이 바뀌지가 않았다. UI의 사소한 문제라 이번주에는 넘어갔으나 조금 더 자세히 조사해볼 필요가 있을 것 같다.

2주차 (11/17/2023)

  • 주말에 디자인 수정과 통일은 끝냈으나 워크플로우 구축을 시작하지도 못했다. 2주차에 시간을 내어 워크플로우 구축을 하니 로그인, 회원가입 구현 시간이 빠듯했던 것 같다.
  • 따로 다른 기능에 대해 분업도 해보고 페어 프로그래밍도 해보는 주였다. 분업을 하는 경우에 PR에 리뷰를 의무화 했기 때문에 서로서로 리뷰하느라 시간이 오래 걸리고, 또한 똑같은 기능을 구현하는 부분에 대해 서로 구현하는 방법이 다르다 보니 이 부분을 통일하느라 시간을 많이 소모했던 것 같다. 그래서 분업하는것에 비해 오히려 페어 프로그래밍이 시간적으로는 더 효율적인 경험을 하게 되었다.

트러블슈팅

  • kotlin serialization 플러그인을 적용하기 위해선 kotlin("plugin.serialization") version "<version_string>" 이 gradle에 포함되어야 하는데, 여기서 version_string의 값은 코틀린 컴파일러랑 일치시키지 않으면 오류가 날 수 있다는 사실을 알게 되었다. 따라서 project gradle 파일에 있는 코틀린 컴파일러 버전과 똑같이 맞춰주면 정상적으로 빌드가 된다.
  • Firebase App distribution을 통해 자동 배포 CD를 구축하던 중, ./gradlew assembleRelease 로 배포용 APK를 빌드하는 과정에서, signing이 정상적으로 되지 않는 현상을 발견할 수 있었다. 이는 app gradle 설정에서 signingConfigs 설정이 buildTypes 설정보다 나중에 선언이 되어 buildTypes에서 설정해둔 signingConfig값이 제대로 적용되지 않아 생긴 문제로 추정되어 순서를 바꾸어 해결하였다.
  • CollapsingToolbarLayout + AppBarLayout + MaterialToolbar 를 이용해서 상단 TopBar를 구현하고, 만약 스크롤이 필요한 상태로 바뀌게 되면 스크롤이 되면서 Title이 접히며 Toolbar의 Title로 남는 UI를 구현하였는데, 이는 모두 CoordinatorLayout 안에 들어가야 했다. 따라서 CoordinatorLayout + NestedScrollView로 Layout을 작성하였는데, NestedScrollView에서 레이아웃위 위치를 CollapsingToolbarLayout 밑으로 설정하고 싶었지만 ConstraintLayout에서 지원하는것과 같은 Constraint 속성이 따로 없어서 계속 레이아웃이 겹치는 현상이 발생했는데, CoordinatorLayout에 들어가있는 NestedScrollView 속성에 app:layout_behavior="@string/appbar_scrolling_view_behavior" 을 넣음으로서 내가 원하는 UI대로 레이아웃이 바로 설정되어서 약간 허탈? 했다.
  • 또한 CollapsingToolbarLayout에서 Scroll이 필요없는 상태(예: 세로화면) 임에도 불구하고 CollapsingToolbarLayout만 스크롤이 되는 현상을 발견했다. 따라서 ScrollView가 스크롤이 가능한지 확인하는 코드를 작성한 뒤, 이에 따라 CollapsingToolbarLayout의 드래그 가능 유무를 프로그래매틱하게 변경해 주었다.

1주차 (11/10/2023)

  • 1주차 목표를 기획, 디자인, 프로젝트 초기 설정으로 잡았는데 4일이라는 시간안에 하기에는 부족했던 것 같다. 협업에 관하여 예상보다 논의하는 시간이 길어져서 그런듯 하다. 주말에 시간이 내어 디자인 가이드라인에 맞게 디자인 수정 및 통일, 워크플로우 구축을 끝내보고자 한다.
  • 2주차부터 기획한 내용을 본격적으로 구현하기 시작한다. 혼자 하는것에 비해 든든한 팀원들이 있어서 기대된다.

트러블슈팅

  • 이미 열려있는 PR에서 GitHub Actions Workflow를 수정하고 re-run jobs를 하게 되면 변경된 사항으로 Workflow가 돌아가지 않는다. Pull request trigger가 걸려있으면 PR을 그냥 단순하게 닫았다가 열어보자. (이 사실을 모르고 닫고 새로 만들었다)
Clone this wiki locally