- Backend: Python 3.10.8, Django 3.2.13, DRF 3.14.0
- Frontend: Javascript, HTML, CSS
- DevOps : Docker, AWS EC2, S3, RDS
- etc : Jira, Figma, Notion
1. 클론 코딩
하는 웹 서비스의 서버 구조 및 핵심 기능들을 구현
- 하지만 그대로 만드는 것보다 사용자의 관점에서 해당 기능의 필요성을 논의하여, 다른 기능으로 바꿔서 사용자 편의성을 더 높이는 방향으로 개발합니다.
2. 문서화
작업과 스프린트 단위
로 협업 진행
-
클론 코딩이기 때문에 먼저 해당 서비스에 대해 기술적인 분석을 한 후, 이를 notion을 통해
문서화 작업
을 남겨서 해당 서비스의 이해와 협업 효율성을 높이고자 노력합니다. -
1주일을
스프린트
로 정하고, 스프린트별 목표와 진행 상황, 차후 고려사항을jira
를 통해 관리합니다.
3. 코드 리뷰
진행
- 매주 일요일에 각자 스프린트 단위로 진행한 코드 내용을
팀원들에게 공유
하는 방식으로 코드 리뷰를 진행하고자 노력합니다.
4. 프론트와 백엔드를 직접 구현하여 전체 흐름 이해
하기
- 프론트와 백엔드 간 흐름을 이해하기 위해서 Django 뿐만 아니라
vanilla JS
와DRF
를 사용하여프론트와 백엔드를 직접 구현
하고자 노력합니다.
5. RESTful API
설계
- DRF를 사용하여 RESTful API를 구축하여 RESTful의 의미를 이해하고자 노력합니다.
🎯 클론 코딩 Target 설명
- 사용자가 간편하게 읽고 싶은 타 웹 사이트 컨텐츠를
크롤링
으로 저장하는 기능 - 크롤링한 컨텐츠에
하이라이트
표시로 원하는 부분을 강조하는 기능 - 각 컨텐츠에
태그
를 사용자가 직접 추가하여 태그 단위로 컨텐츠 조회 기능 - 그 외
즐겨찾기
,하이라이트
,아티클
,동영상
별로 저장한 웹 사이트 조회 로그인
/회원가입
을 통해 포켓 사이트 접속 및결제
를 통한 사용 서비스 제한
- tool : figma
-
개발은 로컬 환경에서 작업 단위로
feature
branch를 생성해서 개발 및 테스트 후, remotefeature
branch로 푸시하고 remotedevelop
branch에 PR을 생성하여 코드 리뷰 후에 병합합니다. 그 후,develop
와main
branch 간 commit 수 차이가 10개 이상 벌어지면main
브랜치에 PR을 생성하여 병합합니다. -
기본 브랜치 :
main
브랜치로 항상 존재하는 브랜치 -
보조 브랜치 :
각 목적에 맞게 사용
하며 기본 브랜치에 병합하고 더 이상 사용하지 않으면 삭제- feature(기능) / bugfix(버그 수정) / hotfix(긴급 버그 수정) / refactor(리팩토링) / docs(문서) / test(테스트) / conf(설정)
- 문서화
- Django Rest Framework 기능 활용
- Serializer, decorator, orm 등 기능에 대한 이론적인 구조를 숙지
- Iamport를 이용한 결제 로직 구현
- Restful URL 규칙 준수
- vanilla JS를 이용한 비동기 프론트 화면 렌더링
- 웹 컨텐츠 크롤링 시 비디오, 아티클 카테고리 구분 기능
- 유료 결제에 따른 기능 제한 - 프리미엄 결제 시 하이라이트 기능 제한 없이 사용가능
- 중복되는 코드의 함수화를 진행하여 코드의 간결성 추구
- Code Convention을 준수
- 매주 프로젝트 코드 리뷰 진행
- 코드 리뷰를 위한 PR Template 작성: Project: Pull Request templates를 도입한 이유
- commit message convention 사용:
- 브랜치 전략을 통해 프로젝트 Repo 관리
- Jira를 이용한 기능별 주기 스프린트로 일정관리
- user는
회원가입
을 할 수 있다. - user는
로그인
을 통해 서비스를 이용 할 수 있다. - user는
로그아웃
을 할 수 있다. - user는
웹 사이트
를저장
할 수 있다. - user는
저장한 웹 사이트
를조회
할 수 있다. - user는
저장한 웹 사이트
를삭제
할 수 있다. - user는
저장한 웹 사이트
를조회
하여 원하는 구절이나 단어에하이라이트 적용 저장
할 수 있다. - user는
저장한 하이라이트 내용
을삭제
할 수 있다. - user는
저장한 웹 사이트
에 원하는태그
를추가
할 수 있다. - user는
태그 또는 검색
을 통해 저장된 웹 사이트 중 원하는웹 사이트
를조회
할 수 있다. - user는
즐겨찾기
기능을 통해저장한 웹 사이트
를분류
할 수 있다.
- user는 유료 서비스를
결제
할 수 있다. - user는 유료 서비스
결제 시 하이라이트 기능을 제한 없이 사용
할 수 있다.
[APIview를 DestroyAPIView로 변경하여 시도]
[2종류 데이터를 받아오는 api, restful하게 변경 작업]
[함수의 사전에 처리되는 중복 작업 decorator 처리]
[Project: Iamport를 선택한 이유, 사용 시 결제 과정, 그리고 얻는 장점]
[ManytoMany 관계를 가진 두 모델 Bulk Create 작업]
[Tag가 포함된 Site serialize (many-to-many)]
🗂 Wiki
- 요구사항 정의서
- 테이블 정의서
- 프로세스 정의서