본문 바로가기

분류 전체보기153

[청하] 37. 로컬 환경에서 Spring Boot 모니터링 시스템 구축 (with. Prometheus, Grafana) REFhttps://lordofkangs.tistory.com/327https://woo-chang.tistory.com/78https://lordofkangs.tistory.com/329https://velog.io/@coastby/Grafana-설치-prometheus와-연동하기 모니터링의 중요성현대 소프트웨어 개발에서 모니터링은 중요한 요소이다. 모니터링을 통해 애플리케이션이 실시간으로 어떻게 동작하는지를 파악하고, 문제가 발생했을 때 이를 빠르게 감지하고 대응할 수 있다. 이는 서비스의 안정성과 사용자 경험에 직접적인 영향을 미친다.특히 애플리케이션의 성능, 상태, 리소스 사용량 등을 지속적으로 모니터링함으로써 가용성을 유지하고, 성능 병목 현상이나 오류를 빠르게 감지할 수 있다. 이런 모니터링 .. 2024. 10. 27.
[청하] 36. 게시글 조회수 기능 구현 게시글도 조회수 기능을 추가하게 되었다.게시글 조회수는 이전 정책 조회수와 다르게, 시글 테이블에 조회수 컬럼을 직접 추가하여 더 간단하게 구현했다. 1. 프로젝트 구조src/main/java/com/example/withpeace/│├── domain/ # 도메인 모델 (엔티티)│ └── Post.java # 게시글 엔티티│├── repository/ # 데이터 접근 계층│ └── PostRepository.java # 게시글 레포지토리│├── controller/ # 컨트롤러 계층│ └── PostController.java # 게시글 관련 API 엔드포인트│└── service/ .. 2024. 10. 25.
[청하] 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.
반응형