게시판 서비스 프로젝트의 목표
•
누구나 이해하기 쉬운 소재로 명확한 기능 요구사항을 만든다.
•
요구사항을 구현하는데 도움이 되는 각종 문서 작업을 경험한다.
•
자바 + 스프링 부트로 프로젝트 요구사항을 실제로 구현하는 기술적인 방법을 익힌다.
•
최신 버전의 기술을 사용해 보면서 기술 동향을 파악하고, 새로운 문제와 해결 방법을 확인한다.
•
기획과 문서 작성부터 개발, 형상관리, 테스트, 배포까지 개발 프로세스 전반을 경험한다.
다양한 형태의 문서 작업 - 원활한 협업의 초석
•
문서를 통해 개발할 프로젝트의 목적, 내용, 진행상황을 공유 (왜 하는지가 특히 중요)
◦
무엇을, 어떻게: 업무의 가이드. 동료의 생산성을 높여줌
◦
왜: 함께 움직이는 원동력, 동료가 더 나은 방법을 제안하거나, 내 생각의 오류를 잡아줌
•
내용이 구체적일 수록, 동료들의 프로젝트 개발 내용이 잘 동기화되고 진행이 막히지 않음
◦
주의 - 과도한 정보의 범람, 업데이트되지 않았거나 잘못된 정보가 주는 혼란
•
백업이 용이: 문서는 지나간 일을 다시 꺼내야 할 때 쉽게 찾게 도와줌
•
기억은 짧고 왜곡되지만, 문서는 수정 가능하고 발전하며 오래 감
•
업무 기록을 남김으로써 업무 진척 상황과 내 성과가 잘 드러남
게시판 만들기 프로젝트에서 해볼 문서 작업
•
•
구글 시트: API 디자인
•
깃 + 깃헙: 커밋 메시지 작성, 프로젝트 관리 및 협업 환경 꾸미기
개발의 목적 - 고객의 문제를 해결 (+ 하는 과정을 공부)
•
고객의 니즈와 문제를 정리
◦
고객이 원치 않거나 고객의 문제를 해결해줄 수 없는 개발은 의미가 없다.
◦
공부가 목표 - 이 부분에서 다소 자유롭게 (실패가 용인된다)
•
문제 → 요구사항 → 기능(feature) 도출 → 구현 방안의 기획 → 개발 계획 수립 → 실행
•
아직 밝혀지지 않은 이슈를 직접 경험 → 해결 방법 찾기 → 할 수 있다면 해결까지
개발 작업 세팅
•
IDE: IntelliJ IDEA 2023.2 (Ultimate Edition)
•
언어: Java 17
•
프레임워크: spring boot 2.7.0
•
빌드 도구: gradle 8.8
•
git GUI: GitKraken - git 형상 관리와 브랜치 전략 활용
•
각종 개발 전략과 도메인 설계, 실무 디자인 패턴, 비즈니스 로직의 구현을 경험
강의에서 사용한 인텔리제이 추가 다운로드 플러그인 (커스터마이징)
•
CamelCase
•
GitToolBox
•
JPA Buddy
•
Key Promoter X
•
Presentation Assistant
•
Ideolog (203.0.30.0)
•
Atom Material Icons (64.0.0)
•
◦
"에러" : FF6188 (빨강)
◦
"경고" : FFD866 (노랑)
◦
"정보" : 78DCE8 (하늘)
◦
"debug" : A9DC76 (초록)
테스트와 배포 - 고객에게 제품을 보여주고 성과를 확인하는 순간
•
테스트
◦
개발 요구사항이 빠짐 없이 모두 구현되었는가 (일이 끝났는가)
◦
구현된 요구사항이 오류 없이 동작하는가 (일이 잘 끝났는가)
•
배포
◦
깃헙 릴리즈 작성
◦
클라우드 서버에 배포 (헤로쿠) - 목업 서비스용
이 게시판 만들기 프로젝트에서 해볼 테스트와 배포는…
•
테스트
◦
JUnit 5.8.2
◦
각종 테스트 라이브러리 (Mockito, AssertJ 등)
◦
스프링 부트 슬라이스 테스트 테크닉
◦
깃헙: 테스트/빌드 자동화
•
배포
◦
클라우드 서버에 배포 (Heroku)
◦
최근 보안 이슈로 일부 자동화 기능을 이용하지 못할 수 있음
◦
Heroku 를 사용하지 못할 경우, 로컬에서 실행
•
깃헙: Heroku 배포 자동화