Skip to content

[FEAT] 건강상태 CRUD api 구현#35

Merged
99hyuk merged 8 commits intomainfrom
feat/#34/medical-history
Apr 23, 2025
Merged

[FEAT] 건강상태 CRUD api 구현#35
99hyuk merged 8 commits intomainfrom
feat/#34/medical-history

Conversation

@kdy2224
Copy link
Copy Markdown
Contributor

@kdy2224 kdy2224 commented Apr 5, 2025

No description provided.

@kdy2224 kdy2224 requested a review from 99hyuk April 5, 2025 15:34
@kdy2224 kdy2224 linked an issue Apr 5, 2025 that may be closed by this pull request
@kdy2224 kdy2224 added the ✨ feature 새로운 기능을 추가합니다 label Apr 5, 2025
@kdy2224
Copy link
Copy Markdown
Contributor Author

kdy2224 commented Apr 5, 2025

(description 이 안올라가네요ㅜ)

closes #34

건강상태 생성
건강상태 조회
특정 사용자의 모든 건강상태 조회
건강상태 수정
건강상태 삭제

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

api URI restful하게 바꿔주세요. /health-status 으로 시작하는 건 좋은 것 같습니다. 추후 도메인 수정해놓겠습니다.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전반적으로 다른 pr에서 리뷰한 거랑 거의 비슷한 문제들이 있는 것 같아서 참고해서 수정해주세요.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다 :)

