Spring 기본 프로젝트하면, 게시판 서비스인 거 같습니다.
10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 강의를 수강하며,
프로젝트 진행사항을 기록하고자합니다.
개발환경
- 개발도구: Intellij IDEA Ultimate
- 개발언어: Java
- 프레임워크: Spring boot
- 소스코드관리: Git
- Git GUI: Gitkraken Pro
프로젝트 목표
- 원활한 협업의 초석인 문서 작업을 경험한다.
- 이해하기 쉬운 기능 요구사항을 만든다.
- Spring Boot를 통해 요구사항을 실제로 구현한다.
- 기획 - 문서작성 - 개발 - 형상관리 - 테스트 - 배포까지 개발 프로세스를 경험한다.
필요한 세부 기능 및 기술
- 웹 서비스 제공 - Spring web
- 도메인 설계와 데이터 DB 저장 - Spring Data JPA, H2Database, MySQL Driver
- Json API로 데이터 제공 - Rest Repositories, Rest Repositories HAL Explorer
- 웹 화면 - SSR (Thymeleaf)
- 디자인 - Bootstrap
- 입출력 데이터 검증 - Validation
- 인증기능 - Spring Security
- 생산성 - Lombok, Spring Boot DevTools, Spring Boot Actuator
진행할 문서작업
- diagrams.net(draw.io) : 도메인과 ERD 설계, 유즈케이스
- 유즈케이스? 시스템에 대한 전체적인 사용자의 이용패턴
- draw.io는 깃허브와 연동이 가능함. 다만, UseCase 탬플릿은 따로 존재하진않음.
- Google Sheet : API 설계
- Git,Github : Commit 메세지, 협업환경 구성하기
진행할 테스트와 배포
- 테스트
- Junit의 테스트 라이브러리 사용 (Mockito,AssertJ)
- 스프링 부트 슬라이스 테스트 테크닉
- 깃헙: 테스트/빌드 자동화
- 배포
- 깃헙 릴리즈 작성
- 클라우드 서버에 배포 (헤로쿠)
협업환경 구성
Github Project : 칸반,스프린트(1주) 환경 구성
깃브랜치 운영 방법론 선택
- 깃브랜치 전략 세우는 이유?
하나의 프로젝트를 여러 개발자들이 다루면서 발생하는 각종 부작용을 해결할 수 있다. - gitflow : master,develop,feature,release,notfix 브랜치를 설정하고 운영
- githubflow: main,feature 브랜치만으로 운영 ✅
- issue에서 feature 브랜치의 commit을 한눈에 볼수있다.
ex) feature/#8-domain
- issue에서 feature 브랜치의 commit을 한눈에 볼수있다.
- 깃브랜치 전략 세우는 이유?