# 스프링(Spring)

송진우·2025년 6월 23일

개념 정리

목록 보기
4/4
post-thumbnail

1. 스프링이란?

  • 정확한 이름은 Spring Framework
  • 자바 기반의 오픈소스 프레임워크로, 대규모 시스템 개발에 최적화되어 있음

핵심 개념 3가지

개념설명
IoC (Inversion of Control)객체의 생성·관리를 개발자가 아닌 스프링이 담당
DI (Dependency Injection)필요한 객체를 직접 생성하지 않고 외부에서 주입받음
AOP (Aspect Oriented Programming)공통 기능(로깅, 트랜잭션 등)을 핵심 로직에서 분리하여 모듈화

이 세 가지 개념을 통해 유연한 구조와 테스트 가능한 애플리케이션을 만들 수 있음.


##2. 애플리케이션 구조 간단 이해

사용자 입력 (Input)
      ↓
[ Controller ]
      ↓
[ Service]
      ↓
[ Repository / DB ]
      ↓
응답 데이터 (Output)

3. MVC 패턴: 스프링 구조의 핵심

스프링은 웹 개발 시 MVC 패턴(Model-View-Controller) 을 기반으로 동작.

구성요소역할예시
Model데이터 처리 영역 (DB, DAO, DTO)검색 키워드로 상품 목록 조회
View화면 구성 영역 (HTML, Thymeleaf, React 등)상품 리스트 화면
Controller사용자 요청 처리 및 흐름 제어사용자의 검색 요청 처리

MVC 흐름 요약

[ 사용자의 요청 ]
       ↓
Controller (요청 수신, 처리 흐름 제어)
       ↓
Model (DB 조회/처리)
       ↓
View (결과 출력)

4. REST API란?

API란?

  • 다른 프로그램(시스템)이 특정 기능을 사용할 수 있도록 제공되는 인터페이스
  • 내부 로직을 몰라도 정해진 규칙만 지키면 기능 사용 가능

EX: 게임에서 '이동' 버튼을 누르면 캐릭터가 움직이는 것도 하나의 API

REST란?

  • REpresentational State Transfer
  • 자원을 URI로 표현하고, HTTP Method로 상태를 조작하는 방식

RESTful API란?

동작HTTP Method
데이터 조회GET
데이터 생성POST
데이터 수정PUT / PATCH
데이터 삭제DELETE

5. HTTP Method & Stateless

HTTP 메서드 요약

Method설명
GET리소스 조회
POST리소스 생성
PUT리소스 전체 수정
PATCH리소스 일부 수정
DELETE리소스 삭제

Stateless란?

  • 서버가 클라이언트의 상태를 기억하지 않음
  • 모든 요청은 독립적이며 필요한 정보는 항상 함께 전달
  • → 확장성, 안정성에 유리함

6. 스프링 주요 어노테이션 요약

어노테이션설명
@SpringBootApplication스프링 부트 진입점, 자동 설정 포함
@RestControllerJSON 응답용 컨트롤러
@Controller뷰 반환용 컨트롤러
@Service비즈니스 로직 담당 클래스
@RepositoryDB 접근 클래스
@Autowired의존성 주입(DI)
@GetMapping, @PostMappingURL + 메서드 매핑
@RequestBody요청 JSON을 자바 객체로 바인딩
@ResponseBody자바 객체를 JSON으로 응답
@PathVariable, @RequestParamURL 경로/쿼리 파라미터 추출

0개의 댓글