본문 바로가기

전체 글62

스프링 AOP를 이용한 권한체크 작업해보기 스프링 AOP(Aspect Oriented Programming)AOP 는 관점 지향 프로그래밍을 말합니다.간단하게 설명해보면 핵심적인 비즈니스 로직 외에 부가적인 공통 기능(흩어진 관심사)을 모듈화하는 것을 말합니다.스프링 AOP는 프록시를 통해 구현되며, CGLIB 프록시(클래스 기반) 또는 JDK 동적 프록시(인터페이스 기반, 리플렉션)를 활용합니다.주요 개념Aspect공통 관심 사항(흩어진 관심사)을 정의하는 모듈입니다.Advice 와 PointCut을 모듈화 한 것을 말합니다.Advice실질적인 부가 기능 로직을 당은 구현체를 말합니다.스프링에서는 다섯 가지 종류의 Advice를 제공합니다.@Before : 메소드 실행 전에 동작을 수행합니다.@After : 메서드 실행 후에 동작을 수행합니다... 2025. 3. 19.
kafka consumer deserialization 오류 spring 카프카에서는 직렬화, 역직렬화 시, 헤더에 클래스에 대한 정보를 담고 이를 활용해서 직렬화/역직렬화를 수행한다.그럼, 헤더를 사용하지 않도록 하면, 간단히 해결되는 문제 아닌가 해서, 아래 설정을 false 로 두어보았다.spring.json.add.type.headersspring: kafka: consumer: properties: spring.json.add.type.headers: false그러나, 다시 아래와 같은 오류가 발생한다.Caused by: java.lang.IllegalStateException: No type information in headers and no default type provided at org.springframework... 2025. 3. 11.
[TIL]JWT 만료 처리 방안 팁 오늘 유광열 튜터님과 개인 면담이 있었고, 면담 중 나온 주제 중 하나에 관해 흥미로운 팁을 하나 공유해주셨다.JWT 토큰 만료 처리에 관한 것이었는데 그 팁에 대한 기록을 남겨보고자 한다.jwt 토큰 탈취되었을 때, 만료 처리를 어떻게 할 수 있을까우선 토큰에 대한 정책부터 정의를 해보면 좋을 것이다. 크게 2가지 정책이 있을 수 있다.토큰을 단일로 유지하는 경우여러명의 동시 접속을 막아야 하는 경우여러 기기에서 토큰을 여러개 쓰는 경우카카오톡 처럼 피씨, 폰 둘 다 로그인이 가능해야 하는 경우이런 경우엔 블랙리스트/화이트리스트로 캐싱해야 할 데이터가 너무 많아지는 단점이 있다.혹은 디비에 저장한다면? 이건 더 별로다. 디비 리소스 낭비에 가깝다. 그리고 jwt 사용하는 이유가 없어진다.그럼 이 두가지.. 2025. 3. 4.
[TIL] 도메인 주도 설계(DDD) 개론 도메인 주도 설계(DDD)의 필요성도메인(해결하고자 하는 문제의 영역)을 중심으로 소프트웨어를 설계하는 것도메인을 명확히 구분하고 객체 간 관계를 올바르게 설계하기 위함바운디드 컨텍스트 이해하기큰 시스템을 여러 개의 작은 컨텍스트로 나누어 각 컨텍스트 내에서 특정한 비즈니스 규칙과 데이터 모델이 적용되는 것을 의미한다.각 컨텍스트는 독립적으로 설계되고 구현되며, 서로 다른 컨텍스트 간에는 인터페이스를 통해 상호작용한다.여러개의 애그리거트를 포함할 수 있다.애그리거트(루트) 이해하기Aggregate 는 도메인 모델에서 논리적으로 하나의 단위로 묶여야 하는 객체들의 집합Aggregate Root 는 애그리거트를 대표하는 객체애그리거트의 유일한 진입점(entry point) 역할을 하는 객체why?데이터의 일.. 2025. 2. 27.