목록Spring (8)
공부일지

@NoArgsConstructor : 매개변수가 없는 생성자를 생성한다. 필드가 final일 경우 에러 발생. @NoArgsConstructor(force=true) 로 강제 생성 가능 @RequiredArgsConstructor : 초기화 되지 않은 final 필드와 @NonNull인 필드를 매개변수로 생성자 생성한다. @AllArgsConstructor : 모든 필드를 매개변수로 생성자를 생성한다.
싱글톤 패턴 : 객체의 인스턴스가 오직 1개만 생성되는 패턴 메모리 낭비를 유지시켜준다. 데이터 공유가 가능하게 해준다. 리펙토링 : 코드 결과의 변경 없이 구조를 재조정하는 과정. 가독성을 높여주고 유지보수를 편하게 해준다. DI (Dependency Injection) 의존성 주입 : 객체 외부에서 객체를 생성해서 넣어주는 방식 강한 결합을 느슨한 결합으로 만들어준다. field 주입 : 변수 선언부에 @Autowired setter 주입 : setter 메서드에 @Autowired constructor 주입 : 생성자에 @Autowired

캐시와 조건부 요청 캐시가 있으면 캐시 가능 시간동안 네트워크를 사용하지 않아도 되어서 로딩 속도가 빨라지고 네트워크 사용량을 줄일 수 있다. 검증 헤더 + 조건부 요청 ( Last - Modified ) + ( If - Modified - Since, If - Unmodified - Since ) 서버에 저장되어 있는 Last - Modified (데이터가 마지막에 수정된 시간) 를 웹 브라우저 캐시에 저장 캐시 시간이 초과되면 서버에 If - Modified - Since가 같은지를 조건부로 요청 Last - Modified 가 같으면 HTTP 바디 를 빼고 HTTP 헤더만 304 Not Modified 상태로 전송 (용량 작음) 다르면 HTTP 바디 + 헤더를 200 OK 상태로 전송 검증 헤더 +..
헤더의 용도 : HTTP 전송에 필요한 모든 부가정보 RFC2616 (과거 HTTP. 폐기됨) General 헤더 : 메시지 전체에 적용되는 정보 Request 헤더 : 요청 정보 Response 헤더 : 응답 정보 Entity 헤더 : 엔티티 바디 정보 RFC7230 ~ 7235 (최신) 엔티티 -> 표현 = 표현 메타데이터 + 표현 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 표현 Content-Type : 표현 데이터의 형식 ex) html, json Content-Encoding : 표현 데이터의 압축 방식 ex) gzip, identity Content-Language : 표현 데이터의 자연 언어 ex) ko, en-US Content-Length : 표현 데이터의 길이 (바이트..
상태 코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational) : 요청이 수신되어 처리중 (거의 사용되지 않음) 2xx (Successful) : 요청 정상 처리 200(OK) : 요청 성공 (가장 많이 사용) 201(Created) : 요청 성공해서 새로운 리소스가 생성됨 202(Accepted) : 요청이 접수되었으나 처리가 완료되지 않았음 204(NO Content) : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 ex) save 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요 영구 리다이렉션 : 리소스의 URI가 영구적으로 이동, default는 301 301 - 리다이렉트시 요청 메서드가 G..
클라이언트 -> 서버로 데이터 전송 데이터 전달 방식 쿼리 파라미터를 통한 데이터 전송 (GET) 메시지 바디를 통한 데이터 전송 (POST, PUT, PATCH) 정적 데이터 조회 동적 데이터 조회 HTML Form 데이터 전송 HTTP API 데이터 전송 HTTP API 설계 컬렉션 - POST 기반 등록, 서버가 리소스 URI 결정 (대부분 사용) 스토어 - PUT 기반 등록, 클라이언트가 리소스 URI 결정 HTML FORM - GET, POST만 지원해서 컨트롤 URI를 이용해야 된다.
HTTP / 1.1 버전을 가장 많이 사용 HTTP /2 와 HTTP /3 은 성능개선 stateful - 상태 유지 단점 : 중간에 진행하던 서버가 맛이 가면 처음부터 다시 진행해야 한다. ex) 로그인 stateless - 무상태 무한한 서버 증설 가능 단점 : 전송할 데이터가 너무 많다. ex) 서비스 소개 화면 HTTP 메시지 구조 start - line header empty line -< 무조건 있어야 한다. message body HTTP 메서드 GET : 리소스 조회 POST : 요청 데이터 처리, 등록에 사용 PUT : 리소스가 있으면 완전히 대체, 해당 리소스가 없으면 생성 (덮는다) PATCH : 리소스 부분 변경 DELETE : 리소스 삭제 안전 : 리소스가 바뀌지 않는 것 , ex..

인터넷 네트워크 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 IP(Internet Protocol) 의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 : 중간에 패킷 손실, 패킷 전달 순서 문제 발생 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 앱이 둘 이상이면? TCP(Transmission Control Protocol) 전송 제어 프로토콜 특징 연결지향 - TCP 3 way handshake (가상 연결) 클라이언트 -> 서버 로 SYN(접속요청) 서버 -> 클라이언트 로 SYN(접속요청) + ACK(요청 수락) 클라이언트 -> 서버 로 ACK (..