본문 바로가기

회고록(TIL&WIL)

TIL 2022.05.11 클론코딩 팀프로젝트(BE) - 6 (프로젝트 종료, KPT, 소감, 피드백)

git hub 주소

https://github.com/SeonminKim1/7Instagram.git

간트 차트

https://docs.google.com/spreadsheets/d/1_1Sx46dnKnI8_DLJQzAASMSr7u525RFjm2Iat0beU14/edit#gid=1115838130

API 설계도

https://www.notion.so/c1bcd82a87284af2a31417eb05f91bbe?v=af9524e1b4424fc1ab878849998a052d 

 

 

1. Keep

  • 기획(Mock Up), 와이어 프레임, 웹 개발 순서의 진행을 적절하게 진행함
  • 간트 차트나 Github Project 이슈 등으로 일정 관리를 적절하게 함
  • Github 시스템 이용, 코드 Merge / Branch 관리 등 팀원 간 코드 리뷰
  • 프로젝트 범위(처음 목표한 범위)에서 최종 프로젝트 구현 범위가 크게 벗어나지 않은 것
  • 정기적인 상호 피드백 및 논의 시간을 가졌음 (오전 9시, 오후 2시, 저녁 6시)
  • 초기 파트 분배 후 프로젝트 진행 간 업무 파트 약간씩 Develop 및 분배를 해나간 점
  • 서로 질문하고, 격려하고, 적극적으로 피드백 하려고 한 것
  • 오류 발생 시 꾸준한 디버깅으로 문제 해결

 

2. Problem

  • 클래스명이 겹쳐 CSS가 작동되지 않은 이슈
  • 레퍼런스 검색에 너무 많은 시간 소모(1시간만 찾아보고 없으면 물어보기)
  • 긴 Commit, Merge Term으로 인한 Conflict 해결에 과도한 시간 소모
  • 문제 발생시 빠른 공유 및 스케줄 보완
  • 일정 기한이 조금씩 밀리면서 막판에 급했던 점
  • Class 명에 대한 통일 ( '-' , '_' 등)

 

3. Try

  • (FE) 반응형 웹 구현하기
  • (BE) Test Case 작성하기
  • (BE) CRUD 요소 완벽하게 구현하기
  • (공통) HTML, CSS, JS 파일 적극적으로 분리해서 Conflict 방지하기
  • (공통) 주석 꼼꼼히 달기
  • (공통) 변수 Convention시 큰 div는 Container를 몇개 정한다. (follower-wrapper, item 보편적인 주요 Keyword)
  • (DB) Mongo DB - NoSQL들은 Depth가 적은 걸 지향하기

 

4. Feel (느낀점)

김선민

  • 팀 프로젝트를 진행하면서 GIT Branch Merge 전략도 적극적으로 많이 사용해 본 것 같아 좋은 경험이였고 결과물 적으로도 나름 만족 스러운 프로젝트였다. 다만 문법에 대해 익숙하지 않아, 기능 개발과 문제 해결에 빠르게 해결하지 못해 일정이 조금씩 밀린점이 젤 아쉬웠던 것 같다.

김민기

  • 개발은 참고자료만 검색한다고 해결되지 않으며 팀원과 논의를 거치고 그래도 해결되지 않는 문제는 튜텨님을 통해 바로 해결해서 시간을 절약하는 방법을 배웠습니다.

박재현

  • 팀프로젝트 초반에 필요한 것 대해서 팀장님께서 다 알고 계셔서 git hub, 간트차트, 피그마, ERD 계획 등 앞으로의 프로젝트에서도 필수 적인 협업 툴을 다시금 사용해보고 머릿속에 남길 수 있어서 좋았고 기능 개발하면서 다시금 데이터의 흐름을 제대로 파악하게 되었고 앞으로 몽고DB는 사용할 일이 없지만 나름 좋았던 경험이었다. 아쉬운 점은 주요 구현 사항에 대해서 빠진 부분들이 있었던 게 아쉽다. 크게 어려운 부분도 아니었었던 부분인지라 좀 더 기능 이나 업무에 대한 세분화랑 업무 분담 등 역시나 초기 계획이 제일 중요하면서도 어렵다는 걸 다시금 느끼게 되었다.

황신혜

  • 하나의 서비스에서 기술 구현과 연결이 어떻게 이루어지는지를 알 수 있어서 좋았다. 팀 협업을 통해 발생할 수 있는 문제를 경험했으며 효율적인 스케줄 관리의 중요성, 짧은 단위로 시간을 설정해두고 의견 및 스케줄을 수정해야 향후 문제 발생이 적다는 것도 알 수 있었다. 회고를 통해 문제점을 보완하고 각 팀원에 대한 이해도 높일 수 있었다.

 

튜터님 피드백

  • 코드 리팩토링 
    • List Comprehension (for문을 사용하는 코드들을 한줄에 작성할 수 있는 python 작성법)
    • Class 사용 (모듈화를 통해서 코드 재사용성이 용이하게 할 수 있도록 다른 모듈들 참고)
    • 변수 상수화(숫자 딸랑 있는 것보다 변수명으로 확실히 알 수 있게됨)
  • Pylint : 코드 정적 분석에 좋은 라이브러리(PHP-8 기준으로 코드작성에 대해 점수 내려줌)
    • pip install pylint 해서 터미널 환경에서 pylint app.py 형태로 실행해서 분석 가능
    • 불필요한 코드를 알려주거나 줄일 수 있는 코드등을 파악하고 수정 가능
  • Pytest : Unit(기능) 단위로 찢어서 기능 테스트 용 라이브러리
    • 코드를 리팩토링 하였을 때 데이터가 원래랑 똑같이 작동되는 지 테스트 해볼 수 있음
  • Blueprints : Flask의 app.route() 들의 API endpoints를 여러 .py에 분리하는 라이브러리
    • 작업 단위의 파일로 분리할 수 있기 때문에 찾기도 쉽고 git 사용 협업 시에도 충돌이 거의 안나도록 방지 가능
    • 추후에도 재사용성도 용이하고 유지보수에도 용이하게 프로젝트를 만들 수 있음
  • 디자인 패턴 종류 (패턴은 언어에 구애 받지 않고, 프로젝트 구조에 맞는 패턴 사용이 이상적)
    • MVP Pattern
    • Layered architecture pattern
    • Adapter Pattern
    • Opserver Pattern
  • 프로젝트 간 문서 Minimum 범위
    • 기능 설계(=디자인, =API문서)
    • 일정관리용(Trello, Github Project)
    • 기능 이슈 관리(Github ISSUE)