본문 바로가기
백엔드/스프링

[Spring] 10장: 다음 단계를 향하여

by AI읽어주는남자 2025. 9. 18.
반응형

10장: 다음 단계를 향하여

지금까지 Spring Boot의 핵심 기능들을 학습했습니다. 이 마지막 챕터에서는 실무에서 마주할 수 있는 더 넓은 주제들을 소개하며, 앞으로 어떤 방향으로 학습을 이어 나가야 할지에 대한 지도를 제공합니다.


1. AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)

  • 개념: 로깅, 트랜잭션, 보안 등 여러 비즈니스 로직에 공통으로 흩어져 있는 부가 기능(cross-cutting concerns)을 하나의 모듈로 분리하여 관리하는 프로그래밍 패러다임입니다. 코드의 중복을 줄이고 핵심 비즈니스 로직을 더 깔끔하게 유지할 수 있습니다.
  • 주요 용어: Aspect, Advice, Pointcut, Join Point
  • Spring AOP: Spring은 프록시(Proxy) 기반의 AOP를 지원합니다. @Aspect, @Around, @Before, @After 등의 어노테이션을 사용하여 AOP를 구현할 수 있습니다.

2. 메시지 큐 (Message Queue)

  • 개념: 대용량 트래픽이나 시간이 오래 걸리는 작업을 안정적으로 처리하기 위한 비동기 메시징 시스템입니다. 요청을 즉시 처리하는 대신, '메시지'라는 형태로 큐(Queue)에 저장해두고, 별도의 컨슈머(Consumer)가 큐에서 메시지를 가져와 처리하는 방식입니다. 이를 통해 시스템 간의 결합도를 낮추고, 특정 서비스의 장애가 전체 시스템으로 퍼지는 것을 막을 수 있습니다.
  • 주요 기술: Kafka, RabbitMQ
  • Spring에서의 활용: Spring AMQP, Spring for Kafka 등의 프로젝트를 통해 메시지 큐를 쉽게 연동할 수 있습니다.

3. 클라우드와 MSA (Microservices Architecture)

  • 개념: 현대적인 웹 서비스는 대부분 클라우드 환경(AWS, GCP, Azure 등) 위에 배포되고 운영됩니다. 또한, 거대한 하나의 애플리케이션을 만드는 대신, 작고 독립적인 서비스 단위로 기능을 나누어 개발하는 마이크로서비스 아키텍처(MSA)가 널리 사용되고 있습니다.
  • 주요 기술:
    • 클라우드: EC2(가상 서버), S3(스토리지), RDS(데이터베이스), Lambda(서버리스) 등
    • MSA: Spring Cloud, Service Discovery, API Gateway, Circuit Breaker 등

4. 직접 도전해볼 문제

  1. AOP 적용하기: 특정 컨트롤러의 모든 메소드가 실행되는 데 걸리는 시간을 측정하여 로그로 남기는 AOP Aspect를 작성해보세요. @Around 어노테이션을 사용하면 메소드 실행 전후로 로직을 추가할 수 있습니다.

  2. 비동기 처리 맛보기: @Async 어노테이션을 사용하여 이메일 발송이나 푸시 알림 전송과 같이 시간이 오래 걸릴 수 있는 작업을 비동기적으로 처리하도록 Service 메소드를 수정해보세요. (@EnableAsync 설정이 필요합니다.)

  3. 나만의 프로젝트 시작하기: 지금까지 배운 모든 기술을 종합하여 자신만의 토이 프로젝트를 기획하고 만들어보세요. (예: 간단한 쇼핑몰, 예약 시스템, 소셜 미디어 등) 직접 부딪히며 문제를 해결하는 것이 최고의 학습 방법입니다.

반응형