[HTTP] HTTP 메서드
·
Back-End/HTTP
[작성일: 2023. 09. 06] HTTP API 회원 정보 관리 API URI를 설계해보자. 회원 목록 조회 /read-member-list회원 조회 /read-member-by-id회원 등록 /create-member회원 수정 /update-member회원 삭제 /delete-member 이렇게 설계한 URI는 좋은 URI 설계일까? 정답은 NO!가장 중요한 것은 리소스 식별하는 것이다. 그렇다면 리소스란 무엇일까? 회원을 등록하고 수정하고 조회하는 게 리소스를 뜻하는 것은 아니다. '회원'이라는 개념 자체가 바로 리소스라고 할 수 있다. 리소스는 어떻게 식별하는 게 좋을까? 회원을 등록하고 수정하고 조회하는 것을 모두 배제해야 한다. 회원이라는 리소스만 식별하면 되므로 회원 리소스를 URI에 매핑..
[HTTP] HTTP
·
Back-End/HTTP
[작성일: 2023. 09. 05] HTTPHyper Text Transfer Protocol모든 것이 HTTP이며 HTTP 메시지에 모든 것을 전송한다. HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML(API) 거의 모든 형태의 데이터 전송이 가능하다.서버간 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.기본적으로 클라이언트-서버 구조로 동작한다.무상태 프로토콜(스테이스리스)을 지향하며 비연결성이라는 특징을 가진다.HTTP 메시지를 통해 통신하며 단순하고 확장 가능하다.  기반 프로토콜TCP: HTTP/1.1, HTTP/2UDP: HTTP/3현재는 HTTP/1.1을 주로 사용하며 HTT/2, HTTP/3도 점점 증가하고 있다.     클라이언트 서버 구조Request(클라..
[HTTP] URI와 웹 브라우저 요청 흐름
·
Back-End/HTTP
[작성일: 2023. 09. 03]  URI(=URL)URI(Uniform Resource Identifier)Uniform: 리소스를 식별하는 통일된 방식Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)Identifier: 다른 항목과 구분하는데 필요한 정보URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다. 참고URL: Uniform Resource Locator, 리소스가 있는 위치를 지정URN: Uniform Resource Name, 리소스에 이름을 부여, 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않음.위치는 변할 수 있지만 이름은 변하지 않는다.urn:isbn:8960777331(어떤 책의 isbn URN)    URL ..
[HTTP] 인터넷 네트워크
·
Back-End/HTTP
[작성일: 2023. 09. 02] 인터넷 통신인터넷에서 컴퓨터 둘은 어떻게 통신할까?      IP(인터넷 프로토콜)IP라는 인터넷 프로토콜은 지정한 IP주소(IP Address)에 데이터를 전달한다.패킷(Packet)이라는 통신 단위로 데이터를 전달한다. IP 프로토콜의 한계비연걸성패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다.비신뢰성중간에 패킷이 사라지면?패킷이 순서대로 오지 않는다면?프로그램 구분같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면?    TCP 왼쪽은 인터넷 프로토콜의 4계층이고 오른쪽은 프로토콜 계층이다. 프로그램이 Hello, world!라는 메시지를 생성하고 SOCKET 라이브러리를 통해 전달한다.TCP 정보를 생성되면 메시지 데이터를 포함한..
[실전! 스프링 부트와 JPA 활용 2 - API 개발과 성능 최적화] 스프링 데이터 JPA와 Querydsl 맛보기
·
Back-End/JPA
[작성일: 2023. 10. 06] 스프링 데이터 JPAhttps://spring.io/projects/spring-data-jpa Spring Data JPASpring Data JPA, part of the larger Spring Data family, makes it easy to easily implement JPA based repositories. This module deals with enhanced support for JPA based data access layers. It makes it easier to build Spring-powered applications that use datspring.io 스프링 데이터 JPA는 JPA를 사용할 때 반복하는 코드를 자동화 해준다.라이..
[실전! 스프링 부트와 JPA 활용 2 - API 개발과 성능 최적화] API 개발 고급(4): OSIV와 성능 최적화
·
Back-End/JPA
[작성일: 2023. 10. 06]  OSIV와 성능 최적화 Open Session In Viewspring.jpa.open-in-view : true 기본값 이 기본값을 뿌리면서 애플리케이션 시작 시점에 warm 로그를 남기는 이유가 있다.  OVIS 전략은 트랜잭션 시작처럼 최초 데이터베이스 커넥션 시작 시점부터 API 응답이 끝날 때까지 영속성 컨텍스트와 데이터베이스 커넥션을 유지한다.그래서 지금까지 View Template나 API 컨트롤러에서 지연 로딩이 가능했던 것이다.지연 로딩은 영속성 컨텍스트가 살아있어야 가능하고, 영속성 컨텍스트는 기본적으로 데이터베이스 커넥션을 유지해야 한다. 그런데 이 전략은 너무 오랜 시간동안 데이터베이스 커넥션 리소스를 사용하기 때문에 실시간 트래픽이 중요한 애플..