@AllArgsConstructor
public enum MedicalHistoryErrorCode implements ErrorCode {

USER_NOT_FOUND(HttpStatus.NOT_FOUND, "HEALTH-STATUS400", "User not found."),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

USER_NOT_FOUND는 기존 에러 사용해주세요.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

//건강상태 생성
@Operation(summary = "건강상태 생성 API", description = "건강상태 생성 API 입니다.")
@PostMapping
public ResponseEntity<ApiResponse<MedicalHistoryCreateResponse>> createMedicalHistory(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post에서 응답은 따로 필요 없으니 Void로 받으시면 되시고 관련 dto도 없에주시면 감사하겠습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

MedicalHistoryUpdateResponse response = medicalHistoryService.updateMedicalHistory(request, healthStatusId,
userId);
return ResponseEntity.ok(ApiResponse.success(response));
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

응답 삭제2


User user = userRepository.findById(userId)
.orElseThrow(() -> new OuchException(MedicalHistoryErrorCode.USER_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

공통 예외로 수정

public GetMedicalHistoryResponse getMedicalHistory(Long medicalHistoryId, Long userId) {
userRepository.findById(userId)
.orElseThrow(() -> new OuchException(MedicalHistoryErrorCode.USER_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드만 보면 userId를 유저 존재 여부만 체크하고 따로 사용을 하고 있지 않은데, 특정 유저의 건강상태를 어떻게 접근하고 있는 건가요?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medicalHistoryId 로 찾고 있습니다. 제가 아마 service 에서도 userId 에 해당하는 user 가 있는지 더 검증하려고 했던거 같습니다. 불필요할거 같네요. 지우겠습니다~

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

음 단순히 지워버리면 특정 건강 상태가 어느 유저의 내용인지 검증할 수가 없어요. 그래서
Optional findByIdAndUserId(Long id, Long userId)와 같은 커스텀 레포지토리를 만들어서 medicalhitory를 찾음과 동시에 유저가 맞는 지 검증하는 과정이 필요할 것 같습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 반영했습니다:)

Long medicalHistoryId, Long userId) {
userRepository.findById(userId)
.orElseThrow(() -> new OuchException(MedicalHistoryErrorCode.USER_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 userId를 의료기록을 불러오는 데 사용하고 있지 않습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

public void deleteMedicalHistory(Long medicalHistoryId, Long userId) {
userRepository.findById(userId)
.orElseThrow(() -> new OuchException(MedicalHistoryErrorCode.USER_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 userId를 의료기록을 불러오는 데 사용하고 있지 않습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

@99hyuk 99hyuk merged commit 625dda5 into main Apr 23, 2025
1 check passed
99hyuk added a commit that referenced this pull request Apr 27, 2025
* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request Apr 27, 2025
* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request Apr 28, 2025
* [CICD] release 배포 (#46)

* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] DockerFile 이미지에 curl 설치

* [REFACT] cd_workflow 파일 헬스체크 시간 확대

* [REFACT] dockerfile 자바 이미지 변경

* [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정

* [REFACT] 스웨거도 접속 가능하도록 수정

* [REFACT] CORS 설정 수정

* [REFACT] 도커파일 헬스체크 지연시간 추가

* [REFACT] cd_workflow 헬스체크 시간 추가

* [TEST] 테스트 위해 인증 로직 임시 수정

* [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준)

* [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가

* 배포 prod.yml ddl-auto: create -> update로 수정

* [REFACT] docker HealthCheck 개선 (작동 시간 증가)

* [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정

* [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정

* [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가

* [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정

* [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정

* [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거

* [REFACT] SpringSecurity 내  basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request Apr 30, 2025
…compose 도입 버전 배포 (#49)

* [BUG] 배포 상황이 안정된 브랜치로 복구, 도커 설정 관련 수정, Authorization 헤더 노출 CORS 수정 (#47)

* [CICD] release 배포 (#46)

* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] DockerFile 이미지에 curl 설치

* [REFACT] cd_workflow 파일 헬스체크 시간 확대

* [REFACT] dockerfile 자바 이미지 변경

* [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정

* [REFACT] 스웨거도 접속 가능하도록 수정

* [REFACT] CORS 설정 수정

* [REFACT] 도커파일 헬스체크 지연시간 추가

* [REFACT] cd_workflow 헬스체크 시간 추가

* [TEST] 테스트 위해 인증 로직 임시 수정

* [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준)

* [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가

* 배포 prod.yml ddl-auto: create -> update로 수정

* [REFACT] docker HealthCheck 개선 (작동 시간 증가)

* [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정

* [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정

* [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가

* [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정

* [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정

* [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거

* [REFACT] SpringSecurity 내  basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [FEAT] 사용자 언어 설정 및 조회 API 구현, 회원가입 시 언어, 국적 코드로 입력 받도록 수정 (#21)

* [FEAT] 유저 언어 설정, 조회 컨트롤러 작성

* [FEAT] 데이터베이스 내 모든 언어 조회 API 구현

* [FEAT] 데이터베이스 내 모든 국가 조회 API 구현

* [FEAT] 유저 언어 설정 변경 및 조희 API 구현

* [FEAT] 유저 국적 설정 및 조회 API 구현

* [REFACT] 회원가입 시 국적, 언어 ID가 아닌 Code로 가입하도록 수정

* [CHORE] 국가, 언어 필드 유니크 제약조건 추가, 회원가입 스웨거 기본값(국적, 언어) 수정

* [CHORE] 불필요한 언어 dto 삭제

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request May 8, 2025
* [BUG] 배포 상황이 안정된 브랜치로 복구, 도커 설정 관련 수정, Authorization 헤더 노출 CORS 수정 (#47)

* [CICD] release 배포 (#46)

* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] DockerFile 이미지에 curl 설치

* [REFACT] cd_workflow 파일 헬스체크 시간 확대

* [REFACT] dockerfile 자바 이미지 변경

* [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정

* [REFACT] 스웨거도 접속 가능하도록 수정

* [REFACT] CORS 설정 수정

* [REFACT] 도커파일 헬스체크 지연시간 추가

* [REFACT] cd_workflow 헬스체크 시간 추가

* [TEST] 테스트 위해 인증 로직 임시 수정

* [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준)

* [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가

* 배포 prod.yml ddl-auto: create -> update로 수정

* [REFACT] docker HealthCheck 개선 (작동 시간 증가)

* [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정

* [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정

* [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가

* [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정

* [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정

* [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거

* [REFACT] SpringSecurity 내  basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [FEAT] 사용자 언어 설정 및 조회 API 구현, 회원가입 시 언어, 국적 코드로 입력 받도록 수정 (#21)

* [FEAT] 유저 언어 설정, 조회 컨트롤러 작성

* [FEAT] 데이터베이스 내 모든 언어 조회 API 구현

* [FEAT] 데이터베이스 내 모든 국가 조회 API 구현

* [FEAT] 유저 언어 설정 변경 및 조희 API 구현

* [FEAT] 유저 국적 설정 및 조회 API 구현

* [REFACT] 회원가입 시 국적, 언어 ID가 아닌 Code로 가입하도록 수정

* [CHORE] 국가, 언어 필드 유니크 제약조건 추가, 회원가입 스웨거 기본값(국적, 언어) 수정

* [CHORE] 불필요한 언어 dto 삭제

* [REFACT] 건강상태 api 수정 (#55)

-건강상태 조회, 수정 api 에서 healthStatusId 를 따로 받지 않도록 수정(HealthStatusController)
-건강상태 생성(POST) api 삭제 및 SignUpService 에 건강상태 생성 로직 추가

* [REFACT] 자가진단표 생성 api 오류처리 추가 (#54)

-자가진단표의 visitType 필드 입력값(enum) 예외 처리

* [FEAT] 마이페이지 api 구현 - profile 만 (#56)

* (테스트용 커밋)

* [FEAT] MypageController(만) 생성

* [FEAT] 마이페이지 profile 조회, 수정 api 구현

* [CHORE] 불필요한 dto 파일 삭제

* [CHORE] profile 수정 api 수정
-수정 요청시 국가, 언어를 code 로 받도록 dto(MypageProfileUpdateRequest) 수정

* [CHORE] MypageService 예외처리 코드 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feature 새로운 기능을 추가합니다

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] 건강상태 api 구현

2 participants