❄️ 내일배움캠프 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)로 문제를 해결한다.

1. https://www.oracle.com/kr/database/what-is-json/

728x90
반응형