snake_case
_ 언더바로 이어준다.camelCase
PascalCase
kebab-case
- 대시로 이어준다.Java의 명명법

💡 과거 웹 초기 시절부터 사용된 XML 은 헤더와 태그 등의 여러 요소로 가독성이 떨어지고, 불필요한 용량을 잡아먹는다는 단점을 항상 지적받았다. 이에 대응해 간결하고 통일된 양식으로 각광을 받고 있는 것이 JSON이다.
JSON은 사람, 기계 모두 이해하기 쉬우며 용량이 작다.
XML을 대체해서 데이터 전송 등에 많이 사용한다.
마치 전세계 공통어로 영어를 사용하는것처럼 Web의 세계에서는 JSON(JavaScript Object Notation)을 공통어로 사용한다.
그림예시

클라이언트 to 서버의 통신에 JSON을 사용한다.
아주 작은 단위로 서비스를 잘게 나누어 운영하는 아키텍처

JSON(제이슨)은 데이터를 저장하고 교환하는 형식인데, 쉽게 말해 "정보를 깔끔하게 정리한 목록"이라고 생각하면 돼.
예시로 쉽게 설명할게!
가정: 너가 친구에게 나의 정보(이름, 나이, 직업 등)를 보내야 한다고 할 때, JSON은 이렇게 정보를 보내는 방법이야.
json
{
"name": "홍길동",
"age": 28,
"job": "개발자"
}
JSON 구조
{
"user": [
{
"first_name": "wonuk",
"last_name": "Hwang",
"age": 100,
"phone_agree": false,
"hobby": ["Java", "Spring"]
},
{
"firstName": "sparta",
"lastName": "Team",
"age": 200,
"phone_agree": true,
"hobby": ["React", "Spring", "Node"]
},
]
}
snake_case, camelCase 모두 사용이 가능하다.key-value 형태로 구성되어 있다.null, number, string, array, object, boolean 형태의 데이터를 사용할 수 있다.Scale Up, Scale Out
서버의 성능 향상을 위한 두 가지 방법이다.
Scale Up
수직적 확장

단일 서버의 하드웨어의 사용을 높인다. (CPU, Memory 등의 스펙을 높인다)
요청에 대한 처리를 더욱 빠르게 할 수 있도록 만든다.
Scale Out
- 수평적 확장

같은 사양의 서버(인스턴스)를 여러 대 배치한다.
동시에 더 많은 사용자 요청을 처리할 수 있도록 만든다.
클라이언트의 상태를 유지한다.

상담원은 수강생의 요청들을 기억(상태 유지)하여 다음 질문들에 대한 처리가 가능하다.
같은 서버가 유지되어야 한다.
상태를 유지하고 있던 서버가 종료된다면?


어떻게 서로 다른 상담원들이 수강생의 요청을 알 수 있을까요?
Stateless 방식의 실제 요청방식

Stateless 방식의 장단점

장점
단점
Stateless 방식의 한계점
상태 유지를 최소화 시켜야 한다.
Connection(연결)

서버는 클라이언트와 연결을 유지하기 위해서 자원을 소모한다.
하지만, 수많은 사람들이 서비스를 이용해도 실제 서버에서 동시에 처리하는 요청은 작다.
Connection 장단점
Connectionless(비연결)

ex) 브라우저가 켜진 상태에서 인터넷이 종료되어도 홈페이지가 정상적으로 노출된다.

하나의 요청에 필요한 요청들이 모두 응답될 때 까지 연결을 유지한다.
연결을 한번만 맺고 끊기 때문에, Connectionless 방식보다 연결 횟수가 적다.
→ 그만큼 속도가 빨라졌다.
ex) HTML 요청 + CSS 요청 + JS 요청 + 이미지 요청
