클라이언트-서버 구조
게시글 작성과 게시글 검색을 예시로 클라이언트의 요청과 서버의 응답을 살펴보자
- 클라이언트가 서버에 저장해야 할 게시글 내용을 리퀘스트에 담아 서버에 전달한다
- 서버는 해당 내용을 정상적으로 저장했는지 혹은 저장 과정에서 에러가 발생했는지 리스폰스에 담아 보낸다.
- 클라이언트가 검색하고자 하는 내용을 리퀘스트에 담아 서버에 전송한다.
- 서버는 내용에 해당하는 데이터를 리스폰스오 담아 보낸다.
JSON
JSON 은 Javascript에서 사용하는 Object 라는 자효형과 같은 형태로 사용하는 data format 을 의미한다.
JSON 형식
1. NAME - VALUE 형식의 쌍
{
"name" : "value"
}
2. 배열과 중첩객체 구조를 지원한다
{
"members": [
{
"id" : 1,
"name" : "도소현",
"age" : 24
},
{
"id" : 2,
"name" : "박재연",
"age" : 27
}
]
}
Spring 에 대하여
Spring 은 Java 기반의 백엔드 혹은 풀스택 네트워크를 지원하는 프레임 워크이다
Spring 의 특징
spring 에는 네가지 특징이 있다.
IOC & DI, AOP, POJO, PSA 인데 그중 두가지를 살펴보겠다.
제어의 역행(IoC: Inversion of Control) & 의존성 주입(DI: Dependency Injection)
제어의 역전은 외부에서 관리하는 객체를 가져와 사용하는 것을 말한다
아래 예시를 보자
제어의 역전을 적용하면 이렇게 외부로부터 객체를 받아오는데, 객체를 관리하는 외부 주체를 "스프링 컨테이너" 라고 한다.
스프링은 객체를 관리하기 위해 제어의 역전을 사용하는데, 제어의 역전을 구현하기 위해 사용하는 방법이 DI 이다.
DI 는 의존성 주입이라는 뜻인데, 어떤 클래스가 다른 클래스에 의존한다는 뜻이다.
Autowired 어노테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입한다. 빈은 쉽게 말해 스프링 컨테이너에서 관리하는 객체를 말한다. 이렇게 스프링 컨테이너에 의해 런타임시에 의존성이 생기는 과정이 A 클래스에 컨테이너 B의 의존관계를 주입해주는 것과 같아 의존관계 주입이라고 부른다.
관점 지향 프로그래밍(AOP: Aspect Oriented Programming)
AOP 는 관점지향 프로그래밍을 말한다.
아래와 같이 계좌이체, 입출금, 이자계산 이라는 기능이 있고 세 기능은 로깅, 트랜잭션, 보안에 대한 처리를 해주어야 한다고 가정해보자. 비즈니스 로직을 제외하고, 공통적으로 가지는 부가 기능을 따로 분리하여 재사용 할 수 있도록 관리하는 것이 관점지향 프로그래밍이다.
'JAVA' 카테고리의 다른 글
@Slf4j (0) | 2024.04.29 |
---|---|
빈 스코프 (1) | 2024.04.28 |
@PostConstruct, @PreDestroy (0) | 2024.04.26 |
특정 타입의 스프링 빈이 모두 필요할 때 (0) | 2024.04.26 |
@Qulifier, @Primary (0) | 2024.04.26 |