[Spring] 롬복(Lombok) 라이브러리
·
Spring
롬복 ?롬복(Lombok) 라이브러리는 자바에서 보일러플레이트 코드를 줄여주기 위해 사용하는 유용한 도구다.이를 통해 코드가 간결해지고, 가독성도 높아진다.여기서 보일러 플레이트 코드란, 소프트웨어 개발에서 반복적으로 사용되는 일관된 패턴의 코드나 템플릿을 말한다.일반적으로 특정 작업을 수행할 때 필요하지만, 핵심 로직 자체에는 큰 영향을 미치지 않는 코드이다.자주 사용되는 코드로 인해 개발 초기 단계에서 시간과 노력을 절약할 수 있다. 롬복을 사용하면 클래스에 자주 사용하는 getter, setter, toString, equals, hashCode 메서드를 자동으로 생성할 수 있다. ★★ 예시로 @Getter, @Setter 어노테이션을 클래스나 필드에 붙이면 해당 필드에 대한 getter와 sett..
[Spring] 커스텀 어노테이션
·
Spring
팀 프로젝트의 Spring 이관 작업을 진행하면서, 지속적으로 사용해야 하는 Cookie 정보를 가져오기 위해 request와 response를 매번 받아와야 하는 방식에 대해 고민하게 되었다. 이 접근 방식이 적절한지 궁금해지던 중, 커스텀 어노테이션에 대한 개념을 알게 되었다. 기본적으로 제공되는 어노테이션 외에도, 필요에 따라 자신만의 커스텀 어노테이션을 정의할 수 있다.커스텀 어노테이션이란, 말 그대로 내가 어노테이션을 직접 만들어 사용할 수 있는 어노테이션을 말한다. 이번 포스팅에서는 커스텀 어노테이션을 만드는 방법과 그 사용 예시, 장단점에 대해 알아보겠다.커스텀 어노테이션 정의커스텀 어노테이션을 정의하려면, @interface 키워드를 사용하여 새로운 어노테이션 타입을 만들어야 한다. 아래는..
[Spring] Spring DI와 비즈니스 로직
·
Spring
오늘은 패키지 구조와 비즈니스 로직에 대해 정리해봤다.보통 패키지는 3계층으로 나누는데, 회사명, 어플리케이션명(팀이나 프로젝트), 그리고 제공하는 서비스명으로 구성한다.아래 사진이 그 예시이다.핵심은 비즈니스 로직, 즉 비즈니스 메서드인데, 이것은 CRUD 작업이나 핵심 로직을 담당한다.  이 로직을 수행하는 방식은 서비스 계층을 통해 DAO를 호출하는 것과 같다.예를 들어, XXX.do 요청이 들어오면, FC에서 XxxAction 객체를 생성하고, Action 객체는 execute() 메서드를 호출해 다음 페이지로 이동할 수 있는 AF를 반환한다.이 과정에서 실질적으로 서비스 내용은 DAO가 수행하는데, 서비스는 이를 핸들링하는 역할이다. 서비스는 마치 폰이라면, DAO는 그 폰의 기능을 실제로 수행..
[Spring] Spring에서의 객체 관리: XML 설정 파일 vs 어노테이션 기반 DI
·
Spring
컨테이너란?컨테이너는 개발자를 대신해서 객체를 생성하고 관리하는 역할을 한다.서블릿 컨테이너인 톰캣이 new를 호출하여 서블릿 객체를 만들어주는 것처럼, Spring 컨테이너도 개발자 대신 객체를 생성한다.아래 코드는 Spring 컨테이너를 구동하는 방식이다.AbstractApplicationContext factory = new GenericXmlApplicationContext("applicationContext.xml"); 이 코드에서 컨테이너는 applicationContext.xml 파일을 읽고, 그 안에 정의된 객체(bean)를 생성한다.다음과 같은 방식으로 객체를 정의할 수 있다. 아래는 applicationContext.xml의 일부 코드이다.  하지만 XML 설정 방식은 점점 복..