본문 바로가기
반응형

백엔드/스프링34

[Spring] 2주차: 스프링 부트와 AOP 입문 2주차: 스프링 부트와 AOP 입문목표: 스프링 부트(Spring Boot)가 어떻게 복잡한 스프링 설정을 자동화하고 개발 생산성을 높여주는지 이해합니다. 또한, 애플리케이션의 공통 관심사를 효과적으로 분리할 수 있는 AOP(관점 지향 프로그래밍)의 기본 개념을 학습하고 실제 코드에 적용해 봅니다.1. 스프링 개발의 혁신: 스프링 부트 (Spring Boot)1.1 스프링 부트 이전의 문제점 (XML 지옥)1주차에서 우리는 스프링의 핵심인 IoC/DI를 배웠습니다. 하지만 전통적인 스프링 프레임워크는 다음과 같은 불편함이 있었습니다.복잡한 설정: DispatcherServlet, ViewResolver, DataSource 등 웹 애플리케이션을 하나 실행하기 위해 수많은 빈(Bean)을 XML 파일이나 .. 2025. 9. 19.
[Spring] 1주차: 스프링의 핵심 - IoC/DI와 스프링 컨테이너 1주차: 스프링의 핵심 - IoC/DI와 스프링 컨테이너목표: 스프링 프레임워크의 가장 근본적인 설계 사상인 IoC(제어의 역전)와 DI(의존성 주입)를 완벽하게 이해합니다. 개발자가 직접 객체를 생성하고 연결하던 방식에서 벗어나, 왜 스프링에게 그 제어권을 넘겨야 하는지 체감하고, 스프링 컨테이너와 빈(Bean)의 개념을 익힙니다.1. 프로그래밍의 패러다임 전환: 제어의 역전 (IoC)1.1 기존 방식의 문제점스프링이 없던 시절, 우리는 보통 다음과 같이 코드를 작성했습니다.// OrderService.java (주문 서비스)public class OrderService { // 주문을 처리하려면 어떤 데이터베이스에 저장할지 알아야 합니다. // OrderService가 직접 `MySqlOr.. 2025. 9. 19.
[Spring] 10장: 다음 단계를 향하여 10장: 다음 단계를 향하여지금까지 Spring Boot의 핵심 기능들을 학습했습니다. 이 마지막 챕터에서는 실무에서 마주할 수 있는 더 넓은 주제들을 소개하며, 앞으로 어떤 방향으로 학습을 이어 나가야 할지에 대한 지도를 제공합니다.1. AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)개념: 로깅, 트랜잭션, 보안 등 여러 비즈니스 로직에 공통으로 흩어져 있는 부가 기능(cross-cutting concerns)을 하나의 모듈로 분리하여 관리하는 프로그래밍 패러다임입니다. 코드의 중복을 줄이고 핵심 비즈니스 로직을 더 깔끔하게 유지할 수 있습니다.주요 용어: Aspect, Advice, Pointcut, Join PointSpring AOP: Spring은 프록시(Pr.. 2025. 9. 18.
[Spring] 9장: Docker를 이용한 컨테이너화 9장: Docker를 이용한 컨테이너화"제 컴퓨터에서는 잘 되는데, 서버에서는 안 돼요." 라는 말을 없애주는 기술, 컨테이너에 대해 배웁니다. 내가 만든 Spring Boot 애플리케이션을 어떤 환경에서든 동일하게 실행할 수 있도록 Docker 컨테이너 이미지로 만드는 방법을 학습합니다.1. 핵심 개념컨테이너(Container): 애플리케이션과 그 실행에 필요한 모든 것(라이브러리, 종속성, 설정 등)을 패키징한 독립적인 실행 단위입니다. 가상 머신(VM)보다 훨씬 가볍고 빠릅니다.Docker: 컨테이너 기술을 쉽게 사용할 수 있도록 해주는 오픈소스 플랫폼입니다.이미지(Image): 컨테이너를 생성하기 위한 읽기 전용 템플릿입니다. 애플리케이션과 실행 환경이 코드 형태로 기록되어 있습니다.Dockerf.. 2025. 9. 18.
[Spring] 8장: Spring과 WebSocket 8장: Spring과 WebSocketdongjinWeb2에서 경험했던 WebSocket을 더 깊이 이해합니다. 실시간 채팅, 알림 등 양방향 통신이 필요한 기능을 구현하는 방법을 복습하고, Stomp 프로토콜을 사용하여 더 구조화된 메시징을 구현해봅니다.1. 핵심 개념WebSocket: 단일 TCP 연결을 통해 서버와 클라이언트 간의 전이중(full-duplex) 통신을 제공하는 프로토콜입니다. HTTP와 달리 연결이 계속 유지됩니다.TextWebSocketHandler: 텍스트 기반의 WebSocket 메시지를 처리하기 위한 Spring의 기본 핸들러입니다.WebSocketSession: WebSocket 연결이 수립된 클라이언트 하나하나를 나타내는 객체입니다.STOMP (Simple Text Ori.. 2025. 9. 18.
[Spring] 7장: Spring에서의 테스트 7장: Spring에서의 테스트내가 만든 코드가 올바르게 동작하는지 검증하는 것은 매우 중요합니다. 버그를 사전에 발견하고, 코드 변경에 대한 안정성을 확보하며, 더 나은 설계를 유도하는 테스트 코드 작성법을 배웁니다.1. 핵심 개념단위 테스트 (Unit Test): 애플리케이션의 가장 작은 단위(메소드, 클래스 등)가 의도대로 동작하는지 검증하는 테스트입니다. 다른 부분과 독립적으로 진행되어야 합니다.통합 테스트 (Integration Test): 여러 컴포넌트(Controller, Service, Repository 등)를 연동하여 전체적인 기능이 정상적으로 동작하는지 검증하는 테스트입니다.JUnit5: 자바 진영의 대표적인 테스트 프레임워크입니다.Mockito: 실제 객체 대신 가짜 객체(Mock).. 2025. 9. 18.
반응형