본문 바로가기

개인 공부/인프런

(34)
[HTTP] HTTP API 해당 글은 김영한 모든 개발자를 위한 HTTP 웹 기본 지식을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. HTTP API HTTP API를 만들어보자. 요구사항 회원 정보 관리 API를 만들어라. 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 API URI 설계 URI(Uniform Resource Identifier) 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 개발자라면, URL 설계가 최선인지 항상 고민해야함 API URL 고민 리소스란 무엇일까? 회원을 등록하고 수정하는 과정 그 자체가 리소스가 아니다. 회원만 리..
[HTTP] HTTP 해당 글은 김영한 모든 개발자를 위한 HTTP 웹 기본 지식을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. HTTP는 HyperText Transfer Protocol의 약자다. HTTP 메시지에 전송되는 것들 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 이후 나온 버전들은 성능 개선에 초점이 맞춰져있다. RFC2068 (1997) -> RFC2616 (1999) ->..
[HTTP] URI & Web browser request flow 해당 글은 김영한 모든 개발자를 위한 HTTP 웹 기본 지식을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 33day URI와 웹 브라우저 요청 흐름 URI (Uniform Resource Identifier) URL: 로케이터(locator) 리소스의 위치 URN: 이름(name) 리소스의 이름 URL은 리소스의 위치를 URN은 리소스의 이름을 담고있는걸 확인할 수 있다. 주로 URL을 사용한다. URI의 단어 뜻 Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL: Uniform Resource Locator URN: Uniform Resource Name URL..
[HTTP] 인터넷 네트워크 해당 글은 김영한 모든 개발자를 위한 HTTP 웹 기본 지식을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 벡엔드 개발자가 왜(why) HTTP에 대해 알아야 할까? 대부분의 웹 애플리케이션은 HTTP 프로토콜을 기반으로 동작한다. HTTP는 요청과 응답을 위한 상태 코드를 제공한다. 백엔드 개발자는 이러한 상태 코드를 이해하고 처리해야 한다. HTTP 요청과 응답은 웹 애플리케이션의 성능에 큰 영향을 끼친다. 백엔드 개발자는 HTTP 헤더, 캐싱, 압축 등을 이해하여 웹 애플리케이션의 성능을 최적화할 수 있다. 이 밖에도 여러 이유들이 있다. 때문에 벡엔드 개발자를 희망한다면 HTTP에 대해 알아두는게 필수 라고 볼 수 있다. 이제 HTTP에 대해 알아보도록 하자 인터넷 네트워크 왜? 인터넷..
[Spring] Scope & Provider 해당 글은 김영한 스프링 핵심 원리 - 기본편을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 스코프와 Provider 저번에 배운 웹 스코프에서 request스코프에 대해 이해하고, 이를 코드로 짜보았다. request 스코프를 코드로 짜면서 내가 원했던것은 아래와 같다. UUID를 사용해 HTTP 요청을 구분할것 requestURL 정보를 넣어 어떤 URL을 요청해서 남은 로그인지 확인이 가능할것. 하지만, 코드를 짜고 실행하는 과정에서 오류가 발생했다. 그 이유는 스프링을 실행하는 시점에 싱글톤 빈은 미리 생성해서 주입이 가능하나, request 스코프 빈은 아직 생성되지 않았기 때문이다. 위 오류를 우리는 오늘 해결해볼것이다. Provider 사용 ObjectProvider를 사용해 오류..
[Spring] Web Scope 해당 글은 김영한 스프링 핵심 원리 - 기본편을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 웹 스코프 지금까지 싱글톤과 프로토타입 스코프를 학습했다. 싱글톤은 스프링 컨테이너의 시작과 끝까지 함께하는 매우 긴 스코프이고, 프로토타입은 생성과 의존관계 주입, 그리고 초기화까지만 진행하는 특별한 스코프이다. 이번에는 웹 스코프에 대해서 알아보자 웹 스코프의 특징 웹 스코프는 웹 환경에서만 동작한다. 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다. 웹 스코프 종류 request: HTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고, 관리된다. session: HTTP S..
[Spring] Prototype Scope 해당 글은 김영한 스프링 핵심 원리 - 기본편을 보고 요약, 정리하면서 개인적인 견해가 들어간 글입니다. 빈 스코프 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 싱글톤 빈이 생성될 때 프로토타입 빈도 함께 생성되기 때문에 문제가 발생한다. 싱글톤 빈과 프로토타입 빈을 함께 사용할 때, 어떻게 하면 사용할 때 마다 항상 새로운 프로토타입 빈을 생성할 수 있을까? 스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토타입을 사용할 때 마다 스프링 컨테이너에 새로 요청하는 것이다. public class PrototypeProviderTest { @Test void providerTest() { AnnotationConfigApplicationContext ac = new..
[Spring] Prototype Scope - Issues When Used with Singleton Beans 28day 해당 글은 김영한 스프링 핵심원리 - 기본편을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 빈 스코프 빈 스코프란? 지금까지 우리는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지된다고 학습했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다. 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련 스코프 스프링 웹과 관련된 기능이 들어..