분류 전체보기 36

TIL(2025-05-13)

◆ JWT 기반 인증/인가 시스템 구현 (feat. 공통 예외처리) ◆ 오늘은 인턴 과제의 요구사항에 맞춰 다음 두 가지 기능을 구현하였다:공통 예외 처리 구조 정리JWT를 이용한 인증/인가 시스템 구축▶ 먼저 ErrorCode, GlobalExceptionHandler, CustomExcepetion 클래스를 구현하여 통일된 예외 응답 포맷을 적용하였다.예외 발생 시 아래와 같은 양식이 요구 사항이였기 때문에 같은 형식의 JSON 응답을 내려주는 것이 목표였다. { "error": { "code": "INVALID_CREDENTIALS", "message": "아이디 또는 비밀번호가 올바르지 않습니다." }}▶ 다음으로 JWT 기반 인증 시스템을 적용하기 위해JwtUtil 클래스를 생성..

카테고리 없음 2025.05.13

트러블 슈팅(2025-05-13)

◆ JUnit 테스트 중 순환 참조(Circular Dependency) 문제 해결 ◆✅ 배경 JWT 인증 기반의 인증/인가 시스템을 구현한 후, AuthService 클래스의 회원가입 기능에 대한 단위 테스트 AuthServiceTest를 작성하여 검증을 진행하려 했습니다.Spring Boot의 @SpringBootTest 환경에서 테스트 실행 시, 애플리케이션 컨텍스트가 정상적으로 로딩되지 않는문제가 발생했습니다.❌ 문제테스트 실행 결과가 아래와 같은 에러가 발생하였습니다. Error creating bean with name 'securityConfig': Requested bean is currently in creation 해당 에러를 검색한 후 Spring에서 순환 참조(Circular De..

카테고리 없음 2025.05.13

TIL(2025-05-12)

현재 인턴쉽 전형 중 과제 평가가 포함되어있어, 과제를 진행하고 있다. 과제는 목요일 오후 4시까지 제출해야하고 최대한 수요일 저녁까지 완료를 목표로 잡고 있다.과제 내용은 Spring Boot 기반 JWT 인증/인가 및 AWS 배포이고, 몇 가지의 요구사항이 존재한다.요구사항은 아래와 같다.1. Spring Boot를 이용하여 JWT 인증/인가 로직과 API를 구현한다.2. Junit 기반의 테스트 코드를 작성한다.3. Swagger 로 API를 문서화 한다.4. 애플리케이션을 AWS EC2에 배포하고, 실제 환경에서 실행되도록 구성한다.요구사항대로 순차적으로 구현하면서 학습한 내용을 블로그에 정리해볼 계획이다. 기록하면서 진행하면 복습도 되고, 나중에 다시 볼 때 큰 도움이 될 것 같다.◆ 프로젝..

카테고리 없음 2025.05.12

TIL(2025-04-17)

Kafka 이벤트 발행 구현리뷰 서비스에서 Kafka 이벤트 발행 기능을 구현할 것이였고, 간병인 담당자와 이야기 끝에 리뷰가 생성/수정/삭제될 때간병인 서비스로 평점 갱신 요청 메시지를 보내는 것이었다.💡 주요 작업Kafka 의존성 및 설정 파일 추가CaregiverRatingMessage DTO 설계CaregiverRatingProducer 클래스 생성리뷰 작성/수정/삭제 시 Kafka 메시지 발행 로직 구현간병인 서비스에서는 이미 consumer가 구현되어 있어 연동 테스트만 진행주요 작업 정리. 🔁 연동 흐름[review-service] 리뷰 작성/수정/삭제 ↓Kafka 메시지 발행 (review-rating-update) ↓[caregiver-service] Kafka ..

카테고리 없음 2025.04.17

TIL(2025-04-16)

AI 연동 (Gemini API)오늘은 AI 서비스 도메인 구축을 처음 도전해봤다 그래서 주변에서 Google Gemini API를 많이 연동한다고 추천을 받아 진행하였다.목표는 리뷰 번역 기능을 처리하는 별도 AI 서비스 도메인을 만드는 것이었고, 이를 위해 다음과 같은 작업을 수행했다:💡 주요 작업ai-service 모듈 생성(4계층)Google Gemini API 연동 시도번역 기능 구현 (입력 텍스트 → 영어 번역)서비스-컨트롤러-클라이언트 구조 정립추후 다양한 AI 기능 확장을 고려한 유연한 구조 설계주요 작업으로는 이렇게 목표로 잡고 진행하였다.진행 순서Google AI Studio 가입 및 API Key 발급Google 계정으로 AI Studio에 로그인Gemini Pro API 키를 생성..

카테고리 없음 2025.04.17

TIL(2025-04-09)

🔧 오늘 한 일프로젝트 개발 중 DB 연결 오류 발생원인은 config 서버에서 DB 연결 설정이 빠져 있었던 것config 서버를 따로 두는 구조의 프로젝트를 처음 진행하다 보니, 오류 원인을 제대로 인지하지 못함기존에는 로컬에서 Docker를 실행한 DB에 직접 연결하는 방식만 사용했기 때문에, 이번처럼 config 서버를 통한 설정 전달 구조에 익숙하지 않았음❗ 문제 상황어플리케이션 실행 시 DB 연결 실패 (connection refused, could not connect to database 등 오류 발생)계속 Docker 컨테이너의 DB 문제라고 생각해서 Docker 설정이나 DB 포트를 여러 번 확인함하지만 실제 원인은 config 서버가 DB 설정 정보를 내려주지 않아서 발생한 문제였음..

카테고리 없음 2025.04.09

TIL(2025-04-08)

🏁 오늘 한 일새 프로젝트를 시작함 🎉기존 과제가 아닌, 처음부터 기획까지 모든 과정을 우리 팀이 직접 주도해서 진행하게 되었음아이디어 회의를 통해 노인을 위한 요양보호사 매칭 플랫폼을 주제로 선정🧠 프로젝트 주제고령화 사회에서 요양보호사의 수요가 늘어나는 현실에 착안노인과 요양보호사를 쉽게 연결해줄 수 있는 서비스를 만들기로 함사용자는 간단한 정보 입력을 통해 맞춤형 요양보호사를 추천받을 수 있고, 리뷰 등을 통해 신뢰도 높은 보호사를 선택할 수 있도록 기획👨‍💻 내가 맡은 역할나는 리뷰 기능과 AI 관련 기능을 맡기로 함→ 예: 리뷰 기반 추천 시스템, 자연어 기반 피드백 분석 등현재는 구체적인 기술 설계 전 단계지만, AI 활용 가능성을 탐색하고 싶음💡 오늘의 배움 & 느낀 점기획부터 개..

카테고리 없음 2025.04.09

TIl(2025-03-31)

📌 애플리케이션 로그 모니터링🔍 LokiLoki는 Grafana에서 만든 로그 수집 및 검색 시스템이다.Prometheus처럼 메트릭을 수집하듯, 로그를 라벨을 기반으로 수집하고 조회한다.특징:로그를 전체 인덱싱하지 않고 메타데이터만 인덱싱하여 성능과 저장 비용 절약할 수 있다.Grafana와 연동하여 로그 시각화 및 알람 설정 가능하다.🔧 logback-loki-appender애플리케이션에서 logback 사용 시, 로그를 Loki로 전송할 수 있는 Appender이다.로그를 JSON 형태로 포맷하여 HTTP로 Loki에 Push할 수 있다.활용 장점: 로그를 중앙에서 검색, 필터링이 가능해 운영 효율성 향상된다.  🔐 시큐어 코딩 보안 항목🔸 CORS (Cross-Origin Resource..

카테고리 없음 2025.03.31

TIL(2025-03-28)

📌 주제: Spring Boot Actuator + Prometheus + Grafana로 모니터링 환경 구성하기 1️⃣ Spring Boot Actuator란?Spring Boot에서 제공하는 운영 및 모니터링 기능을 쉽게 사용할 수 있게 해주는 라이브러리./actuator/health, /actuator/metrics 등 다양한 endpoint를 통해 시스템 상태 확인 가능.대표적인 endpoint:/actuator/health: 애플리케이션 상태/actuator/metrics: 메트릭 지표들 (메모리, CPU, GC 등)/actuator/httptrace, /actuator/env 등🔧 의존성 추가implementation 'org.springframework.boot:spring-boot-st..

카테고리 없음 2025.03.28