❄️ 내일배움캠프 7기
[내배캠/Spring] 1주차(용어 모음집)
Genie_.
2024. 10. 31. 23:12
728x90
반응형
📝용어 모음집
JSON(JavaScript Object Notation)
- 사람이 읽을 수 있고 시스템에서 구문 분석할 수 있는 방식으로 데이터를 저장하고 교환하기 위한 텍스트 기반 형식이다.
- JSON은 웹 개발자가 서버와 웹 애플리케이션 간에 데이터를 전송하는 데 자주 사용하는 인기 있는 데이터 형식이다.
- JSON은 텍스트 기반이므로, 인간이 쉽게 읽고 컴퓨터가 쉽게 이해한다.
- JSON의 언어 독립적 특성은 다양한 프로그래밍 언어와 플랫폼에서 데이터를 교환하는 데 이상적인 형식이다.
JSON 예제
```
{
"name": "Jane Smith",
"age": 35,
"city": "San Francisco",
"phone": "014158889275",
"email": "janesmith@sample.com"
}
```
이 예에서 'name', 'age', 'city', 'phone' 및 'email'은 키이고 'Jane Smith', '35', 'San Francisco', '014158889275' 및 'janesmith@sample.com'은 해당 값이다.
Scale Up, Scale Out
서버의 성능 향상을 위한 두 가지 방법이다.
Scale Up은 수직적 확장
- 단일 서버의 하드웨어의 사용을 높인다.
- CPU, Memory 등의 스펙을 높인다.
Scale Out은 수평적 확장
- 같은 사양의 서버(인스턴스)를 여러 대 배치한다.
- 동시에 더 많은 사용자 요청을 처리할 수 있도록 만든다.
Stateful, Stateless
클라이언트와 서버간의 통신 상태(state) 유지 여부에 따라 나뉘는 특성이다.
Stateful(상태유지)
클라이언트의 상태를 유지한다.
- 상태를 유지하고 있던 서버가 종료되는 것과, 같은 서버가 유지되어야 한다는 문제가 있다.
- 서버는 다양한 이유로 동작하지 않을 수 있다(시스템 에러, 비지니스 로직 문제, 리소스 부족 문제 등)
- 요청 트래픽이 몰리게되면 상태를 유지하는것에 Resource가 많이 소모된다.
- 리소스가 버티지 못하면 서버가 종료되거나, 다음 요청에 대한 처리가 느려진다.
Stateless(무상태)
클라이언트의 상태를 유지하지 않는다.
- 장점
- 같은 서버를 유지할 필요가 없다.
- Scale Out 수평 확장성이 높다.
- 갑자기 요청량이 증가하여도 서버를 증설 하기 쉽다.
- 단점
- 클라이언트가 데이터를 추가적으로 전송해야 한다.
- 전송되는 데이터의 양이 많아진다.
- Stateless 방식의 한계점
- WebApplication을 만들때 서버의 확장성을 고려하여 최대한 Stateless하게 만들어야 한다.
- 하지만, 실제로는 로그인과 같은 상태를 유지해야하는 경우가 발생한다.
- Cookie, Session, Token 등을 활용하여 상태 유지를 최소화 시켜야 한다.
Connection, Connectionless
클라이언트와 서버 간의 연결(connection) 유지 여부에 따라 나뉘는 특성이다.
Connection(연결성)
- 장점
- 새로운 연결 과정을 거치지 않아도 된다.
- 그만큼 요청에 대한 응답 속도가 빨라진다.
- 단점
- 클라이언트가 지속적으로 요청을 보낼거라는 보장이 없다.
- 즉, 연결을 위한 자원이 낭비된다.
Connectionless(비연결성)
- 장점
- 서버 자원을 효율적으로 사용할 수 있다.
- 단점
- 요청이 추가적으로 오게되면 연결(3 way handshake)을 새로 해야한다.
- 요청에 대한 응답 시간이 증가한다.
- 웹 사이트의 HTML, CSS, JS, 이미지 등의 정적 자원 모두를 다시 다운로드 한다.
- 캐시, 브라우저 캐싱로 해결한다. 쉽게 말해 임시저장
- 현재는 HTTP 지속연결(Persistent Connections)로 문제를 해결한다.
- 요청이 추가적으로 오게되면 연결(3 way handshake)을 새로 해야한다.
728x90
반응형