[IC2_BE] 한해용 - 설문조사 서비스 과제#9
Open
haeyonghahn wants to merge 22 commits into
Open
Conversation
- api 명세서 작성을 위한 swagger2 라이브러리와 lombok 추가 - error 및 exception 처리를 위해 error 관련 소스 추가 - application.yml 설정 정보 추가
- Servey : 설문조사 양식 - Question : 설문 받을 항목 - Option : 설문 받을 항목이 단일 선택 리스트 또는 다중 선택 리스트인 경우 포함되어야 하는 후보
- Fix: Option 엔티티 number 필드 타입 수정 - Feat: SQL 로깅 추가
- ServeyRequest, QuestionRequest, OptionRequest 추가 및 검증 - ErrorResponse message 타입 수정 - ApiController 예외 처리 추가
- xxxEditor 클래스를 활용하여 데이터 수정 - Fix: QuestionRequest type 예시 수정 - Fix: QuestionType 메소드명 수정 - Fix: ServeyController 메소드명, 응답 상태값 변경
- Remove: Questions 및 QuestionsValidator 파일 삭제 - Question 어노테이션 역할을 ServeyValidator 로 변경 - ConstraintViolationException 예외 처리 추가
- 설문조사 응답 제출 API 예외 처리 추가 - Question 엔티티 응답 컬럼 추가
- Chore: build.gradle version 명시 제거
- Fix: SwaggerConfig Page 클래스 정의 수정
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
온보딩 프로젝트 기능 요구사항
1. 설문조사 생성 API
2. 설문조사 수정 API
3. 설문조사 응답 제출 API
4. 설문조사 응답 조회 API
우대사항
프로젝트 구성 추가 요건: 멀티 모듈 구성 및 모듈간 의존성 제약
설문조사 서비스 최초에 멀티 모듈로 onboarding 프로젝트를 구성한다고 한다면
크게 두 가지로 core 모듈과 servey 모듈로 구성할 거 같습니다.
하지만 설문조사 서비스의 시스템이 커지게 된다면 core 모듈에 공통 코드가 쌓이게 되면서
모듈의 형태가 비대칭적으로 커지게 될 거 같습니다. 이 경우는 core 모듈에 장애 발생 시 다른
도메인 서비스에 장애 전파가 일어날 소지가 있을 거 같습니다.
그래서, core 모듈에 공통 코드를 몰아두지 말고 분명하게 모듈을 분리하는 작업이 필요할 거 같습니다.
Back-end 추가 요건
트래픽이 많고 저장되어 있는 데이터가 많다면, 설문조사 데이터를 가져올 때
조회 속도 이슈가 발생할 수도 있을 거 같습니다. 이 경우엔 Redis와 같은 기술을 이용하여
캐시를 활용해 캐시되어 있는 데이터를 조회함으로써 속도 이슈를 개선할 여지가 있을 거 같습니다.
다수의 서버, 인스턴스에서 동작한다고 하더라도
싱글 쓰레드인 Redis를 활용하여 동시성 이슈를 개선하는 용도로 활용될 수 있을 거 같습니다.
기능 점검을 위한 빌드 결과물
Executable jar 형태의 파일 다운르도
설문조사 서비스의 API 명세
Executable jar 형태의 파일 실행 후 http://localhost:8080/swagger-ui.html 에 접속해주세요.