스프링 프레임워크 핵심 기술: 모듈화와 유연성의 실현
개요
소프트웨어 개발에서 '고결합과 저결합' 원칙은 유지보수성과 확장성을 극대화하는 설계 철학입니다. 스프링 프레임워크는 제어 역전(IoC)과 AOP(Aspect-Oriented Programming)를 통해 컴포넌트 간 의존성을 명확히 분리하는 기능을 제공합니다. 본문에서는 스프링이 어떻게 시스템 내부 요소를 분리하고, 실제 개발 환경에서 이를 적용하는 방법에 대해 다룹니다.
Io ...
6월 28일 18:45에 게시됨
【黑马点评-3초 특가 쿠폰】3. 비관적 락 synchronized로 한 사람 한 번 구매 보장 및 단일 서버 초과 주문 초기 로직
한 사람 한 번 구매 제약 조건 해결 방법
비관적 락 사용 이유
기존의 낙관적 락 방식은 데이터 변경 여부를 확인해야 하며, 현재는 존재 여부만 판단하는 상황이라 CAS 기법을 활용하기 어렵다. 버전 번호를 사용할 수도 있지만, 추가 필드가 필요하다. 따라서 간단한 구현을 위해 비관적 락을 적용한다.
비관적 락 적용 절차
MyBatis-Plus로 시작/종료 시간 검증
...
6월 26일 16:47에 게시됨
스프링의 핵심: 의존성 역전과 객체 관리
1. 스프링 개요
1.1 소개
스프링은 소프트웨어 개발 분야에 '봄'을 선사한 프레임워크로, 기존 기술들을 통합하여 사용을 쉽게 만든다.
2002년 초반, 인터페이스21 프레임워크를 기반으로 설계 시작
2004년 3월 24일, 공식 버전 1.0 발표
창립자: 로드 존슨 (시드니 대학교 음악학 박사, 컴퓨터 전공)
핵심 철학: 기존 기술을 보다 쉽게 활용할 수 있도록 하는 것
대표 ...
6월 25일 22:23에 게시됨
스프링 부트 어드민을 통한 애플리케이션 모니터링 및 메트릭 확장
스프링 부트 어드민을 활용한 시각화 모니터링 설정
스프링 부트의 Actuator 기능은 기본적으로 /health, /info 등의 엔드포인트를 제공하지만, 추가적인 운영 정보도 필요합니다. 예를 들어 현재 활성 세션 수, 동시 요청 수, 지연 시간 등 다양한 메트릭 데이터를 수집하고 시각화할 수 있어야 합니다. 이 글에서는 Spring Boot Admin을 사용해 애플리케이션 상태를 실시 ...
6월 24일 22:46에 게시됨
SpringBoot와 Redis를 활용한 중복 요청 방지 전략
대용량 트래픽 환경에서 동일한 요청이 여러 번 처리되는 문제는 시스템 안정성을 해치는 주요 원인 중 하나입니다. 이 글에서는 Redis를 활용해 효과적으로 중복 제출을 차단하는 방법을 살펴봅니다.
중복 요청이 발생하는 상황
사용자 경험 측면에서 중복 요청은 다음과 같은 경우에 발생합니다:
버튼을 빠르게 여러 번 클릭
네트워크 지연으로 인한 클라이언트 재시도 ...
6월 23일 16:41에 게시됨
스프링 부트에서의 AOP(관점 지향 프로그래밍) 및 포인트컷 표현식 활용
AOP 핵심 개념
관점(Aspect): 로깅이나 권한 검사와 같은 공통 관심사를 모듈화한 구성요소로, @Aspect 어노테이션을 통해 클래스를 관점으로 선언한다.
조인포인트(Join Point): 메서드 호출이나 예외 발생과 같은 실행 시점의 특정 위치이며, 스프링 AOP는 메서드 수준만 지원한다.
어드바이스(Advice): 조인포인트에서 수행되는 동작으로 다섯 가지 유형이 있다:
@Bef ...
6월 13일 19:54에 게시됨
자바 디자인 패턴
디자인 패턴의 핵심 원칙
열린/닫힌 원칙
기능 확장은 열려 있어야 하며, 기존 코드 수정은 피해야 합니다. 시스템 유지보수 시 기존 로직 변경 없이 새로운 기능을 추가할 수 있도록 설계하는 것이 중요합니다.
리스코프 대체 원칙
확장성 구현을 위한 핵심 방식으로, 상속 구조를 통해 기존 클래스를 재사용하는 방식입니다.
의존 역전 원칙
시스템의 유연성을 높이기 위 ...
6월 12일 17:59에 게시됨
JDK 기반 동적 프록시로 메서드 인터셉션 구현하기
Java는 런타임 시점에 프록시 객체를 동적으로 생성할 수 있는 강력한 리플렉션 기능을 제공하며, 그 중 java.lang.reflect.Proxy와 InvocationHandler를 활용한 JDK 동적 프록시는 인터페이스 기반의 프록시 구현에 널리 사용된다. 이 방식은 별도의 서드파티 라이브러리 없이 순수 JDK만으로 AOP와 유사한 기능을 구현할 수 있어, 로깅, 트랜잭션 제어, 접근 권한 검사 ...
6월 12일 00:45에 게시됨
Spring AOP 완벽 가이드: XML과 애너테이션 기반 구현
Spring AOP 개념과 핵심 용어
Spring AOP는 관점 지향 프로그래밍으로, 로깅, 트랜잭션, 보안 같은 공통 관심사를 비즈니스 로직에서 분리하여 모듈화와 재사용성을 높입니다. 주요 용어는 아래와 같습니다.
Join Point (연결점): 향상(advice)을 적용할 수 있는 지점, 보통 메서드 호출을 의미합니다.
Pointcut (포인트컷): 실제로 향상을 적용할 메서드입니다. 예를 들 ...
5월 23일 22:47에 게시됨
Spring Framework 의 객체 생성 및 DI, AOP 대리 패턴 완벽 가이드
Spring IOC를 통한 객체 생성 방식
Spring 컨테이너는 빈(Bean)을 생성할 때 기본적으로 기본 생성자(No-args constructor)를 사용합니다. 하지만 필요에 따라 파라미터가 있는 생성자를 통해 객체를 생성할 수도 있으며, 설정 방법은 다음과 같습니다.
인덱스 기반 주입: index 속성을 사용하여 생성자 파라미터 순서대로 값을 전달합니다.
타입 ...
5월 20일 10:41에 게시됨