개발 프로젝트/프로젝트 개발방법론

제로베이스 연습 프로젝트 포인트정리

bsh6226 2024. 7. 23. 17:20

Account Project

Account Project  핵심

1. Dependency Injection이 스프링의 핵심

 

Account Project  배울점

1. Builder Pattern을 통한 코드 간결화

2. field값 설정의 Encapsulation을 통한 데이터 안정성 확보 및 코드간결화 (Entity to DTO to Response)

3. Optional을 통한 예외처리 

4. Exception을 커스텀 생성

5. Unit Test 꼼꼼하게 짜기

 

Weather Project

Weather Project  핵심

1. Database 캐싱 : client 요청마다 날씨관련 외부API를 사용하는 대신, 하루에 Scheduling을 통해 한번 날씨정보를 로컬 DB에 저장하고 로컬DB로부터 데이터를 fetch하여 client에 응답하는 것.

 

Weather Project  배울점

(1) JPA개념

(2) Transaction 세부설정

(3) Schedule

(4) Swagger


Weather Project trouble Shooting(1)

1. mariadb가 깔려있는 상태에서 mysql을 설치하려고 하니, port뿐만 아니라 알 수없는 충돌이 발생하여 mariadb를 삭제시키고 mysql을 구동함. 

2. spring gradle dependency 설정시 spring property 상에 jdbc가 해당경로에 경로에 없어 오류가 발생하였던 것을 확인함. 해당 오류는 JDBC 버전을 명시하지 않고 생략해서 발생한 문제임을 구글링하여 찾아내었고 아래와 같이 버전을 명확하게 명시하여 문제해결함.

runtimeOnly 'mysql:mysql-connector-java:8.0.33' // 버전 명시

 

Weather Project trouble Shooting(2)

1. Swagger사용을 위해서 dependenct와 property 셋팅 완료

2. 동작실행시 아래와 같은 오류 확인

  A. Many auto-configuration classes are not matched:

  B. 'java.lang.TypeNotPresentException: Type javax.servlet.http.HttpServletRequest not present' exception 확인.

3. Dependency Conflict문제로 예상되어 검색을 통해서 javax.servlet에서 jakarta.servlet으로 이전시 swagger의 springfox가 openapi로 변경되어 생긴 문제로 확인

4. dependency를 openapi로변경하고, 이에 따라 코드를 수정하였으나 이번에는 swagger ui를 rendering하는 resource가 파일 내 존재하지 않아 Gradle을 통해 jar file 탐색

 

Dividend Project

dividend Project  핵심

1. 캐쉬서버구성

2. DB 인덱스 설정

3. 사용자토큰인증

4. 스크래핑 기술

 

 

dividend Project  배울점

2. 스태틱 팩토리 빌드패턴

3.  Interface 도입으로 규약을 추가하여 교체성 증가

4. trie자료구조

4. thread pool사용

 

상거래 Project

상거래 Project  핵심

1. 프로젝트 설계법

2. Security 사용법, 필터사용법