섹션 2: 스프링 웹 개발 기초 (웹 개발 방식 3가지)
1. 정적 컨텐츠
2. MVC와 템플릿 엔진
3. API
섹션 3: 회원 관리 예제 - 백엔드 개발
-
일반적인 웹 애플리케이션 계층 구조

- 컨트롤러: 웹 MVC의 컨트롤러 역할 (클라이언트의 요청을 받아 서비스 계층을 호출하거나 데이터를 조회하여 클라이언트에게 응답보냄.)
- 서비스: 핵심 비즈니스 로직 구현
- 리포지토리: DB에 접근, 도메인 객체를 DB에 저장하고 관리
- 도메인: 비즈니스 도메인 객체(회원, 주문 쿠폰 등) 주로 DB에 저장하고 관리됨.
섹션 4: 스프링 빈과 의존관계
- 스프링 빈:
- 스프링 컨테이너가 생성, 관리 및 제공하는 객체
- 컨테이너가 스프링 빈 등록할 때 기본으로 싱글톤으로 등록함.
- 스프링 빈을 등록하는 2가지 방법
- 컴포넌트 스캔과 자동 의존관계 설정
- 주요 어노테이션: @Component, @Autowired
- 자바 코드로 직접 스프링 빈 등록
- 주요 어노테이션: @Configuration, @Bean
- 정형화되지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 설정을 통해 스프링 빈 등록
- 실무에서는 주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔 사용
- 스프링은 어노테이션을 인식하고 동작 수행 (컴포넌트 스캔)
- @Controller, @Service, @Repository:
- 어노테이션이 있으면 스프링 컨테이너가 빈 등록해서 관리함.
- 위와 같은 애노테이션 안에 @Component라는 어노테이션 들어있음.
- application 내 패키지만 인식됨.
- @Autowired: 의존 관계 주입해주는 역할
- DI(Dependency Injection) 방법
- 필드 주입
- setter 주입
- 생성자 주입
- 의존관계가 실행중에 동적으로 변하는 경우 거의 없기에 생성자 주입 권장
섹션 5: 회원 관리 예제 - 웹 MVC 개발