서블릿(Servlet)은 자바 기반의 웹 애플리케이션에서 HTTP 요청을 처리하는 기본 기술이다.클라이언트의 요청을 받아 서버에서 처리한 후, 응답을 생성한다.웹 컨테이너(예: Tomcat, Jetty)에서 실행되며, 요청/응답 객체(HttpServletRequest,
소프트웨어 개발에서는 유지보수성과 확장성을 고려한 설계 원칙이 중요하다. 대표적인 원칙으로는 SOLID, KISS, YAGNI가 있으며, 각각 코드의 구조를 명확하게 하고 불필요한 복잡성을 줄이는 데 도움이 된다. SOLID 원칙 SOLID 원칙은 객체지향 프로그래밍
스프링(Spring) 프레임워크는 엔터프라이즈 애플리케이션 개발을 위한 강력한 프레임워크로, Layered Architecture(계층적 아키텍처)와 DI(Dependency Injection) Container를 핵심 개념으로 활용한다. 이 개념들은 SOLID 원칙과
객체 간의 의존성을 프레임워크가 자동으로 관리하여 코드의 결합도를 낮추고, 유지보수를 쉽게 만든다.@Autowired, @Inject, @Component, @Service 등의 어노테이션을 사용한다.핵심 비즈니스 로직과 부가적인 기능(로깅, 보안, 트랜잭션 등)을 분
IoC(제어의 역전)은 객체의 생성, 사용, 소멸과 같은 제어 권한을 개발자가 아닌 스프링 프레임워크가 관리하는 개념이다.전통적인 개발 방식에서는 객체를 직접 생성하고 관리해야 하지만, IoC를 적용하면 객체의 생성과 의존성 주입을 컨테이너(Spring Containe
스프링 프레임워크에서 Resource는 파일, URL, 클래스패스 등의 다양한 리소스를 추상화하는 인터페이스이다.일반적으로 애플리케이션에서 외부 파일, 설정 파일, XML, 프로퍼티 파일, 정적 리소스(CSS, JS, 이미지 등)를 다룰 때 사용된다.스프링은 org.s
AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)은 핵심 비즈니스 로직과 부가적인 기능(공통 관심사, Cross-Cutting Concern)을 분리하여 코드의 모듈성을 향상시키는 프로그래밍 기법이다.OOP(객체 지향 프로그래밍): 클래
Data Binding(데이터 바인딩)은 클라이언트에서 전달된 데이터를 컨트롤러의 매개변수나 객체에 자동으로 변환하여 주입하는 과정이다. 스프링 MVC에서는 @ModelAttribute, @RequestParam, @PathVariable, @RequestBody 등을
Spring Expression Language (SpEL)은 Spring 프레임워크에서 제공하는 표현식 언어로, 런타임에 객체 그래프를 조회하고 조작할 수 있도록 지원한다.SpEL은 다음과 같은 기능을 제공한다.객체 프로퍼티 조회 및 조작메서드 호출연산자 사용 (산술
스프링 MVC는 스프링 프레임워크의 웹 애플리케이션 개발을 위한 Model-View-Controller (MVC) 아키텍처 패턴을 구현한 모듈이다. 이 패턴은 애플리케이션을 세 개의 주요 구성 요소로 분리하여 개발의 효율성을 높이고 유지보수를 쉽게 만든다.MVC(Mod
스프링 MVC(Spring Model-View-Controller)에서 HTTP 요청과 응답은 웹 애플리케이션의 핵심 흐름 중 하나이다. 이 과정은 주로 다음과 같은 단계로 진행된다:사용자가 웹 브라우저에서 URL을 입력하거나 버튼을 클릭하면, HTTP 요청이 서버로
Spring MVC에서 필터(Filter)와 인터셉터(Interceptor)는 둘 다 요청과 응답의 흐름을 가로채어 처리하는 기능을 제공한다. 하지만 동작 시점과 적용 범위에서 차이가 있다.필터(Filter)는 서블릿(Servlet) 스펙에 정의된 기능으로, Dispa
스프링 MVC에서 예외 처리는 애플리케이션에서 발생할 수 있는 오류를 효과적으로 처리하고, 사용자에게 명확한 에러 메시지를 제공하거나, 로깅을 통해 문제를 진단할 수 있도록 돕는 중요한 기능이다. 스프링에서는 다양한 방식으로 예외 처리를 지원하며, 주로 다음과 같은 방
Lombok은 자바 개발에서 반복적인 코드를 줄여주는 라이브러리이다. 주로 Spring Framework와 함께 많이 사용되며, 어노테이션을 통해 자주 사용하는 코드(예: getter, setter, toString, equals, hashCode, 생성자 등)를 자동
HTTP는 HyperText Transfer Protocol의 약자로, 웹에서 클라이언트와 서버 간 데이터를 주고받는 프로토콜이다. 스프링 프레임워크는 HTTP 기반으로 동작하는 웹 애플리케이션을 쉽게 개발할 수 있도록 다양한 기능을 제공한다.HTTP는 요청(Reque
H2 Database(H2DB)는 경량 오픈 소스 관계형 데이터베이스(RDBMS)로, Java로 작성되었으며 임베디드 모드와 서버 모드를 모두 지원하는 데이터베이스이다. H2는 빠른 성능과 간편한 설정으로 인해 테스트 환경, 개발 환경, 경량 애플리케이션에서 많이 사용
트랜잭션(Transaction)이란 데이터베이스에서 논리적인 작업 단위를 묶어서 처리하는 개념이다.즉, 여러 개의 데이터 변경(SQL 문)이 하나의 트랜잭션 안에서 실행되며, 모든 작업이 성공하면 적용(Commit) 되고, 하나라도 실패하면 전체 취소(Rollback)

Mac M1 이상에서 Redis를 실행하는 방법과 Spring Boot에서 사용하는 방법을 정리하고자 한다. 처음에는 Embedded Redis를 사용하려 하였으나, 실행 오류가 발생하여 로컬 Redis 서버를 사용하도록 변경했다.처음에는 Embedded Redis를
JUnit은 Java에서 가장 널리 사용되는 단위 테스트 프레임워크이다. 이를 통해 개발자는 코드의 개별 단위를 독립적으로 테스트할 수 있으며, 자동화된 테스트를 쉽게 작성하고 실행할 수 있다.어노테이션 기반 테스트: @Test, @BeforeEach, @AfterEa
Account 프로젝트를 리팩터링하는 과정에서 domain 패키지에 BaseEntity를 만들었고, 상속 관계에서 Builder가 충돌하는 문제가 발생했다.이것을 해결하기 위하여 @SuperBuilder를 사용했는데, 오늘은 Builder와 SuperBuilder의 차