이쁘게 그림도 넣고 설명하고 싶지만 지금은 공부만 하는걸로도 시간이 부족하다.. 일단 설명만,,
김영한의 스프링 핵심 원리 기본편
20240201
- 컴포넌트 스캔과 의존관계 자동 주입
- @Configuration : 싱글톤 보장
- 수동 빈등록 : @Bean
- 자동 빈등록 : @ComponentScan, @Component
- @Autowired : 의존관계 주입
- 의존관계 주입 방법 4가지 : 생성자 주입, setter 주입, 필드 주입, 일반 메서드 주입
20240204
- 스프링 빈으로 등록되지 않은 객체에 대한 @Autowired : required=false, @Nullable, Optional<>
- 동일한 type의 빈을 여러개 찾은 경우 : @Autowired 필드명, @Quilifier, @Primary
- 빈 생명주기 콜백 : 초기화 콜백, 소멸전 콜백
1) 인터페이스 InitializingBean, Disposablebean
2) @Bean(initMethod="init", destroyMethod="close")
3) @PostConstruct, @PreDestroy
- 빈 스코프 : 빈이 존재할 수 있는 범위
1) 싱글톤 스코프 : 일반적인 싱글톤 컨테이너
2) 프로토타입 스코프 : 매 호출마다 빈생성, 의존관계 주입, init.
3) 동시 사용시 Provider 사용
김영한의 모든 개발자들을 위한 HTTP 웹 기본 지식
20240213
- IP(Internet Protocol) : 출발지ip, 목적지ip, 내용, 그외 포함하여 패킷을 인터넷 노드통해 전달
- IP 프로토콜의 한계
- 비연결성(상대 유무, 서비스 가능 여부 ex 컴터 꺼짐 여부 미판단)
- 비신뢰성(중간에 패킷이 손실되면? 순서가 바뀌면?)
- 프로그램 구분(동시에 여러 프로그램 ex 게임, 뮤직플레이어, 동영상 동작중일때 누가 받아야하는가)
20240214
- TCP(Transmission Control Protocol) 전송 제어 프로토콜
ㄱ) 연결지향. TCP 3way handshake. 미리 연결
ㄴ) 데이터 전달 보증. 데이터 받았다고 대답.
ㄷ) 순서 보장
- UDP(User Datagram Protocol)
ㄱ) 연결지향, 데이터 전달 보증, 순서보장 X
ㄴ) 단순하고 빠름
ㄷ) IP 기능에 +PORT(앱 구분용) +체크섬(검증용) 정도 추가됨
- PORT : 여러앱(게임, 채팅, 영상 등) 과 동시 통신 시, 받은 패킷을 구분하기 위한 통로
- DNS(Domain Name System) : 기억하기 어려운 IP 대신 사용하는 닉네임. DNS서버에 (도메인명 : IP) 매핑 테이블이 있음
- URI(Uniform Resource Identifier) 통합 자원 식별자 는 포함한다. URL(Locator, 위치) 과 URN(Name, 이름) 을.
- HTTP(1.1 기준)
ㄱ) 클라이언트-서버 구조
ㄴ) Stateless, 무상태. 이전 정보 저장X. scale out 유리
ㄷ) 비연결성. TCP/IP는 계속 연결 유지. 응답하고 연결을 바로 끊기때문에 수천명이 이용해도 동시처리수 적음.
- HTTP 메시지 : 시작라인, 헤더, 공백라인, 바디
- HTTP 메소드
ㄱ) GET : 조회
ㄴ) POST : 등록
ㄷ) PUT : 전체 바꾸기. 없으면 생성
ㄹ) PATCH : 부분수정
ㅁ)DELETE : 삭제
- HTTP 메소드 속성
ㄱ) 안전(Safe) : 호출해도 리소스 변경X. GET
ㄴ) 멱등(Idempotent) : 몇번 호출하든 결과 같음. GET, PUT, DELETE
ㄷ) 캐시가능(Cacheable) : GET (POST, PATCH도 가능은 하나 바디 내용까지 신경써야해서 거의 캐시하지 않음)
'SpringBoot' 카테고리의 다른 글
[SpringBoot] 웹서버, WAS, JSP, Servlet, MVC 패턴, MVC 프레임워크, Front Controller (0) | 2024.03.18 |
---|---|
[SpringBoot] API 상태코드, HTTP 헤더, 콘텐츠 네고시에이션, 쿠키, 캐시 (0) | 2024.03.18 |
@InjectMocks 한 객체에 given()을 주면 어떻게 될까? (0) | 2023.11.30 |
REST API request별 swagger3.0.0 파라미터 명세 (0) | 2023.11.29 |
@RequiredArgsConstructor 와 @AllArgsConstructor (0) | 2023.11.15 |
댓글