개발 목적 이해하기
게시판 서비스 프로젝트의 목표
- 누구나 이해하기 쉬운 소재로 명확한 기능 요구사항을 만든다
- 요구사항을 구현하는데 도움이 되는 각종 문서 작업을 경험한다.
- 자바 + 스프링 부트로 프로젝트 요구사항을 실제로 구현하는 기술적인 방법을 익힌다.
- 최신 버전의 기술을 사용해 보면서 기술 동향을 파악하고, 새로운 문제와 해결 방법을 확인한다.
- 기획과 문서 작성부터 개발, 형상관리, 테스트, 배포까지 개발 프로세스 전반을 경험한다.
다양한 형태의 문서 작업 - 원활한 협업의 초석
- 문서를 통해 개발할 프로젝트의 목적, 내용, 진행상황을 공유 (왜 하는지가 특히 중요)
* 무엇을, 어떻게 : 업무의 가이드, 동료의 생산성을 높여줌
* 왜 : 함께 움직이는 원동력, 동료가 더 나은 방법을 제안하거나, 내 생각의 오류를 잡아줌
- 내용이 구체적일 수록, 동료들의 프로젝트 개발 내용이 잘 동기화되고 진행이 막히지 않음
* 주의 : 과도한 정보의 점람, 업데이트되지 않았거나 잘못된 정보가 주는 혼란
- 백업이 용이 : 문서는 지나간 일을 다시 꺼내야 할때 쉽게 찾게 도와줌
- 기억은 짧고 왜곡되지만, 문서는 수정이 가능하고 발전하며 오래 감
- 업무 기록을 남김으로써 업무 진척 상황과 내 성과가 잘 드러남.
이 게시판 만들기 프로젝트에서 해볼 문서 작업은
- diagrams.net(구 draw.io) : 도메인과 ERD 설계, 유즈케이스
- 구글 시트 : API 디자인
- 깃 + 깃헙 : 커밋 메시지 작성, 프로젝트 관리 및 협업 환경 꾸미기
개발의 목적 - 고객의 문제를 해결 (+하는 과정을 공부)
- 고객의 니즈와 문제를 정리
* 고객이 원치 않거나 고객의 문제를 해결해줄 수 없는 개발은 의미 없다
* 공부가 목표 - 이 부분에서 다소 자유롭게 (실패가 용인됨)
- 문제 -> 요구사항 -> 기능(feature)도출 -> 구현 방안의 기획 -> 개발 계획 수립 -> 실행
- 위 모든 과정을 강의와 함께 공부, 연습
- 제약사항 : 강의 프로젝트이므로, 기술 스택이 어느정도 정해져 있음
* 제약 == 집중과 효율
- 공부 목표의 특전 : 가능한 한 최신 버전의 기술을 사용
* 최신 동향 파악
* 아직 밝혀지지 않은 이슈를 직접 경험 -> 해결 방법 찾기 -> 할 수 있다면 해결까지
이 게시판 만들기 프로젝트에서 해볼 개발 작업은
- IDE : IntelliJ IDEA 2022.1.1(Ultimate Edition)
* Community Edition은 무료지만 강의에서 활용할 스프링 부트 지원 기능이 동작하지 않음
* 현업에서 Ultimate Edition 라이선스를 구매하여 지급해 주므로 강의 초점을 이에 맞춤
- 언어 : java 17
- 프레임워크 : spring boot 2.7.0
- 빌드 도구 : gradle 7.4.1
- Git GUI : GitKraken - git 형상 관리와 브랜치 전략 활용
- 각종 개발 전략과 도메인 설계, 실무 디자인 패턴, 비즈니스 로직의 구현을 경험
테스트와 배포 - 고객에게 제품을 보여주고 성과를 확인하는 순간
- 테스트
* 개발 요구사항이 빠짐 없이 모두 구현되었는가(일이 끝났는가)
* 구현된 요구사항이 오류 없이 동작하는가 (일이 잘 끝났는가)
- 배포
* 깃헙 릴리즈 작성
* 클라우드 서버에 배포 (헤로쿠) 나는 AWS에 배포
이 게시판 만들기 프로젝트에서 해볼 테스트와 배포는
- 테스트
* JUnit 5.8.2
* 각종 테스트 라이브러리 (Mockito, AssertJ 등)
* 스프링 부트 슬라이스 테스트 테크닉
* 깃헙 : 테스트/빌드 자동화
- 배포
* 클라우드 서버에 배포(Heroku) 나는 AWS
* 최근 보안 이슈로 일부 자동화 기능을 이용하지 못할 수 있음
* Heroku 를 사용하지 못할 경우, 로컬에서 실행
* 깃헙 : Heroku 배포 자동화
Reference
* https://assertj.github.io/doc/
'Java' 카테고리의 다른 글
[참고] Ubuntu JDK(JAVA Development Kit) 17 설치 및 삭제 !! (52) | 2023.11.15 |
---|---|
[Java] Java vs Javascript (1) | 2022.10.04 |
[Java] 프로젝트 기획 (필요한 기술 정리하기) 2강 (0) | 2022.08.24 |
[Eclipse] 선택한 글 색상 변경 (1) | 2022.08.17 |
Eclipse Git commit & Push 대상 색상 변경( Uncommitted Change Color) (0) | 2022.07.24 |
Spring vs Spring Boot (0) | 2022.07.11 |
JUnit5, Mockito & Spring (0) | 2022.06.30 |
댓글