From 850273cfcd52ff4b7b360d30e6b5a8a38781be1f Mon Sep 17 00:00:00 2001 From: leeuihyun Date: Fri, 20 Jun 2025 10:59:17 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat=20:=20driver-class-name=20=EC=86=8D?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e8f7b4e..ec9fc33 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,9 +6,10 @@ spring: url: ${DB_URL} username: ${DB_USERNAME} password: ${DB_PASSWORD} + driver-class-name: com.mysql.cj.jdbc.Driver jwt: secret: key: ${SECRET_KEY} - expiration : 3600000 \ No newline at end of file + expiration: 3600000 \ No newline at end of file From cb5e2b65f6a83526beff2ebd248353bbcb7abb5b Mon Sep 17 00:00:00 2001 From: leeuihyun Date: Fri, 20 Jun 2025 11:17:07 +0900 Subject: [PATCH 2/2] =?UTF-8?q?docs=20:=20README=20=EC=98=A4=ED=83=80=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20/=20=EC=9A=B4=EC=98=81=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EB=B3=80=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 61 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b60f0ed..10db19b 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,16 @@
-아웃소싱 형태로 진행된 백엔드 프로젝트입니다. +아웃소싱 형태로 진행된 백엔드 프로젝트입니다. 클라이언트 측에서 프론트엔드 개발을 완료한 상태에 참여하였으며, REST API 기반으로 프론트엔드와 안정적으로 연동되는 백엔드 서버를 설계 및 구축하였습니다. -요구사항 분석부터 API 설계, 예외처리까지 전바적인 서버 개발을 수행한 프로젝트입니다. +요구사항 분석부터 API 설계, 예외처리까지 전반적인 서버 개발을 수행한 프로젝트입니다. > **내일배움캠프 1조** -> +> > **개발기간 : 2025-06-13 ~ 2025-06-20**
@@ -38,13 +38,15 @@ REST API 기반으로 프론트엔드와 안정적으로 연동되는 백엔드
-## 📜 API 명세서 +## 📜 API 명세서 -API 명세서는 [OutSourcing Project API 문서](https://teamsparta.notion.site/API-2112dc3ef51480a9a21cf45c77d1e85f)를 클릭해주세요 +API +명세서는 [OutSourcing Project API 문서](https://teamsparta.notion.site/API-2112dc3ef51480a9a21cf45c77d1e85f) +를 클릭해주세요
-## 👥 Team Member +## 👥 Team Member - **이의현 (팀장)** 테스크 도메인 전반 (테스크 생성, 수정 ,조회, 상태변경, 삭제) 담당 @@ -81,71 +83,82 @@ API 명세서는 [OutSourcing Project API 문서](https://teamsparta.notion.site
+## ✨운영 환경 변수 + +```json +DB_URL=jdbc:mysql: //localhost:3306/yourdb +DB_USERNAME=yourusername +DB_PASSWORD=youruserpassword +SECRET_KEY=your_jwt_secret_key +``` + +
+ ## 🪄 트러블 슈팅 -### USER 도메인 +### USER 도메인 - **406 ERROR (회원가입, 로그인)** - - **응답 할 때 OffsetDateTime 역직렬화 불가 → 의존성을 추가하여 해결** + - **응답 할 때 OffsetDateTime 역직렬화 불가 → 의존성을 추가하여 해결** - **JWT 예외처리** - - **`@ControllerAdvice`를 이용한 JWT 예외를 원하는 응답 형태로 변경 → Controller 보다 먼저 실행 되어 수동으로 응답 형태 생성** + - **`@ControllerAdvice`를 이용한 JWT 예외를 원하는 응답 형태로 변경 → Controller 보다 먼저 실행 되어 수동으로 응답 형태 생성** - **CORS** - - **docker 이용하여 프론트엔드 연결 후 백엔드 로직 실행 → CORS 문제 발생하여 CORS 설정하여 해결** + - **docker 이용하여 프론트엔드 연결 후 백엔드 로직 실행 → CORS 문제 발생하여 CORS 설정하여 해결** ### TASK 도메인 - **DB 정규화 지키기 위한 과도한 설계** - - **불필요하게 테이블의 복잡성 상승 → Enum을 사용하여 불필요한 분리를 줄이고 타입의 안정성 상승** + - **불필요하게 테이블의 복잡성 상승 → Enum을 사용하여 불필요한 분리를 줄이고 타입의 안정성 상승** - **TestCode** - - **테스트 코드 작성하여 Sturbing 후 실행하였지만 값을 반환하지 않음** + - **테스트 코드 작성하여 Sturbing 후 실행하였지만 값을 반환하지 않음** - - **반환값을 직접 지정하여 해결** + - **반환값을 직접 지정하여 해결** ### COMMNET 도메인 - **협업의 어려움** - - **각 도메인 파트별로 개발 → 나중에 연관이 있는 부분을 공통적으로 통일해야하는 문제 발생** + - **각 도메인 파트별로 개발 → 나중에 연관이 있는 부분을 공통적으로 통일해야하는 문제 발생** - - **팀원과 소통하며 기본적인 틀에서 조금씩 수정하여 해결** + - **팀원과 소통하며 기본적인 틀에서 조금씩 수정하여 해결** - **프론트엔드 API를 이용한 개발의 어려움** - - **API 설계를 도메인 위주로 하였으나 프론트 엔드 API와 달라 기능이 구현되지 않음** + - **API 설계를 도메인 위주로 하였으나 프론트 엔드 API와 달라 기능이 구현되지 않음** - - **프론트엔드 API에 맞추어 API를 일부 수정하여 해결** + - **프론트엔드 API에 맞추어 API를 일부 수정하여 해결** ### DASHBOARD - **Priority task 정렬** - - - **Priority`(Enum)` high-medium-low로 정렬하기 위해 `Enum`에 정수 필드를 추가 방식과 `Map<>`을 사용하여 정렬하는 방식을 고민** - - **`Map<>`을 사용하는것으로 결정 → 순서를 정렬하는 로직이 이 경우밖에 없어서 결정** + - **Priority`(Enum)` high-medium-low로 정렬하기 위해 `Enum`에 정수 필드를 추가 방식과 `Map<>`을 사용하여 정렬하는 방식을 고민** + + - **`Map<>`을 사용하는것으로 결정 → 순서를 정렬하는 로직이 이 경우밖에 없어서 결정** - - **추가적으로 순서를 정렬하는 로직이 있을 경우 `Enum`에 정수 필드를 추가하여 사용하는 방향으로 선택** + - **추가적으로 순서를 정렬하는 로직이 있을 경우 `Enum`에 정수 필드를 추가하여 사용하는 방향으로 선택** ### LOG - **AOP 도입 및 책임 분리의 어려움** - - **로직 분리의 기준을 정하는데 어려움 → 공통 처리와 비즈니스 로직 사이의 경계가 모호** + - **로직 분리의 기준을 정하는데 어려움 → 공통 처리와 비즈니스 로직 사이의 경계가 모호** - - **AOP → 요청 메서드, URL, 로그인 한 유저ID 공통 정보 추출** + - **AOP → 요청 메서드, URL, 로그인 한 유저ID 공통 정보 추출** - - **추출한 데이터를 서비스 계층으로 전달하여 가공 및 DB 저장을 담당하도록 구조 설계함** + - **추출한 데이터를 서비스 계층으로 전달하여 가공 및 DB 저장을 담당하도록 구조 설계함**