Skip to content

[IC2_BE] 최해혁 설문조사 서비스 과제#1

Open
hyuk12 wants to merge 30 commits into
FC-InnerCircle-ICD2:mainfrom
hyuk12:main
Open

[IC2_BE] 최해혁 설문조사 서비스 과제#1
hyuk12 wants to merge 30 commits into
FC-InnerCircle-ICD2:mainfrom
hyuk12:main

Conversation

@hyuk12

@hyuk12 hyuk12 commented Nov 24, 2024

Copy link
Copy Markdown

Checklist

  • 설문조사 생성 API
  • 설문조사 수정 API
  • 설문조사 응답 제출 API
  • 설문조사 응답 조회 API

프로젝트 구조

멀티 모듈 구성

  • Core: 공통 예외 처리, 글로벌 설정, 유틸리티
  • Survey: 설문조사 생성 및 수정 로직
  • Response: 설문 조사 응답 제출 및 조회 로직
  • API: REST API 엔드포인트 정의

기술 스택

  • Java 17
  • Spring Boot 3.x
  • Gradle
  • H2 Database
  • Redis: 동시성 제어를 위한 캐싱
  • Swagger: API 문서화 및 테스트
  • JUnit: 단위 테스트 및 통합 테스트 작성

비고: Redis 를 써서 localhost:6379 로 레디스가 동작 중 이어야합니다.

core 모듈에 docker 패키지 내부에 docker-compose.yml 존재합니다.


API 문서 확인

http://localhost:8080/swagger-ui/index.html

Jar 파일

  1. Executable JAR 파일 다운로드
  2. Jar 파일 실행:
  java -jar api-1.0.0.jar

궁금한점.

  1. import가 많아지는 부분에 대해서 facade 로 풀어서 진행해보았는데, 제대로 구현한 것인지 의문이듭니다.

<description>
- Core, Survey, Response, Api 모듈 추가
- settings.gradle에 모듈 경로 설정
- 공통 종속성 및 기본 Gradle 설정 적용
<description>
- Core, Survey, Response, Api 모듈 추가
- settings.gradle에 모듈 경로 설정
- 공통 종속성 및 기본 Gradle 설정 적용
<description>
- Core, Survey, Response, Api 모듈 추가
- settings.gradle에 모듈 경로 설정
- 공통 종속성 및 기본 Gradle 설정 적용
@hyuk12 hyuk12 closed this Nov 24, 2024
zephyr7419 and others added 4 commits November 24, 2024 16:54
…ect() for module configurations

<description>
- 정확하지 않던 메소드인 declare 대신 project 로 변경
… utilities

<Description>
- BaseEntity 추가
- 날짜 포맷 유틸 추가
- JPA Auditing 추가
[WIP] Core 모듈 기본 구조 및 공통 엔티티 설계 작업
<Description>
- survey entity 추가
- question entity 추가
@hyuk12 hyuk12 reopened this Nov 24, 2024
@hyuk12 hyuk12 added the Needs Review 작업이 완료되어 리뷰가 필요할 때 사용 label Nov 24, 2024
@hyuk12 hyuk12 changed the title [WIP] Core 모듈 기본 구조 및 공통 엔티티 설계 작업 [Needs Review] Core 모듈 기본 구조 및 공통 엔티티 설계 작업 Nov 24, 2024
@hyuk12 hyuk12 self-assigned this Nov 24, 2024
@hyuk12 hyuk12 changed the title [Needs Review] Core 모듈 기본 구조 및 공통 엔티티 설계 작업 [Needs Review] 설문조사 서비스 과제 Nov 25, 2024
@hyuk12 hyuk12 added WIP 작업을 진행중일 때 사용 and removed Needs Review 작업이 완료되어 리뷰가 필요할 때 사용 labels Nov 25, 2024
@hyuk12 hyuk12 changed the title [Needs Review] 설문조사 서비스 과제 [WIP] 설문조사 서비스 과제 Nov 25, 2024
hyuk12 and others added 5 commits November 25, 2024 11:09
[WIP] Add Survey and Question domain entities for Survey Module
<Description>
- survey dto 추가
- question dto 추가
chore: add survey, question request dto
<description>
- 기존 모듈 구조를 약간 변경,
- api 모듈에 존재하던 메인클래스를 루트 경로로 변경
- 작동 테스트 간단하게 완료
fix: 구조 변경 및 작동 테스트 완료
@hyuk12 hyuk12 changed the title [WIP] 설문조사 서비스 과제 [IC2_BE] 최해혁 설문조사 서비스 과제 Nov 25, 2024
siruharu and others added 8 commits November 26, 2024 19:53
<description>
- 기존에 root 경로에 main application 두었던 것 제거
- root build.gradle 에서 모든 모듈을 관리하는 것에서 따로 따로 하는 것으로 변경
<description>
- survey 등록시 최대 10개의 질문 등록 가능
- 질문 등록시 타입에 따라서 choices 리스트 존재
- orderIndex 로 질문 순서 기억
- 필수 작성 질문 isRequired 로 구분
- Survey 엔티티에 질문 추가 시 최대 orderIndex + 1로 설정하는 기능 추가
- 질문 삭제 및 추가 시 전체 질문 순서 재정렬 기능 (`reorderQuestions`) 구현
- 질문 순서를 명시적으로 지정할 수 있도록 `orderIndex` 처리 로직 개선
- Question의 순서 재배치 시, `@OrderBy("orderIndex ASC")`를 사용하여 정렬 상태 유지

업데이트 시 기존 질문의 순서를 명시적으로 변경할 수 있도록 로직을 개선하여
설문조사의 일관성을 유지하고, 질문의 순서가 중복되지 않도록 처리
- Survey 엔티티에 질문 추가 시 최대 orderIndex + 1로 설정하는 기능 추가
- 질문 삭제 및 추가 시 전체 질문 순서 재정렬 기능 (`reorderQuestions`) 구현
- 질문 순서를 명시적으로 지정할 수 있도록 `orderIndex` 처리 로직 개선
- Question의 순서 재배치 시, `@OrderBy("orderIndex ASC")`를 사용하여 정렬 상태 유지

업데이트 시 기존 질문의 순서를 명시적으로 변경할 수 있도록 로직을 개선하여
설문조사의 일관성을 유지하고, 질문의 순서가 중복되지 않도록 처리
@hyuk12 hyuk12 added Needs Review 작업이 완료되어 리뷰가 필요할 때 사용 WIP 작업을 진행중일 때 사용 and removed WIP 작업을 진행중일 때 사용 Needs Review 작업이 완료되어 리뷰가 필요할 때 사용 labels Nov 27, 2024
@hyuk12 hyuk12 added Needs Review 작업이 완료되어 리뷰가 필요할 때 사용 and removed Needs Review 작업이 완료되어 리뷰가 필요할 때 사용 labels Nov 28, 2024
@hyuk12 hyuk12 added Needs Review 작업이 완료되어 리뷰가 필요할 때 사용 and removed WIP 작업을 진행중일 때 사용 labels Dec 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs Review 작업이 완료되어 리뷰가 필요할 때 사용

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants