ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] 인스타그램 클론 코딩 팀 프로젝트 KPT 회고록
    안드로이드 2024. 4. 8. 20:31

    1. 원스타그램 프로젝트 소개

    • 프로젝트 의미 '1조'의 '첫'번째 프로젝트
    • 실제 Instasgram SNS의 디자인과 기능을 차용하여 구현
    • 게시물과 스토리 버튼을 통해 회원가입 된 친구 목록 및 정보 확인 가능

    2. 프로토타입

     

    3. 앱 시연영상

     

    4. 제작과정 및 협업과정

    4.1 팀 플랜

      • 복잡한 기술보다는 팀원 간 '협업과 의사소통'에 주안점
      • 코드 컨벤션
        • 해상도 통일
        • Emulator: nexus 5 api 31 통일
        • kt 파일: Camel Case / XML파일: Snake Case
        • string 파일 이용하여 text 작성
        • 주석 설명 구체적으로 달기
      • Git 컨벤션

     

    4.2 타임라인

    • 4/1: 기획
      • 요구사항 명세서 👉 구현사항 분석
      • 와이어 프레임 구상
      • 기술 스택 선정
      • 역할분배
    • 4/2 ~ 4/3: 개발
      • Git과 칸반보드를 활용한 의견 문서화 및 공유
    • 4/4: 디자인
      • 코드 병합 후 개선점 추가 및 UI 통일
    • 4/5: MERGE
      • Main 브랜치에 merge 후 시연 영상 제작

     

    4.3 요구사항 명세서 작성

    • 각 구현사항들을 세부적으로 나누어 분류
    • 구현사항의 설명을 바탕으로 중요도 설정
    • 필수구현 사항을 중점으로 와이어프레임 구상

     

    4.4 칸반보드 활용

    • 각 요소를 칸반(Kanvan)이라고 하고, 개발 구현 상황(할 일, 진행 중, 완료)에 맞추어, 칸반을 이동
    • 문서화: 각 구현을 진행하면서, 생겼던 문제와 해결 방안 그리고 참고자료 등을 해당 칸반에 기재
    • 역할 분배: 각 칸반에 담당자 이름을 기재하여, 역할 분담

     

    5. 트러블 슈팅

    Git Merge 단위

    • Issue : Git에 익숙지 않아 처음에 수시로 merge 하지 않고, Page 단위로 만든 후, 순차적으로 merge를 하였는데, 코드 충돌이 많이 났음
    • Solve : 이후, 최소한의 기능 단위로 개발 후, 수시로 commit하는 습관을 들임

    싱글톤(Singleton)의 필요성

    • Issue : 코틀린kt. 파일에 필요한 이미지들을 그때그때 적용하다 보니, 중복되는 경우가 발생 → 코드중복, 리소스 낭비 문제발생 인지
    • Solve : Object 클래스를 만들어, 앱 실행 시 바로 이미지 객체를 만들고, 이 데이터들을 Map형태로 관리하여, 필요할 때 가져다 쓰기

    Activiyty 생명주기: 프로필 갤러리 사진 등록 이슈

    • Issue : 싱글톤에 데이터가 잘 저장되어 있음에도, 메인페이지에서 프로필 사진을 등록한 뒤, 마이페이지로 이동했을 때, 선택한 이미지가 보이지 않는 상황이 발생
    • Solve : 마이페이지가 onRestart()가 됐을 때에 프로필 이미지를 불러오는 로직이 빠져있는 걸 확인. 그 후, fun onRestart()를 override 후 로직을 추가하여 해결
    • 객체를 만들고, 이 데이터들을 Map형태로 관리하여, 필요할 때 가져다 쓰기

     

    6. KPT 회고

      < 팀 피드백 >
    튜터님
    피드백
    1) Pigma에 와이어 프레임과 프로토타입 정리가 깔끔하게 되어있었다.
    2) Kanvan을 잘 활용하여 협업 진행한 점이 좋았다.
    3) 메인 페이지에서 스토리 Scroll하여 위치시킨 후, 스토리 화면으로 전환했다가 다시 돌아왔을 때,
    스크롤바의 위치가 초기화되는 문제는 어떻게 해결할 것인지 말씀해주셨다.
    → addOnScrollChangedListener 활용할 계획입니다.
    Keep - 카카오톡 오픈채팅을 활용하여 팀원들간 의사소통을 수월하게 할 수 있었다.
    - 일정 계획을 잘 세운 후 시작해서 계획대로 완성한 것 같다.
    - 앞으로도 피그마를 활용하여 와이어프레임과 프로토타입을 만들려고 한다.
    Problem - pull request 후 merge할 때, 코드 리뷰를 더 적극 활용하면 좋았을 것 같다
    - 트러블 슈팅과 회의록을 노션에 수시로 문서화하지 못해 아쉬웠다.
    Try - 더 발전한다면 게시글의 댓글 기능을 넣어보면 좋을 것 같다.
    - 데드라인을 정해 시간을 더 효율적으로 관리하면 좋을 거라고 생각한다.
    - 스토리보드를 추가해 전반적인 흐름에 대해 이해하려한다.

     

    fork한 로컬 브랜치와 원본 upstream과 다르단 걸 배웠다. 머지할 때 충돌을 해결해 보면서 서로의 코드를 이해해 보는 경험을 얻게 되었다. 팀원들과 소통에 집중한 만큼 협업의 중요성에 대해 알 수 있었다.

Designed by Tistory.