📕 목차
- 프로그래밍 명명규칙 (Casing)
- JSON (JavaScript Object Notation)
- Scale Up vs Scale Out
- Stateful vs Stateless
- Connection vs Connectionless
1. 프로그래밍 명명규칙 (Casing)
명명법 |
특징 |
사용처 |
snake_case |
소문자 + 언더바 _ 연결 |
파이썬, DB 컬럼 등 |
camelCase |
소문자로 시작, 단어마다 대문자 |
Java 변수/메서드 등 |
PascalCase |
모든 단어의 시작이 대문자 |
클래스명 등 |
kebab-case |
소문자 + 하이픈 - 연결 |
HTML/CSS, URL 등 |
2. JSON (JavaScript Object Notation)
JSON (JavaScript Object Notation)
- 클라이언트-서버 간 데이터를 주고받는 공통 포맷
- JSON은 사람, 기계 모두 이해하기 쉬우며 용량이 작다.
- XML 대비 가볍고 가독성이 좋다
- Web 세계의 공통어처럼 사용된다. (JavaScript Object Notation)
JSON 구조
- Key-Value 구조
- snake_case, camelCase 모두 사용 가능하다.
- null, number, string, array, object, boolean 형태의 데이터를 사용할 수 있다.
{
"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"]
}
]
}
3. Scale Up vs Scale Out
구분 |
설명 |
장점 |
예시 |
Scale Up |
서버 자체의 성능을 높임 |
구조 변경 없이 성능 향상 가능 |
CPU, 메모리 업그레이드 |
Scale Out |
서버 대수를 늘려 작업 분산 |
유연한 확장 가능, 장애 분산에 유리 |
웹 서버 여러 대를 로드밸런싱으로 운영 |
4. Stateful vs Stateless
구분 |
설명 |
장점 |
예시 |
Stateful |
서버가 사용자 상태를 기억함 |
사용자 경험 향상, 세션 관리 편리 |
로그인 후 장바구니 상태 유지 등 |
Stateless |
서버가 상태를 기억하지 않음 |
확장성과 유지보수에 유리, 수평 확장 쉬움 |
REST API, 매 요청에 토큰 포함 등 |
5. Connection vs Connectionless
구분 |
설명 |
장점
|
예시 |
Connection |
서버와 지속적으로 연결 유지 |
빠른 응답, 상태 지속 관리 가능 |
채팅, 게임 서버 등 실시간 통신 |
Connectionless |
요청마다 연결 생성 및 종료 |
리소스 절약, 확장성 좋음 |
웹 브라우저로 HTML 요청, 이메일 전송 등 |