Spring

· Spring
안녕하세요, 오늘은 토비의 클린 스프링 강의를 들으면서알게 된 정말 유용한 Spring Assert 기능을 공유하려고 해요.https://inf.run/3TCuG 토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1| 토비 - 인프런 강의현재 평점 5점 수강생 1380명인 강의를 만나보세요.| 요약: 가상의 스타트업 개발팀이 단계적으로 클린 코드와 스프링 개발 원칙을 따라서 빠르고, 안정적이면서 유연하고, 유지보수하기 좋게 개www.inflearn.com [본 게시물은 파트너스 활동의 일환으로 소정의 수수료를 받을 수 있습니다.] 혹시 도메인 객체에서 validation 로직 때문에 코드가 지저분해진 경험 있으신가요?if (word == null) { throw new Ille..
· Spring
이 글은 인프런 OAuth2 강의를 수강하면서 실습한 내용을 바탕으로 작성되었습니다. 실제 구현 과정에서 느꼈던 궁금증과 개선 과정을 정리해보았어요! [본 게시물은 파트너스 활동의 일환으로 소정의 수수료를 받을 수 있습니다.] 🤔 문제의 시작 Spring Security, OAuth2Client 를 활용해서 카카오 소셜 로그인을 구현하던 중,각 OAuth2 제공자마다 별도의 Response 클래스를 만들고 있었다. // 기존 방식public class NaverResponse implements OAuth2Response { private final Map attribute; // ... 구현}public class GoogleResponse implements OAuth2Response ..
· Spring
이 글은 인프런 OAuth2 강의를 수강하면서 실습한 내용을 바탕으로 작성되었습니다. 실제 구현 과정에서 느꼈던 궁금증을 정리해보았어요! [본 게시물은 파트너스 활동의 일환으로 소정의 수수료를 받을 수 있습니다.] Spring Boot에서 카카오 소셜 로그인을 구현하면서 정말 신기한 경험을 했다.단순히 http://localhost:8080/oauth2/authorization/kakao라는 URL에 접속했을 뿐인데,마법처럼 카카오 로그인 페이지로 리다이렉트되었다.도대체 Spring Security OAuth2 내부에서는 무슨 일이 일어나고 있는 걸까? 🤔 의문의 시작 처음에는 이해가 안 됐다.나는 /oauth2/authorization/kakao라는 컨트롤러를 만든 적도 없고,카카오 API를 직접 호..
· Spring
안녕하세요, 오늘은 토비의 클린 스프링 강의를 들으면서 알게 된 정말 유용한 내용을 공유하려고 해요.https://inf.run/3TCuG 토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1 강의 | 토비 - 인프런토비 | 가상의 스타트업 개발팀이 단계적으로 클린 코드와 스프링 개발 원칙을 따라서 빠르고, 안정적이면서 유연하고, 유지보수하기 좋게 개발하는 과정을 실제 업무 진행과 유사한 방식으로www.inflearn.com[본 게시물은 파트너스 활동의 일환으로 소정의 수수료를 받을 수 있습니다.] 혹시 프로덕션에서 NullPointerException 때문에 밤새 디버깅해본 경험 있으신가요?저는 정말 많았는데,이제는 JSR-305와 Spring의 Null Safety 기능으로 이런 ..
1. 문제 상황 어린이용 chatGPT를 만드는 프로젝트를 진행중인데,,,문제가 생겼다.LLM이 이전 대화의 맥락을 기억하지 못하는 것이었다.보통 chatGPT를 사용하면 기본적으로 이전 대화 내역을 기억해서 적절한 응답을 내려준다.근데, API 형태로 chatGPT를 사용하면 이전 대화 내역을 기억하지 못하는 문제를 발견했다.개발 환경은 Spring AI 1.0.0-M6, Java 17, gpt-4o-mini 이다. 2. 문제 상황 확인"고양이는 왜 그루밍을 할까?"에 대한 질문을 던졌을 때 적절한 응답을 받았다. 내가 AI에게 요청한 것은 답변을 받고 꼬리 질문을 9개를 받는 것이었다. 꼬리 질문 중에 "그루밍을 하는 다른 동물은 없을까?" 를 요청하고 답변을 받아 보았다. 이전에 고양이에 대해서 이..
· Spring
1. 개요 Spring AOP(Aspect-Oriented Programming)를 활용하면, 권한 체크 로직을 모든 컨트롤러 메서드마다 반복해서 작성할 필요 없이 관점 지향 프로그래밍(Aspect-Oriented Programming) 방식으로 깔끔하게 분리할 수 있다.Spring AOP를 이용하여 API 호출 시 특정 역할(Role)만 접근 가능하도록 제한하는 방법을 정리하겠다. 2. 구현2 - 1. @RequireRole 어노테이션 생성 먼저, 권한 체크를 적용할 메서드에 사용할 커스텀 어노테이션을 생성한다.package com.example.infra.aspect;import java.lang.annotation.ElementType;import java.lang.annotation.Retenti..
· Spring
1. 문제 상황 Kafka topic에 이벤트를 발행하기 위해서는 java 객체를 JSON 으로 직렬화하는 과정이 필요하다.이 때 변환하려는 이벤트에 LocalDateTime 타입의 필드가 있었고, 직렬화하는 과정에서 문제가 발생했다. ReservationCreatedEventpublic record ReservationCreatedEvent( UUID reservationId, Long userId, UUID restaurantScheduleId, LocalDateTime createdAt, // LocalDateTime LocalDateTime expiredAt // LocalDateTime) createdAt, expiredAt 이라는..
· Spring
1. 문제 상황개발 환경에서는 Config Server 에서 데이터 소스를 가져다가 사용하고운영 환경에서는 github secrets, variales 에서 환경변수를 주입해서 EC2에 배포를 한다. 개발 환경의 yml을 보면,application-dev.ymlspring: application: name: auth-service config: import: "configserver:" cloud: config: discovery: service-id: config-service enabled: trueeureka: client: serviceUrl: defaultZone: http://localhost:19000/eureka/위 처..
Griotold
'Spring' 카테고리의 글 목록