스프링 강의 필기

스프링 강의 필기/HTTP 웹 지식 정리

3) HTTP 기본

HTTP(HyperText Transfer Protocol) 요즘은 모든 것들이 HTTP로 전송이 된다. HTML, TEXT 부터 시작해서 음성,영상,이미지, json, API 등등 거의 모든 형태의 데이터들이 전송 가능하다. HTTP도 버전들이 있는데, HTTP1.1과 2에선 TCP가, HTTP3에선 UDP로 되어있다. 현재는 HTTP1.1을 주로 사용하고 있다 정도로만 알면 된다. HTTP의 특징 클라이언트 서버 구조 무상태 프로토콜(stateless), 비연결성 HTTP 메시지 단순함, 확장 가능성 클라이언트 서버 구조 무상태 프로토콜(stateless) 서버가 클라이언트의 상태를 보존하지 않는다. 서버 확장성이 높다(스케일 아웃) 클라이언트가 추가 데이터를 전송해야 한다는 단점이 있다. 이렇게만 ..

스프링 강의 필기/HTTP 웹 지식 정리

2) URI과 웹 브라우저 요청 흐름

URI는 로케이터(Locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다. URI, URL, URN을 구분해보자 URI 안에 URL, URN이 있다. URI U : Uniform. 리소스 식별하는 통일된 방식 R : Resource. 자원, URI로 식별할 수 있는 모든 것을 지칭한다. I : Identifier. 식별 정보 URN의 경우 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않아있다. 그래서 URN은 거의 사용하지 않고 URI = URL로 동어치환해서 사용한다.

스프링 강의 필기/HTTP 웹 지식 정리

1) 인터넷 네트워크

출처)https://inf.run/DnHo 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런... www.inflearn.com 인터넷 통신 IP(Internet Protocol) TCP, UDP PORT DNS 클라이언트와 서버가 바로 직통으로 연결되어있으면 문제가 되지 않는다. 하지만 물리적으로 거리가 먼 통신을 하기 위해서는 인터넷이라는 중간 다리를 거쳐야한다. 하지만 인터넷은 신이 아니다. 즉, 인터넷도 여러 노드끼리 연결되어있다. 경유지가 많다는 소리다. *IP(인터넷 프로토콜) 각각의 컴퓨터엔 고유의 IP 주소가 있다. 인터넷 프로토콜은 지정한 IP 주소에 패킷(Pac..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 7 - (2). 의존관계 자동 주입

* 조회한 빈이 모두 필요할 때, List, Map 의도적으로 해당 타입의 스프링 빈이 모두 필요할 때가 있다. ex. 할인 서비스를 제공하는데, 클라이언트가 할인 종류(rate, fix)를 선택할 수 있다 가정. public class AllBeanTest { @Test void findAllBean() { ApplicationContext ac = newAnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Member(1L, "userA", Grade.VI..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 7 -(1) 의존관계 자동 주입

의존관계 주입에는 4가지 방법이 있다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 생성자를 통해서 의존 관계를 주입하는 방법이다. 생성자 호출 시점에서 딱 한번만 호출된다. 불변, 필수 의존관계에 사용된다는데 어떤 의미인지 설명을 들으며 이해해보자. @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, Disc..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 6. 컴포넌트 스캔

지금까지 @Bean을 붙여서 스프링 빈을 넣어주었다. 하지만 실무에서 이 Bean을 붙여줘야할 것들이 수십, 수백개가 된다면? for문돌려서 할 수 있는 것도 아니잖아.. 그렇기에 스프링에서는 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 Component Scan 기능을 제공한다. @Configuration @ComponentScan public class AutoAppConfig{ } Component Scan을 사용하려면 @ComponentScan을 붙여주면 된다. ComponentScan은 @Component이 붙은 클래스를 스캔해서 스프링 빈으로 넣어주는 기능을 한다. (@Configuration 소스코드를 열어보면 @Component이 붙어있다. 즉, Configuration도 Compon..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션 5 - 싱글톤 컨테이너

보통 웹 애플리케이션은 여러 고객이 동시에 요청을 한다. public class SingletonTest{ @Test void pureContainer(){ AppConfig appConfig = new AppConfig(); // 1 조회 MemberService memberService1 = appConfig.memberService(); //2 조회 MemberService memberService2 = appConfig.memberService(); // memberService1 != memberService2 assertThat(memberService1).isNotSameAs(memberService2); } } 스프링 아닌 순수한 DI 컨테이너인 AppConfig는 요청을 할 때마다 새로운..

스프링 강의 필기/스프링 핵심 원리 - 기본편

섹션4 - 스프링 컨테이너와 스프링 빈

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스이다. 컨테이너에 있는 모든 빈을 조회해보자. class ApplicationContextInfoTest{ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("모든 빈 출력") void findAllBean(){ String[] beanDefinitionNames = ac.g..

void_melody
'스프링 강의 필기' 카테고리의 글 목록 (3 Page)