본문 바로가기
반응형

Backend, Server53

[HTTP] HTTP 메서드의 종류와 속성(GET, POST, PUT, PATCH, DELETE) HTTP API 설계 시작하기 - 요구사항 : 회원 등록, 수정, 조회, 삭제 기능을 가지는 회원 정보 관리 API가 필요하다. 1) 최초 설계 다음과 같이 URI을 설계했다. 이것이 좋은 설계일까? No API URI 설계에서 가장 중요한 것은 리소스 식별이다. 회원을 등록, 수정, 조회하는 행위는 리소스가 아니다. 회원 자체가 바로 리소스다. 이 회원 리소스를 URI에 매핑하면 된다. 2) 개선한 설계 리소스와 행위로 나누자. 리소스 : 회원 행위 : 조회, 등록, 삭제, 변경 그럼 이들을 어떻게 구별해야 되지? HTTP 메서드 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELET.. 2022. 1. 6.
[HTTP] HTTP 기본(HTTP의 특징과 HTTP 메시지 구조) HTTP란? HTTP - HyperText Transfer Protocol 현재 다양한 버전이 있지만 HTTP/1.1 버전을 가장 많이 사용하며, 가장 중요한 버전이다. 이후의 HTTP/2와 HTTP/3는 성능 개선에 초점을 맞춤 HTTP의 특징 1. HTTP 메시지에는 거의 모든 것을 전송할 수 있다. - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML (API) - 거의 모든 형태의 데이터 전송 가능 - 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용. 2. 클라이언트 서버 구조 - 클라이언트가 서버에 요청을 보내고, 서버가 응답을 해주는 Request Response 구조 3. 무상태(stateless) 프로토콜 - 서버가 클라이언트의 상태를 보존하지 않음 => .. 2022. 1. 6.
[HTTP] URI의 의미, URL와 URN이란? - URI: Uniformed Resource Identifer - URL와 URN URI - Uniform: 리소스 식별하는 통일된 방식 - Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) - Identifier: 다른 항목과 구분하는데 필요한 정보 • URL: Uniform Resource Locator : 리소스의 위치를 지정 • URN: Uniform Resource Name : 리소스에 이름을 부여 => URN만으로 리소스를 찾는 방법은 보편화되지 않음. URN보다 주로 URL을 사용하며, URI를 그냥 URL과 같은 의미로 사용하기도 한다. URL 전체 문법 • scheme://[userinfo@]host[:port][/path][?query][#fragment] 예시:.. 2022. 1. 6.
[스프링] 빈 스코프(싱글톤, 프로토타입, 웹 관련 스코프) 스코프: 빈이 존재할 수 있는 범위 스프링이 지원하는 다양한 스코프 싱글톤: 기본 스코프, 스프링 컨테이너 시작~종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입: 사용법은 빈에 @Scope("prototype")을 설정해주면 된다. 프로토타입 빈은 컨테이너에게 빈을 요청할 때마다 매번 새로운 객체를 생성하여 반환해준다. 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프, 싱글톤이 아니기때문에 요청마다 매번 다른 인스턴스를 반환, 초기화까지만 관여하기 때문에 @PreDestroy같은 종료 메서드가 실행되지 않음 웹 관련 스코프 - request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 - session : 웹 세션이 생성되고 .. 2022. 1. 1.
[스프링] 빈 생명주기 콜백(인터페이스, 빈 등록 설정, 어노테이션) 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 전 콜백 -> 스프링 종료 * 초기화 콜백: 빈이 생성되고, 의존관계 주입이 완료된 후 호출 * 소멸 전 콜백 : 빈이 소멸되기 직전에 호출 1. 인터페이스 InitializingBean, DisposableBean @Override public void afterPropertiesSet() throws Exception { } @Override public void destroy() throws Exception { } - 단점: 메서드 이름 변경 불가, 내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없음 2. 빈 등록 초기화, 소멸 메서드 지정 설정 정보에 @Bean(initMethod = .. 2021. 12. 28.
[스프링] 의존 관계 자동 주입, 옵션 처리, 롬북 라이브러리, 조회 빈 중복 처리, 조회한 빈 모두 가져오기 의존 관계 자동 주입 의존 관계 주입 4가지 방법 1. 생성자 주입 2. 수정자(setter) 주입 3. 필드 주입 4. 일반 메서드 주입 생성자 주입 - 생성자를 통해서 의존 관계를 주입 - @Autowired을 달아주면 되고, 생성자가 1개만 있으면 생략 가능(물론 스프링 빈으로 등록된 클래스일 경우만) - 생성자 호출 시점에 오직 1번만 호출되므로 불변, 필수 의존 관계에 사용됨 수정자(setter) 주입 - 수정자 메서드를 통해서 의존 관계를 주입 - 수정자에 @Autowired - 선택, 변경 가능성이 있는 의존 관계에 사용 필드 주입 - 필드에 바로 주입하는 방식 - 예시 : @Autowired private MemberRepository memberRepository; - 코드가 간결하지만 .. 2021. 12. 28.
반응형