반응형

공부 135

API 개발 고급 - 지연 로딩과 조회 성능 최적화

https://surrealcode.tistory.com/120 API 개발 고급 - 준비현업에서는 API 개발을 한 이후 성능이 나오지 않아 튜닝을 하기도 하는데 보통은 아래와 같은 문제를 지키지 않아 발생한다.- 지연로딩, 조회 성능 최적화- 컬렉션 조회 최적화- 페이징, 한계 돌surrealcode.tistory.com개발에 앞서, 이전 포스팅을 참고하여 조회용 데이터 샘플을 넣어주도록 하자.  지연 로딩과 조회 성능 최적화이전까지는 단일 엔티티만을 조회하는 API를 만들었다. 이번엔 주문 + 배송정보 + 회원을 조회하는 API를 만들어본다.여러 정보를 조회하는 API의 문제는 지연 로딩이다.지연 로딩 때문에 발생하는 성능 문제를 단계적으로 해결해보자. **참고 : 지금부터 설명되는 내용은 정말 중..

공부/Spring Boot 2025.02.03

API 개발 고급 - 준비

현업에서는 API 개발을 한 이후 성능이 나오지 않아 튜닝을 하기도 하는데 보통은 아래와 같은 문제를 지키지 않아 발생한다.- 지연로딩, 조회 성능 최적화- 컬렉션 조회 최적화- 페이징, 한계 돌파- OSIV, 성능 최적화 보통은 API 장애의 90%는 조회 쪽에서 발생한다. -> 사람들이 조회를 많이 하기 때문이다.  조회용 샘플 데이터를 입력하도록 하자.우선 application.yml파일의 ddl-auto를 create로 만들어주도록 하자. - userA  - JPA1 BOOK  - JPA2 BOOK- userB  - SPRING1 BOOK  - SPRING2 BOOK 클래스를 하나 만들고 데이터들을 집어넣어주었다./** * 총 주문 2개 *- userA * - JPA1 BOOK * - JP..

공부/Spring Boot 2025.01.31

API 개발 기본

API(Application Programming Interface) : 클라이언트(웹 브라우저, 모바일 앱)와 서버 간의 데이터 교환을 위한 인터페이스이다. API의 역할1. 클라이언트 요청을 받아 서버에서 처리2. 데이터베이스에서 데이터를 가져와 JSON 형태로 응답3. CRUD(Create, Read, Update, Delete)의 기능 제공 스프링 부트에서는 API가 기본적으로 JSON 형식의 데이터를 주고 받는다.API가 정상적으로 동작하는지 알아보기 위해 우선 Postman을 설치한다.https://www.postman.com/ Postman: The World's Leading API Platform | Sign Up for FreeAccelerate API development with P..

공부/Spring Boot 2025.01.31

HTTP 헤더2 - 캐시와 조건부 요청

캐시 기본 동작첫번째 요청만약 웹 브라우저에서 star.jpg를 요청하면 서버에서 별과 관련된 그림을 내려줄 것이다.star.jpg의 응답을 내려주는데 실제 이미지와 관련된 바이트코드들이 있을 것이다. 캐시가 없다면, 웹 브라우저에서 다시 star.jpg를 요청했을 때 서버에서 똑같이 별과 관련된 그림을 다시 내려줄 것이다.위 두 그림을 보자. 헤더와 바디부가 똑같은 응답을 동일한 웹 브라우저에 다시 내려주는 것이다. 캐시가 없을 때- 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다.- 인터넷 네트워크는 매우 느리고 비싸다.- 브라우저 로딩 속도가 느리다.- 느린 사용자 경험 --> 캐시를 사용 함으로써 위와 같은 문제를 해결해줄 수 있다. 서버에서 캐시를 적용하였다. ca..

공부/HTTP 2025.01.22

HTTP 헤더1 - 일반 헤더

HTTP 헤더header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용) field-name은 대소문자 구분이 없다.  HTTP에서 일반적으로 자주 사용되는 헤더는 다음과 같다HTTP 헤더의 용도- HTTP 전송에 필요한 모든 부가 정보를 담는다.  ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등- HTTP표준 헤더는 종류가 너무 많다.- 필요시 임의의 헤더를 추가 가능하다.  HTTP 헤더 분류 - RFC2616(과거)과거 헤더는 네종류로 분류하였다.- General 헤더 : 메시지 전체에 적용되는 정보, ex) Connection: close- Request 헤더 : 요청 정보..

공부/HTTP 2025.01.21

HTTP 상태 코드

HTTP 상태 코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능- 1xx(Informational) : 요청이 수신되어 처리중- 2xx(Successful) : 요청 정상 처리- 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요- 4xx(Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음- 5xx(Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함  만약 모르는 상태 코드가 나타나면 어떡할까?- 클라이언트가 인식할 수 없는 상태 코드를 서버가 반환하면?- 클라이언트는 상위 상태 코드로 해석해서 처리- 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 된다.ex) 299 ??? -> ..

공부/HTTP 2025.01.20

HTTP 메서드 활용

https://surrealcode.tistory.com/114 HTTP 메서드https://surrealcode.tistory.com/113 HTTP 기본https://surrealcode.tistory.com/112 URI와 웹 브라우저 요청 흐름https://surrealcode.tistory.com/111 요청 흐름을 파악하기 전 이전 포스팅을 참고하자. - URIURI(Uniform Resource Idsurrealcode.tistory.comHTTP 메서드들을 활용하기 전에 이전 포스팅을 통해 HTTP 메서드를 알아보도록 하자.  - 클라이언트에서 서버로 데이터 전송클라이언트에서 서버로 데이터를 어떻게 전송할까?클라이언트에서 서버로 데이터를 전달하는 방식은 크게 2가지 이다. 1. 쿼리 파라미..

공부/HTTP 2025.01.17

HTTP 메서드

https://surrealcode.tistory.com/113 HTTP 기본https://surrealcode.tistory.com/112 URI와 웹 브라우저 요청 흐름https://surrealcode.tistory.com/111 요청 흐름을 파악하기 전 이전 포스팅을 참고하자. - URIURI(Uniform Resource Identifier)URI는 로케이터(Locator), 이름(Nasurrealcode.tistory.comHTTP 메서드를 알아보기 전 이전 포스팅을 참고하자. - HTTP API 메서드를 만들어보자.요구사항은 다음과 같다.회원 정보 관리 API를 만들어라1. 회원 목록 조회2. 회원 조회3. 회원 등록4. 회원 수정5. 회원 삭제 위 요구사항을 기반으로 URI를 만들었다고 가..

공부/HTTP 2025.01.16

HTTP 기본

https://surrealcode.tistory.com/112 URI와 웹 브라우저 요청 흐름https://surrealcode.tistory.com/111 요청 흐름을 파악하기 전 이전 포스팅을 참고하자. - URIURI(Uniform Resource Identifier)URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있다.URI는 URL, URN보다surrealcode.tistory.com HTTP의 기본 구조를 파악하기 전 이전 포스팅을 참고하도록 하자. - 모든 것이 HTTPHTTP(HyperTextTransferProtocol)최근엔 HTTP 메시지에 모든 것을 담아서 전송한다.1.HTML, TEXT2, Image, 음성, 영상, 파일3. JSON, XML (..

공부/HTTP 2025.01.15

URI와 웹 브라우저 요청 흐름

https://surrealcode.tistory.com/111 요청 흐름을 파악하기 전 이전 포스팅을 참고하자. - URIURI(Uniform Resource Identifier)URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있다.URI는 URL, URN보다 더 큰 개념이라고 볼 수 있다. URL(Resource Locator) : 리소스의 위치URN(Resource Name) : 리소스의 이름 URI의 단어 뜻Uniform : 리소스를 식별하는 통일된 방식Resource : 자원, URI로 식별할 수 있는 모든 것(제한 없음)(html, 파일, 실시간 교통 정보 등 우리가 구분할 수 있는 모든것)Identifier : 다른 항목과 구분하는데 필요한 정보 URL, U..

공부/HTTP 2025.01.14
반응형