본문 바로가기

분류 전체보기177

[청하] 35. 정책 조회수 기능 구현 “핫한 정책 조회” 기능을 구현하기 위해 먼저 정책에 대해 조회수 기능을 추가하기로 했다.간단하게 구현하면 정책 테이블에 조회수 필드를 추가하면 되지만, 현재 이 프로젝트의 정책 테이블은 주기적으로 삭제되고 “청년 정책 Open API” 호출로 다시 새로운 데이터를 저장한다.그래서 단순히 정책 테이블에 조회수 필드를 추가한다면, 정책 데이터가 리프레시 될 때 조회수도 초기화 될 것이다.그래서 정책 조회수는 테이블을 따로 생성해서 관리하도록 결정했다. 1. 프로젝트 구조src/main/java/com/example/withpeace/│├── domain/ # 도메인 모델 (엔티티)│ ├── YouthPolicy.java # 청년 정책 엔티티│ └── View.. 2024. 10. 23.
[청하] 34. 정책 찜하기 기능 - 유니크 제약조건 문제 해결 1. 문제 상황처음 도메인 엔티티 코드를 작성할 때 policyId는 중복 허용을 해야하는데 유니크 제약조건을 잘못 설정하여 문제가 발생했다.여러 사람이 동일한 정책을 찜하려 할 때 유니크 제약조건 위반으로 오류가 발생하는 이슈가 생겼다. 스프링부트 오류 로그2024-08-07T13:53:21.051Z WARN 1 --- [nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1062, SQLState: 230002024-08-07T13:53:21.051Z ERROR 1 --- [nio-8080-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : Duplicate entry 'R2024080.. 2024. 10. 23.
[청하] 33. 정책 조회 API - 찜하기 여부 추가 & 인증 설정 변경 정책에 “찜하기” 기능이 추가됨에 따라 기존 정책 조회 API들(“정책 리스트 조회”, “정책 상세 조회”)의 응답에 사용자의 찜하기 여부를 표시하는 컬럼을 추가하고, 관련 로직을 수정했다. 그리고 정책 조회 API는 인증된 사용자만 접근할 수 있도록 변경되었다. 1. 프로젝트 구조src/main/java/com/example/withpeace/││├── config/ # 설정 관련 클래스│ └── SecurityConfig.java # Spring Security 설정│├── constant/│ └── Constant.java # 상수 정의│├── domain/ # 도메인 모델 (엔티티)│ ├── YouthPolic.. 2024. 10. 23.
[청하] 32. 정책 찜하기 해제 기능 구현 “정책 찜하기”한 경우 이것을 해제하기 위한 기능을 구현했다. 1. 프로젝트 구조src/main/java/com/example/withpeace/│├── domain/ # 도메인 모델 (엔티티)│ ├── YouthPolicy.java # 청년 정책 엔티티│ └── FavoritePolicy.java # 청년 정책 찜하기 엔티티│├── repository/ # 데이터 접근 계층│ ├── YouthPolicyRepository.java # 청년 정책 레포지토리│ └── FavoritePolicyRepository.java # 정책 찜하기 레포지토리│├── controller/ # .. 2024. 10. 22.
[청하] 31. 찜한 정책 리스트 조회 기능 구현 찜하기 기능에 이어 각 사용자가 자신이 찜한 정책을 조회할 수 있는 기능을 구현했다. 정책 찜하기 기능에서 고려한 사항을 그대로 이어 구현했다. 찜하기 기능을 위해 고려해야할 사항현재 정책 업데이트 방식기존 데이터를 모두 삭제하고 외부 API를 호출해 업데이트된 데이터를 새로 저장.따라서 원본 정책이 사라지면 정책 정보를 불러올 수 없음.찜하기 테이블에 정책 정보 저장의 부담정책 정보를 찜하기 테이블에 저장하기에는 자원이 많이 소모됨.외래키 제약 조건 문제현재 업데이트 방식을 고려하면 찜하기 테이블의 policyId 에 외래키 제약 조건을 설정할 수 없음. 해결 방안정책 찜하기 테이블외래키 제약 조건을 설정하기 않고 정책 찜하기 테이블에 정책 id를 저장.isActive 컬럼을 추가. (정책의 활성화 상.. 2024. 10. 21.
[청하] 30. 정책 찜하기 기능 구현 앞서 정책 API를 호출하여 데이터베이스에 저장하고, 리스트 조회와 상세 조회를 구현했다.상세 조회 화면에서 찜하기 버튼을 두고, 정책 찜하기 API를 호출할 수 있도록 구현했다. 찜하기 기능을 위해 고려해야할 사항현재 정책 업데이트 방식기존 데이터를 모두 삭제하고 외부 API를 호출해 업데이트된 데이터를 새로 저장.따라서 원본 정책이 사라지면 정책 정보를 불러올 수 없음.찜하기 테이블에 정책 정보 저장의 부담정책 정보를 찜하기 테이블에 저장하기에는 자원이 많이 소모됨.외래키 제약 조건 문제현재 업데이트 방식을 고려하면 찜하기 테이블의 policyId 에 외래키 제약 조건을 설정할 수 없음. 해결 방안정책 찜하기 테이블외래키 제약 조건을 설정하기 않고 정책 찜하기 테이블에 정책 id를 저장.isActiv.. 2024. 10. 21.
[청하] 29. GCP 환경 구축 - SSH 키 설정 및 CI/CD 파이프라인 구성 GCP에서 서버를 운영하고 CI/CD 파이프라인을 구축할 때 SSH 키 설정이 필요하다.GCP 서버에 접속하기 위한 SSH 키를 생성 및 설정하고, CI/CD 파이프라인에서 발생한 SSH 관련 문제를 해결했다. 1. SSH 키 생성REF) Google Cloud 공식 문서 Windows 10 이상 환경에서 SSH 키를 생성하는 방법이다.명령어 프롬프트를 열고 -C 플래그와 함께 ssh-keygen 명령어를 사용하여 새 SSH 키 쌍을 만든다.ssh-keygen -t rsa -f C:\Users\{WINDOWS_USER}\.ssh\{KEY_FILENAME} -C {USERNAME} -b 2048WINDOWS_USER: Windows 머신의 사용자 이름이다.KEY_FILENAME: SSH 키 파일의 이름이다.. 2024. 10. 19.
반응형