[Spring] AOP
·
Spring
AOP?AOP는 Aspect-Oriented Programming으로, 관점지향 프로그래밍이라고 부른다.AOP는 비즈니스 로직과는 별개의 공통 기능(횡단 관심사, cross-cutting concerns)을 분리하여 코드의 중복을 줄이고, 모듈화를 통해 코드의 유지보수를 용이하게 하는 프로그래밍 기법을 말한다.AOP의 주요 개념Aspect (관점)한 문장으로 정리하면 여러 클래스에 걸쳐 있는 관심사의 모듈화이다.트랜잭션 관리가  Java에서 횡단 관심사의 좋은 예이다.Spring AOP에서 Aspect는  스키마 기반 접근 방식  또는  @Aspect를 사용하여 구현된다. 사용 예시@Slf4j@Aspect@Component@Order(1) // @커스텀 여러개 쓸 경우 진행 순서public class L..
[Spring] 롬복(Lombok) 라이브러리
·
Spring
롬복 ?롬복(Lombok) 라이브러리는 자바에서 보일러플레이트 코드를 줄여주기 위해 사용하는 유용한 도구다.이를 통해 코드가 간결해지고, 가독성도 높아진다.여기서 보일러 플레이트 코드란, 소프트웨어 개발에서 반복적으로 사용되는 일관된 패턴의 코드나 템플릿을 말한다.일반적으로 특정 작업을 수행할 때 필요하지만, 핵심 로직 자체에는 큰 영향을 미치지 않는 코드이다.자주 사용되는 코드로 인해 개발 초기 단계에서 시간과 노력을 절약할 수 있다. 롬복을 사용하면 클래스에 자주 사용하는 getter, setter, toString, equals, hashCode 메서드를 자동으로 생성할 수 있다. ★★ 예시로 @Getter, @Setter 어노테이션을 클래스나 필드에 붙이면 해당 필드에 대한 getter와 sett..
[Spring] 횡단 로직 - AOP를 활용한 로그인 체크 기능 구현하기
·
Spring
횡단 로직 ? 횡단 로직은 애플리케이션의 여러 부분에 공통적으로 적용되는 기능을 말한다.로깅, 보안, 트랜잭션 관리 등이 이에 해당한다.횡단 로직을 효과적으로 관리하기 위해 AOP(Aspect-Oriented Programming)를 사용한다.AOP를 통해 코드 중복을 줄이고 관심사를 분리할 수 있다. 이번 글에서는 AOP를 이용하여 로그인 체크 로직을 구현하는 방법을 정리해보려고 한다.아래 코드는 지금 현재 진행중인 팀 프로젝트 코드의 일부이다. 기본 구성@LoginCheckpackage com.coma.app.view.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.la..
[Spring] 쿠키 활용하기 - 자동 로그인
·
Spring
쿠키란?쿠키(Cookie)는 클라이언트(브라우저)에 저장되는 작은 데이터다.서버는 HTTP 응답에 쿠키를 포함하여 클라이언트에 전달하고, 클라이언트는 이후 요청 시 해당 쿠키를 다시 서버로 보낸다. 이를 통해 서버는 클라이언트의 상태나 정보를 추적할 수 있다.  쿠키는 로그인 유지, 사용자 정보 저장 등의 기능에 주로 사용된다. 그중 로그인 유지하는 코드에 대해 중점적으로 다뤄볼 예정이다.쿠키의 주요 메서드와 속성 getName(): 쿠키의 이름을 가져옴getValue(): 쿠키에 저장된 값을 가져옴setMaxAge(int seconds): 쿠키의 유효 기간을 설정getMaxAge(): 쿠키의 만료 시간을 확인setValue(String value): 쿠키의 값을 설정Spring AOP 와 쿠키를 활용한..
[Spring] Multipart & 파일 업로드
·
Spring
MultipartFile스프링에서 파일 업로드와 관련된 기능은 MultipartFile 객체를 사용한다.  이 객체를 통해 클라이언트가 업로드한 파일을 받아 서버에 저장할 수 있다. 서버에 저장된 파일 경로는 나중에 조회하거나 다운로드할 때 활용하면 된다.import org.springframework.web.multipart.MultipartFile;MultipartResolver 설정스프링에서 multipart 요청을 처리하기 위해서는 MultipartResolver 빈이 설정 파일에 등록되어 있어야 한다.  MultipartResolver는 클라이언트에서 전송된 multipart/form-data를 해석해 파일 데이터를 처리할 수 있도록 도와주는 스프링의 컴포넌트이다. 이를 통해 파일 업로드를 더 ..
[Spring] 커스텀 어노테이션
·
Spring
팀 프로젝트의 Spring 이관 작업을 진행하면서, 지속적으로 사용해야 하는 Cookie 정보를 가져오기 위해 request와 response를 매번 받아와야 하는 방식에 대해 고민하게 되었다. 이 접근 방식이 적절한지 궁금해지던 중, 커스텀 어노테이션에 대한 개념을 알게 되었다. 기본적으로 제공되는 어노테이션 외에도, 필요에 따라 자신만의 커스텀 어노테이션을 정의할 수 있다.커스텀 어노테이션이란, 말 그대로 내가 어노테이션을 직접 만들어 사용할 수 있는 어노테이션을 말한다. 이번 포스팅에서는 커스텀 어노테이션을 만드는 방법과 그 사용 예시, 장단점에 대해 알아보겠다.커스텀 어노테이션 정의커스텀 어노테이션을 정의하려면, @interface 키워드를 사용하여 새로운 어노테이션 타입을 만들어야 한다. 아래는..
[Spring] AOP와 어노테이션
·
Spring
AOP란?AOP란 Aspect-Oriented Programming의 약자로, 횡단 관심사를 모듈화하여 코드의 가독성을 높이고, 유지보수를 용이하게 하는 프로그래밍 기법이다. 주로 로깅, 보안, 트랜잭션 관리와 같은 기능에 사용된다. AOP와 어노테이션@Aspect@Aspect 어노테이션은 AOP의 핵심 요소인 Aspect를 정의한다. Aspect는 공통 관심사를 포함하는 모듈로, 메서드 실행 전후에 특정 동작을 정의할 수 있다.@Aspectpublic class MyAspect { // Advice 메서드 정의}@Pointcut@Pointcut 어노테이션은 특정 Join Point를 정의한다.Join Point는 Advice가 적용될 수 있는 지점을 의미하며, 포인트컷 표현식을 통해 정의할 수 있..
[Spring] AOP 관점지향 프로그래밍
·
Spring
AOP를 알아보기 전에 Spring에 대해 다시 복기해보자.스프링 프레임워크란?스프링 프레임워크는 IoC(제어의 역전)와 AOP(관점 지향 프로그래밍)를 지원하는 경량 프레임워크다.스프링은 POJO(Plain Old Java Object) 기반으로 설계되어 있어서 복잡한 설정 없이 간단하게 개발할 수 있게 해준다.개발자들이 일정한 구조, 틀, 규격을 따르면서 개발하기 때문에 개발 역량이 상향평준화되고, 유지보수가 용이해진다.IoC: 제어의 역전원래 객체를 생성하고 관리하는 작업은 개발자가 new 키워드를 통해 직접 수행했지만, IoC를 통해 이 작업을 컨테이너가 대신 맡는다. 이를 통해 개발자는 비즈니스 로직에만 집중할 수 있고, 결합도를 낮출 수 있다. 스프링에서는 다양한 객체들(DS, HM, VR, ..