본문 바로가기
공부 및 활동/동아리

DND 동아리 활동

by KChang 2021. 7. 21.

팀이름 : JackPot

1. 아키텍쳐 설계

1) 아키텍처 시작할 때 크게 사용자들이 주로 이용하는 것을 3가지로 나누었다.

- 메인화면, 검색화면, 알림화면

- 이에 대한 아키텍처 설계

2) BottomNavigationView 없애자!

- airbnb를 보면 어떤 page에서는 BottomNavigationView가 또 다른 page에서는 Bottom에 Navigation이 Empty 되어있다.

- 그럼에 4주차 팀원들과의 회의를 통해 BottomNavigationView를 없앴으며 메인화면을 시작으로 검색 검색페이지, 마이페이지를 이동할 수 있게 구현하였다.

자세한 내용은 figma에서 확인 가능 : JACK POT – Figma

 

 

2. 어려웠던 점

※ Kotlin에서 Backend 연결하는데 있어서 어려웠다.

사진 주소 : https://medium.com/faun/consuming-rest-apis-with-python-eb86c6b724c5

- 디자이너 분들께서 Figma에 화면 설계를 이용하여 xml을 구현하였으며, Kotlin으로 동작을 하나씩 구현하였다.

1.

메인화면 최근에 등록된 프로젝트에서 Backend로 부터 받아와 출력한 후 해당 프로젝트에서 id를 상세 page로 넘겨줄 때

- Backend, filter controller table(여기서 id를 가져온다.)

- 여기서는 list 마다 id가 저장되어 있다.

 

메인화면

- 최근등록된 프로젝트에서 '예시'프로젝트 버튼을 눌렸을 때 다음 page

 

상세 화면

※ 위 과정에서 어려운 부분

1) 메인화면에서 프로젝트 목록들을 RecylclerView로 구현을 하여, 구현된 RecylclerView에서 상세 페이지로 넘어갈 때 프로젝트 id를 넘겨줄 수 있게 고민을 하였다.

2) 이때 처음으로 알게된 부분, Android에서 Backend 소스와 Kotlin소스가 있을 때 Backend가 가장 마지막에 실행되었다.

3) 그럼에 '어떻게 하면 Kotlin소스보다 Backend 소스가 먼저 실행될 수 있을 지' 생각을 하였다.

4) 가장 먼저 구글을 이용하였다. 구글에서는 RecyclerView를 호출하기전에 미리 Backend로부터 data를 받아오면 된다고 하였다.

5) 이를 알게된 후, 그림을 그리다보니 RecyclerView이 사용되는 페이지는 main이였고 RecyclerView를 호출하기 전에 미리 main에서 Backend로부터 RecyclerView에서 사용될 데이터를 받아오면 된다는 것을 알게되었다.

6) main에서 미리 Restapi를 구현하여 데이터를 받아온 뒤, 해당 Restapi 코드 안에서 RecyclerView안에 데이터를 저장할 수 있는 메소드를 호출하여 RecyclerView에 데이터들을 저장하였다. (이때 RecyclerView에서는 데이터들을 저장할 수 있는 List를 이용하였다.)

7) RecyclerView 중에서 하나의 프로젝트를 버튼을 눌렀을 때 List에 저장되어 있는 해당 id가 상세페이지로 넘어갈 수 있게 intent를 이용하였다.

 

 

2.

※ Android에서 Backend에서 받아온 data를 이용하여 화면에 출력되게 하며, 사용자가 추가적인 버튼 동작을 눌렸을 때 Backend에 적용되게 구현하는 부분이였다.

 

- Button 눌렀을 때 색칠 같은 경우 쉽게 구현하지만, Backend에 저장되어 있는 data를 받아와 화면에 출력되게 할 때, Android에서는Backend data를 받아오는 역할을 가장 늦게 처리하여 해당 page가 실행되면 몇 명의 user들이 스크랩을 눌렸는지 횟수가 나오는 부분이 0으로 처리되어 있다.

(앱 실행했을 때 몇 명의 user들이 스크랩을(별표를) 눌렸는지 횟수가 출력되게)

- 필요한 부분, Backend로 부터 받아올 내용 몇명의 user들이 스크랩을 눌렸는지 현재 로그인한 회원이 스크랩을 눌렸다면 별표 색칠, 없다면 색칠 빼기

- 구현하는 데 하루정도 시간이 있어 아직 완료하지 못하였다.

 

3. 팀 멤버들과 Cooperation Work

- 매주 수요일마다 팀 멤버과 이번주 구현한 내용 앞으로 해야될 내용에 관하여 zoom 회의를 가졌습니다.

- 특히, 마지막 2주차동안 Backend와 연동하는 과정에 있어 문제되는 부분을 해결하기 위해 zoom으로 회의를 하며 해결하였습니다.

- 무엇보다 구현하기 힘든 부분이나 고쳐야할 부분들은 2시간이내 완료하지 못한다면 slack에 공지 또는 zoom 회의를 가지며 해결하였습니다.

 

4. 프로젝트 완료후 느꼈던점 등등

- 학교 생활을 할 때, 이론을 위주로 공부하였습니다.

- 이론 위주로 하다보니 앞으로 '나는 어떤 걸 할 수 있을까? 취업할 때 어떤 분야로 지원을 해야할까?' 라는 생각을 가지고 있었습니다.

- github 병합 충돌, 프로젝트 작성할 때 협력, 화면 설계 등 팀을 이루어 하나의 프로젝트를 작성할 때는 자신의 의견 우선시 보다는 팀원들의 각자의 소중한 의견들을 통합하여 하나의 프로젝트가 완성될 수 있게 협약이 매우 중요하다는 것을 알게 되었습니다.

- 프로젝트 시작할 때 아키텍처 설계 및 애자일 작성에서 먼저 큰 틀을 설계 및 작성한 후 세부사항들을 작성하며 수정 작업을 반복해나아가며 프로젝트를 완성해 나가야한다는 것을 알게 되었습니다.

 

 

DND 동아리 : About - DND

'공부 및 활동 > 동아리' 카테고리의 다른 글

네이버 개발 오픈 클래스  (0) 2021.07.31

댓글