기타/내일배움캠프

[내일배움캠프] 세번째 프로젝트를 마무리하며

sinw212 2023. 9. 16. 22:20

두번째 프로젝트에 대한 회고가 늦었더니 세번째 프로젝트에 대한 회고가 금방 돌아와버렸다.

 

세번째 프로젝트도 끝이 났다. 시간이 너무 빠르게 흐르는것 같다.

벌써 교육의 절반이 흘렀고, 내 현재 상태에 대해 돌아볼 시점이 된것 같다는 생각이 들기도 하는 것 같다.

 

이번 프로젝트의 목표는 연락처 앱 구현이었다. 요즘 빠져있는 드라마 "무빙" 을 컨셉으로 한 연락처 앱을 만들어보았다.

필수 구현 기능이 비교적 간단해서인지, 선택 구현 기능은 꽤나 난이도가 있었던 것 같다.

처음 써보는 기능들도 있었고 쉽게 구현이 될 줄 알았던 기능에서 오랜시간 붙들려있기도 했던 것 같다.

 

이번 프로젝트도 KPT 방법론을 활용하여 회고를 기록해보려고 한다.

 

K(Keep) - 유지할 부분

- 매일 오전, 저녁 팀 회의를 진행하며 진행 사항에 대해 공유했다.

- 모든 기능을 도전해보고 완성까지 해냈다.

- 막히는 기능에 대해 포기하지 않고 더 나은 방안을 시도해봤다.

 

P(Problem) - 문제점 및 해결방안

- 협업을 하기에 앞서 미리 정했던 코딩컨벤션이 지켜지지 않았던 것 같다.

  > 개발을 시작하기 전에 팀원 다같이 모여서 코딩컨벤션을 직접 작성하면서 협의하는 과정이 필요할 것 같다.

- 기능이 복잡해지고 화면 갯수가 많아질수록 코드의 가독성이 떨어지거나 재사용되는 코드가 많아졌던 것 같다.

  > 코드의 가독성을 위해서라도 재사용되는 코드들을 함수 혹은 클래스로 따로 빼는 습관을 들여야겠다.

 

T(Try) 및 Feel - 앞으로의 노력 및 느낀점

- 매일매일 유동적인 회의 시간이 아닌, 시간을 고정해두고 일정하게 진행하는것이 좋겠다는 생각이 들었다.

- 하루를 마무리하며 각자의 진행사항이나 코드를 화면공유를 통해 공유하는 과정이 필요하다고 느꼈다.


+ 이번 주는 기능 구현에 있어 부딪혔던 부분들이 많아서 몇개의 트러블 슈팅도 추가해보려고 한다.

 

1. 문제사항

- RecycleView의 타입(ListView / GridView) 을 선택하여 연락처 리스트를 출력하는 과정에서 GridView를 그리는 방법에 대한 고민을 하게 됨

시도 및 해결

- layoutManager 를 사용하여 LinearLayout 과 GridLayout 을 설정해주었지만 GridLayout 으로 설정했을 때 원하는 형태의 리스트가 출력되지 않음

- 새로운 방법으로, ListView 타입과 GridView 타입에 대한 Adapter 를 각각 만들어서 사용

  > 정상적으로 출력은 되나, 출제의도와 맞지않다는 생각이 들어 첫번째로 시도했던 방법 수정하여 재도전

- layoutManager를 사용하여 GridLayout으로 설정해주되, 출력되는 리스트에 대한 item layout을 각각 만들어 binding 시켜줌

  > ListView와 GridView를 선택했을 때의 ViewType을 다르게 설정하여 화면에 출력

 

2. 문제사항

- 연락처 리스트를 왼쪽에서 오른쪽으로 스와이프 한 후, 스와이프 된 레이아웃이 복구되지 않음

시도 및 해결

- ItemHelper 클래스를 만들어 onSwipe 함수를 오버라이드 하여 사용

  > onSwipe 함수가 호출된 이후 자동으로 호출되는 clearView 함수도 오버라이드하여 스와이프된 레이아웃이 복구되는 코드 작성

getDefaultUIUtil().clearView((viewHolder as ContactRecyclerViewAdapter.Holder).linearLayout)

  > cleartView 함수가 호출되지 않음. 간혹 자동으로 호출되지 않는 경우가 있기 때문에 해당 함수를 명시해주어 호출되도록 코드를 작성하였지만 그럼에도 호출되지 않음

- 연락처 리스트를 출력하는 Fragment에서 스와이프 된 리스트에 해당하는 항목을 notify 해주어 리싸이클러뷰 갱신 > 레이아웃 복구


이번 주차는 유독 협업이라는게 쉽지 않다는 것을 알 수 있는 한 주 였던 것 같다. 힘들었던 만큼 많은 도전의 연속이었고 그 노력의 시간만큼 분명 얻은 것도 많았을 것이라고 생각한다.

어쨌든 이번 프로젝트도 결과적으로는 완성도 있게 마무리했으니까 좋게 생각해보려고 한다 ⸜(*ˊˋ*)⸝

 

아래 링크들은 이번 프로젝트의 Notion과 Github 주소이다. (Figma(와이어프레임)는 권한 이슈로 생략)

- Notion

https://teamsparta.notion.site/18-bc8dc20c3f994a419f2b01b67552e78d

 

18조

팀 링크

teamsparta.notion.site

 

- Github

https://github.com/Team18Contact/ContactApp

 

GitHub - Team18Contact/ContactApp

Contribute to Team18Contact/ContactApp development by creating an account on GitHub.

github.com