프로젝트 진행 계획
토이 프로젝트를 시작하기 전 계획을 순서대로 정리
- 프로젝트로 얻고자 하는 목표 설정
- 사용 기술 / 개발 환경 / 도메인 등 정리
- 기능 구현 목록 정리
- 기능 구현 목록을 토대로 도메인 모델링 설계(draw.io)
- ERD 데이터베이스 설계
- 코딩 시작(이전 단계의 부족한 부분들을 보완하면서 진행) / 테스트 / 문서화
- 배포 / 운영
목 표
지금까지 토이프로젝트를 총 팀 프로젝트 2번 + 개인 프로젝트 1번 진행 했는데 토이프로젝트로 인해
얻고자하는 목표가 뚜렷할수록 긍정적인 결과를 얻었기 때문에 이번에도 목표를 정리 해보았다.
- Spring Boot 기반으로 ORM은 JPA를 사용하여 RestApi 서버를 구현
- 최대한 웹앱 서버 개발에 있어서 기본적인 기능들을 모두 경험해 볼 수 있는 도메인을 선정(E-COMMERCE)
- 보안
- Spring Security
- 장점 : 간편한 통합 / 다양한 인증 및 권한 부여 가능 / 커스터마이징 용이
- 단점 : 복잡성 / 상태 기반(세션 기반)
- JWT
- 장점 : 상태 비 저장 / 분산 시스템 용이 / 클라이언트 사이드 저장 가능
- 단점 : 복호화 필요
- JWT 선택 - > RestApi 프로젝트이므로 서버쪽 관리를 최대한 줄이기 위해 상태 비 저장과 클라이언트 사이드 저장이 유용하다 판단
- Spring Security
- 테스트
- 테스트는 추후에 테스트 관련 개발서적을 읽고 제대로 파보고 싶어 이번 프로젝트는 버겁지 않은 선에서 진행
- MockMvc : Controller Layer만 테스트가 가능해 간단할 듯 + Junit
- 문서화
- swagger
- 코드의 가독성을 떨어지는 대신 간편함.
- Spring Rest Docs
- 테스트 코드를 작성해야 문서 작성 가능
- 처음엔 swagger로 진행 후 테스트 코드 하게 되면 그 때 같이 Spring Rest Docs 구현해보는 순서 나쁘지 않을 듯
- DataBase 는 ERD , 도메인 모델링은 draw.io 사용
- swagger
- 배포 / 운영
- docker? / Elastic Beanstalk? (EC2를 jar 파일만으로 간단하게 배포 가능한 기능이라고 함) -> 싱글 인스턴스가 프리티어면 사용해볼까?)
- CI / CD 자동화를 통한 배포 경험해보자!(이왕이면 프로젝트 중간쯤에 해보고 운영하며 프로젝트 수정도 경험해보면 좋을 듯) - > Github Actions?
- 고민
- E-Commerce 도메인 선정 - > 기술적 학습에 중점을 두자
- 처음 개발(Dev)는 H2로 해도 좋을 듯?
- 람다 , 스트림 , 필터 함수형 문법 사용 해볼 것
- 개발 환경
- Eclipse 2023 - 12v(회사와 동일 툴 사용해서 회사 업무에도 도움 되게)
- Spring Boot(3.2.2) + Gradle
- Jpa(Spring data jpa) , Hibernate
- Mysql or MariaDB / JAVA 17
- Spring Security(JWT) / swagger 또는 Spring Rest Docs
'사이드 프로젝트 회고 및 기록' 카테고리의 다른 글
| [Self-Develope] 마지막 주차 회고 (1) | 2023.11.03 |
|---|---|
| [Self-Develope] 2주차 회고 (0) | 2023.06.08 |
| [Self-Develope] 1주차 회고 (0) | 2023.05.20 |
| [Self-Develope] 개인프로젝트로 자기개발 커뮤니티 사이트를 선정한 이유 (0) | 2023.05.20 |