1. 프로젝트 기간, 팀 구조
주제 : 사이드 프로젝트 공유 플랫폼 (with. 커피챗)
기간 : 2022.07.07 (목) ~ 2022.08.04 (목)
팀 구성 : 김선민 (Github), 김민기 (Github), 박재현 (Github), 황신혜 (Github)
시연 영상 : https://www.youtube.com/watch?v=Imbu132BxTA
2. 프로젝트명
개발자를 위한 사이드 프로젝트 공유 플랫폼 서비스 (with. 커피챗을 곁들인)
3. 프로젝트 Github ( + 설명)
https://github.com/SeonminKim1/SidePro-BE
4. Keep
- 기획(Mock Up), 와이어 프레임, 웹 개발 순서의 진행을 적절하게 진행함
- Branch 관리 : Branch 기반 작업 + Merge(PR) 후 Branch 삭제
- 파일을 적극 분리하여 작업 (+개발 생산성, Conflict 방지) 한 점 (base.html)
- CSS Convention / Semantic Tag 어느정도 규칙 잘 지킨점
- FE 개발 Version up 관리 (ex. Agile 개발론)
- UX/UI 기반 프로젝트 최종 점검 시간을 확보해서 진행한 점 (+외부 테스터 진행)
- 요구사항 기능을 POC (Proof of Concept) 스프린트 초기에 검증한 점
- FE 개발
.js 분리 작성
JQuery Ajax 대신 Async Function Vanila를 99.9% 활용한 점. - BE 개발
Django 프레임워크에 좀 더 익숙해져, 순수 API 개발 소요 시간을 줄인점
Django 프레임워크의 부가적인 라이브러리를 많이 다양하게 써 본 점. (Django-channels, Crontab, Pagination)
urls.py API 분리 잘한점 - 인프라 (Infra)
EC2 배포, S3 정적배포, Route53, RDS 등 서비스를 많이 사용해본 점 - 기획안과 최종 완결물 간의 차이가 거의 없는 점
- 와이어프레임 앞(기획)을 탄탄히 가져감
- 정기적인 상호 피드백 및 논의 시간을 가진 점 (오전 9시, 오후 2시, 저녁 6시)
- 서로 질문하고, 격려하고, 적극적으로 피드백 하려고 한 것
- 오류 발생 시 꾸준한 디버깅으로 문제 해결
Problem
- (FE) FE Develop
반응형 구현 못한게 아쉬움 (시간상) => 미디어 쿼리 도입
JS 조건문 남용, 공통부분 함수화, then() 문, 가독성 등이 조금 아쉬움 => 좋은 JS 코드 공부
Page에 대한 추상화 여지가 조금 있었던 듯
CSS Convention id, class 혼용 상황 (사전에 협의 안된게 아쉬움) - BE, DB
DB(PostgreSQL) Migration 등 잡다한 이슈 => ORM, Framework 추가 이해 필요
특정 문자열(Python) python PYTHON 도 허용하고 싶은 소요가 있었음 => 실제 코드는 validation은 lower(), upper() 등으로 통일, 보여주는 건 따로 - AI
CronTab + Singleton 패턴이 Docker 환경에서 잘 작동하지 않았던 점 => 추가 공부 필요함 - AWS (인프라)
Sprint 1 사전 학습 기간에 POC를 못해봐서 실 개발기간이 늘어진 점
추가 기술 CloudFront, Cloudwatch, Lambda, 엘라스틱캐시(redis), Load-balancer 적용 못해본점 - 보안 쪽 미고려 => https, wss 프로토콜 전환 필요
- 개발상황과 배포상황간의 서버 구성이 달라 지는 것을 사전에 인지하지 못한 점
- 기획안과 최종 완결물 간의 차이가 거의 없는 점 => 의사소통 미스
- 일정 Delay => 상황적 여건을 고려해서 일정을 수립하자.
Try
- FE
FE 개발 팀장 Role 수행 - 황신혜
JS 좋은 코드 / React 프레임워크 찍먹
Agile 개발 방법론
JWT 방식 로그인에 대한 추가적인 요구사항, 기능 개발
반응형 미디어쿼리 (공부 + 적용) - BE
Django 학습 (Permission / DRF Mixins, Generic API, Viewset 추상화) 등등 더 공부
Django Query ORM (bulk_create(), get_or_404등 다양한 함수 사용(Query 수 비교))
Django Query ORM 최적화 (Prefetch() Class, 더다양한케이스-역참조에역참조역) - Test Code 작성하기 - UnitTest, E2E 더 해보기
디자인 패턴 도입 (프로젝트 전체에 대한 패턴 조사) - 소셜로그인
- AWS & CI-CD
LoadBalancer (ELB) 로 서버 여러대 & 부하 테스트
GitActions CI-CD EC2 완성
Cloudwatch로 EC2 Log 수집
CloudFront, ElasticCache 등등
도커 Layer build 최적화 daphne, guincron 코드 분리
gunicorn 최적의 worker test & 부하 테스트 - 기타
Response Body / Network 최적화 스토리 (Font Download, S3 Mount, Body) => 정량적인 수치가 나오지 않았을까 - (QA) 튜터 적극 활용 (특정 시점에 찾아가기), 외부 테스터 (신혜님 남자친구님)
- (GIT) 잘 활용하기
Commit 좀더 명료하게 적기~
Issue 작성 : 체크박스 10개 이하로 분리해서 적기
PR Templates : 내용 적기 (Title - Commit 메시지 처럼 / 내용 : Commit 정리)
Milestone / CodeReview - GIT 안에서 프로젝트 정리하기 (Wiki, TIL - Link)
Feel (느낀점)
김선민
- 최종프로젝트 답게 기능에 대한 많은 고민과, Develop에 대해 시간을 많이 투자하였고, 일정 수준 이상의 결과물을 얻은 것 같습니다. 프로젝트를 진행하며 많은 식견을 얻게 되어 이에 대해 더 알아보고, 좋은 Develop 방법을 많은 사람들과 소통해 나가 제 스킬로 만들고 싶습니다.
김민기
- Django 프레임워크의 편의성과 유연성을 다시 한번 체감하는 기간이었으며 바닐라JS의 Fetch API를 체험하는 좋은 프로젝트였습니다. AWS 인프라 관련 세팅을 통해 CS지식을 조금이라도 더 습득해서 즐거웠습니다. 그 무엇보다 우리 팀원들간의 연계와 협동은 더할나위없이 좋았다고 자부합니다.
박재현
- BE, FE, Infra 전체적으로 규모도 크고 기능도 많았던 터라 이것저것 다 해보느라 많은 걸 배웠고 팀원들이 짜놓은 코드를 보면서 배우는 것도 많았던 프로젝트였습니다. 중간 발표까지 스프린트 잘해냈고 이제 프로젝트 전체를 이해하기 위해서 내가 짠 코드 뿐만아니라 팀원들이 짠코드들도 정리해서 자기 것으로 만들어야 겠다 생각했습니다.
황신혜
- 스프린트 방식으로 일하는 것과 일정 관리 협업에 관해 많이 성장했음을 느낄 수 있었다. 웹 화면 기본 구조 설계를 보이는 방식대로가 아닌 코드로 상상할 수 있게 되었고, 와이어프레임을 보고 컴포넌트 단위로 구조화를 시켜보는 방법에 익숙해짐.
'내배캠 (22.04~22.08)' 카테고리의 다른 글
SidePro 팀 프로젝트 - 1 (0) | 2022.07.08 |
---|---|
SMOPS 프로젝트 (유화 제작/판매 사이트) - KPT 회고 (0) | 2022.07.06 |
SMOPS 팀 프로젝트 - 1 (0) | 2022.06.28 |
Today Lunch 프로젝트 (오늘 점심 뭐 먹지?) - KPT 회고 (1) | 2022.06.14 |
TODAY LUNCH 팀 프로젝트 - 1 (0) | 2022.06.02 |