[TIL] Omit, Clean URL, Query String, Tuple, POJO, VO,…
2025-04-19 TIL
📝 TIL (Today I Learned)
🔗 원본 이슈: #44
📅 작성일: 2025-04-19
🔄 최종 수정: 2025년 05월 02일
🍀 새롭게 배운 것
1. Omit
- 뜻: 무언가를 제외하다, 빼다는 의미
- 개발에서는? TypeScript나 Java 등에서 객체를 다룰 때, 특정 필드만 제외한 새 타입이나 새 객체를 만들 때 사용
- 예시 (JavaScript/TypeScript):
type User = { id: number; name: string; password: string }; type PublicUser = Omit<User, "password">;
→
PublicUser
는User
에서password
만 빠진 타입이다. - Java에서는 TypeScript처럼 Omit기능이 직접 있지는 않음.
- 하지만 “DTO를 따로 만들어서 필요한 필드만 남기는 방식”으로 비슷하게 사용
- 즉, Java에서 Omit이란 “필요없는 필드를 빼고 새 클래스를 만드는 것”으로 해석함
✅ 정리:
특정 속성을 빼고 다루는 것을 “Omit”이라고 한다.
2. Clean URL (Path Variable)
- 뜻: 주소(URL)을 깔끔하게, 의미 있게 만든 것.
개발에서는?
리소스(데이터) 식별을 URL 경로로 표현하는 걸 말한다.
(파라미터를 경로에 깔끔하게 넣는다.)- 예시:
GET /users/123
→
123번 사용자
를 조회하는 요청 (Path Variable = 123)
✅ 정리:
/detail?id=123
처럼 지저분하게 하지 않고, /detail/123
처럼
리소스를 주소 안에 자연스럽게 표현하는 게 Clean URL
3. Query String (Search Parameter)
- 뜻:
?
뒤에 붙는 키-값 쌍. - 개발에서는?
데이터 검색, 필터링, 옵션 설정 등에 주로 사용. - 예시:
GET /products?category=shoes&sort=price
→
카테고리=신발
,가격순 정렬
이라는 의미.
✅ 정리:
검색조건이나 옵션을 전달할 때
?key=value&key2=value2
처럼 붙이는 게 Query String
4. HTTP Header + JWT
HTTP Header:
- 요청(Request)이나 응답(Response)의 추가 정보를 담는 곳.
- 예: 인증 정보, 요청 포맷, 토큰 등.
- JWT (JSON Web Token):
- 로그인한 사용자인지 증명하는 토큰.
- Header + Payload + Signature로 구성된다.
- 보통 HTTP Header 안에 넣어서 서버에 보냄.
- 예시:
Authorization: Bearer eyJhbGciOiJIUzI1...
→ 요청 헤더에 JWT를 담아 보낸다.
✅ 정리:
JWT는 로그인 토큰이고,
HTTP Header에 넣어서 서버에 인증정보를 전달한다.
5. Tuple, POJO, VO, Instance
- Tuple:
- 여러 데이터(타입 다를 수 있음)를 고정된 순서로 묶은 것.
- 주로 TypeScript, Python 등에서 사용.
- 예:
(1, "apple")
- POJO (Plain Old Java Object):
- 특별한 규칙 없이, 그냥 순수한 Java 객체.
- @Entity, @Component 이런 거 없는 심플한 객체를 말함.
- VO (Value Object):
- “값” 자체를 의미하는 객체.
- 이름이 같으면 같은 것으로 취급하고, 변하지 않는(immutable) 게 일반적이다.
- 예:
Money
,Address
- Instance:
- 클래스로부터 실제로 만들어진 메모리 상의 객체.
- 예:
new User("sungwoo")
→ User 인스턴스
✅ 정리:
| 용어 | 설명 | |:—-|:—-| | Tuple | 서로 다른 타입을 순서대로 묶은 데이터 | | POJO | 아무것도 특별하지 않은 순수 Java 객체 | | VO | 값(변하지 않는 의미 단위) 중심의 객체 | | Instance | 클래스로 실제 생성한 객체 |
6. Soft Delete
- 뜻: 데이터를 진짜로 삭제하지 않고, 삭제된 것처럼 표시만 하는 것.
개발에서는? DB에
is_deleted
같은 컬럼을 만들어서, 삭제 대신 플래그만 켠다.- 예시 (MySQL 테이블):
UPDATE users SET is_deleted = true WHERE id = 123;
→ 실제로는 데이터가 남아있지만, 조회할 때는
is_deleted = false
인 것만 보여준다.
✅ 정리:
Soft Delete = 삭제 표시만 하고 실제 데이터는 남겨두는 것
(복구하거나 기록을 남길 때 유용)
🔥 한 줄 요약
“Omit은 빼는 것, Clean URL은 경로 깔끔하게, Query String은 검색 옵션, JWT는 Header에 인증 토큰, POJO/VO/Instance는 객체 용어 구분, Soft Delete는 삭제 안 하고 표시만!”