API URI 고민 URI(Uniform Resource Identitier) 리소스의 의미란? 회원을 등록하고 수정하고 조회하는 게 리소스가 아니다! ex) 미네랄을 캐라 → 미네랄이 리소스 회원이라는 개념 자체가 바로 리소스다. 리소스를 어떻게 식별하는게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배제 회원이라는 리소스만 식별하면 된다. → 회원 리소스를 URI에 매핑 API URI 설계 리소스 식별, URI 계층 구조 활용 회원 목록 조회 /members 회원 조회 /members/{id} 회원 등록 /members 회원 수정 /members/{id} 회원 삭제 /members/{id} 조회, 등록, 수정, 삭제를 구분할 방법이 필요함 → HTTP Method의 필요성 계층 구조상 상위를..
HTTP(Hyper Text Transfer Protocol) 거의 모든 형태의 데이터 전송 가능 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용 클라이언트 서버 구조 Stateless 비 연결성(Connectionless) HTTP 메시지 단순함, 확장 가능 HTTP/1.1 1997년: 현재 가장 많이 사용 HTTP/2 2015년: 성능 개선 HTTP/3 진행 중: TCP 대신에 UDP 사용, 성능개선 TCP: HTTP/1.1, HTTP/2 UDP: HTTP/3 클라이언트 서버 구조 Request, Response 구조 클라이언트는 서버에 요청을 보내고, 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 클라이언트 요청→ ← 서버 응답 무상태 프로토콜(Stateless) 서버가 클라이언트의 ..
URI(Uniform Resource Identifier) Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Indentifier: 다른 항목과 구불하는데 필요한 정보 URI안에 URL, URN이 들어있다. URL(Uniform Resource Locator) URL - Locator: 리소스가 있는 위치를 지정 scheme://[userinfo@]host[:port][/path][?query][#fragment] ex) https://www.google.com:433/search?q=hello&hl=ko 프로토콜(https) 호스트명(www.google.com) 포트번호(433) 패스(/search) 쿼리 파라미터(q=hello&hl=k..
IP(인터넷 프로토콜) IP 패킷(패킷이란? package + burket의 합성어) 출발지 IP, 목적지 IP, 기타... 전송 데이터 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라지는 문제 발생 가능 패킷이 순서대로 안 오는 문제 발생 가능 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러 개일 경우 구분의 한계 TCP(Tranmission Control Protocol) 전송 제어 프로토콜 인터넷 프로토콜 스택의 4 계층 애플리케이션 계층 - HTTP, FTP 전송 계층(OS 계층) - TCP / UDP 인터넷 계층(OS 계층) - IP 네트워크 인터페이스 계층 - LAN 드라이버, LAN 장비 TCP 세그먼트 출발지 Port..
2. 생성자에 매개변수가 많다면 빌더를 고려하라. 정적 팩토리와 생성자에는 똑같은 제약이 하나 있다. 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 점이다. 점층적 생성자 패턴(Telescoping Constructor Pattern) public class Member { private final String name; // 필수 private final String email; // 필수 private final int age; // 선택 private final String gender; // 선택 public Member(String name, String email) { this(name, email, 0); } public Member(String name, String email, in..
1. 생성자 대신 정적 팩토리 메서드를 고려하라. 정적 팩토리 메서드 ⇒ 해당 클래스의 인스턴스를 반환하는 단순한 정적 메서드 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } public 생성자 대비 정적 팩토리 메서드의 장점 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못한다. 반면 정적 팩토리 메서드는 명명만 잘하면 반환될 객체의 특성을 쉽게 묘사 가능한다. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 정적 팩토리 방식의 클래스는 언제 어느 인스턴스를 살아 있게 할지를 통제할 수 있다. 인스턴스를 통제할 수 있으면 클래스를 ..
- Total
- Today
- Yesterday
- 디자인패턴
- Mackbook
- HTTP body
- javascript
- 맥 팀즈 캐시 삭제
- vue
- Design Pattern
- 템플릿 메서드 패턴
- 알고리즘
- 이펙티브 자바
- 팀즈 느려짐
- frontend
- ES6
- JPA
- http
- Spring
- 팀즈
- http header
- ORM
- 코딩테스트
- effetive java
- 프로그래머스
- SOLID원칙
- 코테
- java
- Vue.js
- Backend
- 맥 포트 죽이기
- 포트충돌
- 맥북 키보드 딜레이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |