HTTP - HTTP API 설계와 HTTP메서드
2023. 5. 15. 19:23
CS/HTTP
들어가며 HTTP 메서드를 알아보기 이전에 기본적인 API에 대한 URL설계에 대해 한번 논의해본다. API URI 설계 만약의 예시를 들어 회원 정보를 관리하는 API를 만들어야 한다고 가정하자. 회원 정보를 관리하기 위해서는 다음과 같은 기능들이 필요하다. 회원 전체 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 그리고 각 기능에 대해 URI를 지정해줘야 할 것이다. 그래야 그 경로로 요청이 가서 서버에서 그 요청에 맞는 로직을 수행할 수 있을 것이다. 각 기능을 그대로 URI에 옮긴 경로는 다음과 같을 것이다. 회원 목록 조회 - /read-member-list 회원 조회 - /read-member-by-id 회원 등록 - /create-member 회원 수정 - /update-member ..
Spring Framework - 컴포넌트 스캔 - 2. 컴포넌트 스캔 위치, 대상, 필터
2023. 5. 15. 15:37
Spring & JPA/Spring
들어가며 이전 포스트에서 자동으로 클래스를 스프링 빈으로 등록해주는 컴포넌스 스캔에 대하여 알아보았다. 이번 포스트에서는 컴포넌트 스캔의 범위 지정과 컴포넌트 스캔 대상, 필터와 중복된 컴포넌트가 존재할 경우에 대해 다루어 볼 것이다. Spring Framework - 컴포넌트 스캔 - 1. 컴포넌트 스캔과 의존관계 자동 주입 들어가며 이번 포스트부터는 스프링 프레임워크가 @Bean으로 직접 수동으로 스프링 빈을 등록하지 않는 상태에서도 어떻게 객체들을 스프링 빈으로 등록하는지와 의존관계를 자동 주입하는 방 sehun5515.tistory.com 컴포넌트 스캔의 시작 위치 스프링 프레임워크도 결국 JVM위에서 돌아가는 일종의 자바 소스 코드의 집합에 불과하단 사실을 인지하고 있어야 한다. 이 말은 결국 ..
HTTP - HTTP 메시지 구조
2023. 5. 15. 00:15
CS/HTTP
들어가며 이전 포스트에서 HTTP의 정의와 성질에 대해 알아보았다. 이번 포스트에서는 HTTP 메시지의 구조와 각 파트별에 대해 간략하게 알아본다. HTTP - HTTP의 뜻과 특성 들어가며 이전 포스트에서는 리소스를 식별할 수 있는 방법인 URI에 대해 알아보았다. 이번 포스트에서는 웹 개발에서 가장 핵심적인 프로토콜이라고 할 수 있는 HTTP에 대해 알아보도록 한다. HTT sehun5515.tistory.com HTTP 메시지 이전 포스트에서 HTTP의 특성 중 하나로 클라이언트 - 서버 구조가 있었다. 이는 클라이언트가 어떤 데이터에 대해 요청(Request)을 하면 서버가 그 요청을 받고 요청에 대한 동작을 수행한 뒤, 그 결과를 클라이언트에게 다시 응답(Response)하는 구조를 뜻한다. 이..
Spring Framework - 컴포넌트 스캔 - 1. 컴포넌트 스캔과 의존관계 자동 주입
2023. 5. 13. 23:15
Spring & JPA/Spring
들어가며 이번 포스트부터는 스프링 프레임워크가 @Bean으로 직접 수동으로 스프링 빈을 등록하지 않는 상태에서도 어떻게 객체들을 스프링 빈으로 등록하는지와 의존관계를 자동 주입하는 방법에 대해 알아본다. 컴포넌트 스캔 컴포넌트 스캔은 스프링이 각 객체를 스캔하면서 @Component가 존재하는 클래스의 인스턴스들을 스프링 컨테이너에 적재시킨다. 이를 수행하려면 다음과 같이 코드를 짜면 된다. @Configuration @ComponentScan public class AutoAppConfig{ } 코드를 보면 내부에 그 어떠한 코드도 없다. 심지어 @Bean으로 등록한 클래스들도 없다. 이는 @ComponentScan 어노테이션을 발견했을 시에 스프링에서 자동으로 컴포넌트 스캔을 통해 @Component..
HTTP - HTTP의 뜻과 특성
2023. 5. 13. 01:01
CS/HTTP
들어가며 이전 포스트에서는 리소스를 식별할 수 있는 방법인 URI에 대해 알아보았다. 이번 포스트에서는 웹 개발에서 가장 핵심적인 프로토콜이라고 할 수 있는 HTTP에 대해 알아보도록 한다. HTTP의 정의 HTTP는 Hyper Text Transfer Protocol의 두문자로 HTTP 메세지에 모든 데이터를 전송할 수 있다. HTTP는 현재 1.1버전, 2버전, 3버전이 존재한다. HTTP/1.1은 현재 우리가 가장 많이 사용하는 HTTP 프로토콜 버전이다. HTTP/2는 1.1에서 성능이 개선된 버전이다. HTTP/3은 현재 개발 진행중으로 1.1과 2버전이 기반 연결 프로토콜로 TCP를 사용하는데 반하여 UDP를 사용한다. UDP는 이전에 간략히 설명했지만 TCP에 비하여 신뢰적 연결에 대한 기능..
Spring Framework - 스프링과 Singleton - 3. Configuration
2023. 5. 12. 23:30
Spring & JPA/Spring
들어가며 이전까지 스프링 컨테이너에서 어떻게 각 객체를 싱글톤 기법으로 관리하고 있는지에 대해 알아보았다. 이번에는 @Configuration으로 등록한 설정 파일이 실행될 때 생기는 현상 중, 객체가 여러번 생성되는 것 처럼 보이는 상황과 그에 대해 실제로 어떤 동작이 수행되고 있는지에 대해 알아본다. @Configuration 다음의 AppConfig 코드를 보자. @Configuration public class AppConfig{ @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService(){ return new Or..
HTTP - URI의 개념
2023. 5. 11. 01:02
CS/HTTP
들어가며 이번 포스트에서는 URI(Uniform Resource Identifier)에 대해 알아본다. 더불어 URL, URN에 대해서도 알아본다. URI, URL, URN URI는 자원을 구분(Identify)하기 위해서 만든 개념으로, URL, URN이 모두 URI에 포함되는 개념이다. 즉 URL과 URN은 URI의 부분집합으로 생각할 수 있다. URI의 각 두문자의 의미는 다음과 같다. U : Uniform으로 리소스를 식별하는데 통일된 방식을 지칭한다. R : Resource로 리소스 자체를 말하며 리소스란 식별할 수 있는 모든 것을 지칭하며 제한은 없다. I : Identifier로 리소스를 다른 리소스와 구분할 수 있는 정보를 의미한다. URL은 위의 두문자에서 I가 L로 바뀐 것으로, 자원이..
Spring Framework - 스프링과 Singleton - 2. 싱글톤 컨테이너
2023. 5. 10. 12:52
Spring & JPA/Spring
들어가며 이전 포스트에서는 동일한 요청에 대해 새로운 객체를 계속해서 만들어 반환해야 하는 경우의 문제점에 대해 알아보고, 이러한 문제를 해결할 수 있는 디자인 패턴인 싱글톤 패턴에 대해 알아보았다. 또한 싱글톤 패턴이 가져오는 장점과 단점 역시 알아보았다. 이번 포스트에서는 스프링 프레임워크에서 이러한 문제에 대해 어떻게 대처하는지에 대해 알아본다. Spring Framework - 스프링과 Singleton - 1. Singleton 들어가며 이전 글에서는 스프링 프레임워크에서 생성하고 관리하는 스프링 DI 컨테이너(이하 스프링 컨테이너)가 어떻게 Bean을 조회하고, 어떠한 문제점이 발생할 수 있으며 그것을 어떻게 해결 sehun5515.tistory.com 싱글톤 컨테이너 우리가 이전 포스트에서 ..
HTTP - 인터넷 통신 기초
2023. 5. 9. 15:43
CS/HTTP
컴퓨터의 네트워크 통신 내 컴퓨터와 다른 곳에 존재하는 임의의 한 단말과 통신하기 위해서는 어떻게 해야 할 수 있는가? 이 문제는 우리가 편지를 보낼 때와도 명확히 일치하는 문제이다. 편지를 보내는 Alice는 어딘가에 살고 있는 Bob에게 편지를 보내려고 한다. 어떻게 해야할까? 너무 당연하게도 편지의 내용을 적고, 편지에 Bob이 거주하는 주소(address)를 적어 우체국에 보내주면 우체국에서 Bob이 거주하는 집(Terminal)까지 이 우편물을 배송해준다. Bob은 편지를 받고, 내용을 읽어 어떤 내용인지를 확인하고, 편지를 잘 받았다는 편지를 다시 적는다. 역시 Alice의 주소를 적고 우체국에 보내면 우체국에서 이 편지를 다시 Alice에게 배송해줄 것이다. 컴퓨터의 통신 역시 동일하게 인터..
Spring Framework - 스프링과 Singleton - 1. Singleton
2023. 5. 9. 12:34
Spring & JPA/Spring
들어가며 이전 글에서는 스프링 프레임워크에서 생성하고 관리하는 스프링 DI 컨테이너(이하 스프링 컨테이너)가 어떻게 Bean을 조회하고, 어떠한 문제점이 발생할 수 있으며 그것을 어떻게 해결할 수 있는지에 대해 알아보았다. 이번 포스트에서는 이 Bean들이 스프링 컨테이너 내부에서 어떻게 관리되고 있는지에 대해서 알아본다. Spring Framework - Spring Bean 조회 들어가며 이전 포스트 에서 스프링에서 자체적으로 만들고 관리하는 스프링 DI 컨테이너에 대해 알아보았다. 스프링 DI 컨테이너에서 @Bean으로 등록한 모든 객체들을 관리하는 동시에 DI가 필요 sehun5515.tistory.com 웹 애플리케이션에서 발생하는 DI 컨테이너의 문제 스프링을 사용하지 않은 DI 컨테이너인 A..