본문 바로가기

Learning-log/Spring & JPA55

(모든 개발자를 위한 HTTP 웹 기본 지식) 1-(3) TCP, UDP, (4) PORT (5) DNS - TCP, UDP IP에서 생긴 패킷이 꼬이는 문제를 TCP, UDP로 해결 가능 프로토콜 계층 프로그램이 메시지 생성 소켓 라이브러리를 통해 전달 TCP 정보 생성, 메시지 데이터 포함 IP 패킷 생성, TCP 데이터 포함 IP패킷 정보(출발지, 목적지 IP) -> IP패킷 안에 TCP 정보 담김(출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등) -> IP로 해결 안된 순서 제어 문제 해결 가능 TCP 특징 전송 제어 프로토콜 연결지향 TCP3 way handshake(가상 연결) 데이터 전달 보증 순서 보장 신뢰할 수 있는 프로토콜 현재는 대부분 tcp사용 3way handshake 클라이언트가 syn 전달 서버가 syn + ack 전달 클라이언트가 ack 전달 syn : 전송 요.. 2023. 4. 16.
(모든 개발자를 위한 HTTP 웹 기본 지식) 1-(1) 인터넷 통신, (2) IP(인터넷 프로토콜) - 0. 소개영상 HTTP를 이해하지 못한 상태에서 처음 웹 기술을 공부하면 깊이 있게 원리 파악이 쉽지 않음 개발자는 평생 HTTP기반 위에서 개발해야 하므로 HTTP에 반드시 정리를 해놔야 함. - 인터넷 통신 인터넷에서 컴퓨터 둘은 어떻게 통신할까? IP에 대해 알아야 함. - IP(인터넷 프로토콜) IP 의 역할 지정한 IP 주소에 데이터 전달 패킷이라는 통신 단위로 데이터 전달 IP 패킷 정보 IP패킷이라는 규칙이 있음. 출발지 IP, 목적지 IP, 기타 .. 주소 적듯이 IP패킷을 만듦 IP주소 부여 클라이언트가 패킷 전달 노드들이 서로 패킷을 던지다가 최종적으로 서버에 도달 그 서버는 또 패킷을 만들어서 다시 클라이언트에게 전달. 인터넷의 노드들이 서로 전달을 하다가 클라이언트에 도달 인터넷.. 2023. 4. 15.
(스프링 핵심 원리 - 기본편) 9-(6) request 스코프 예제 만들기 9-(7) 스코프와 Provider (8) 스코프와 프록시 - request 스코프 예제 만들기 gradle에 implement 하기 동시에 여러 HTTP요청이 오면 정확이 어떤 요청이 남긴 로그인지 구분하기 어려움 이럴 때 사용하기 좋은 것이 request 스코프 로그가 남도록 request 스코프를 활용해서 추가기능 개발하기 UUID를 사용해서 HTTP요청 구분해볼것 - 스코프와 Provider 코드보기 package hello.core.common; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.PreDestro.. 2023. 4. 14.
(스프링 핵심 원리 - 기본편) 9-(3) 프로토타입 스코프- 싱글톤 빈과 함께 사용시 문제점 9-(4) 프로토타입 스코프 - Provider로 해결 (5) 웹 스코프 - 프로토타입 스코프 : 싱글톤 빈과 함께 사용시 문제점 스프링 컨테이너에 프로토 타입 빈을 요청하는 예제 클라이언트A addCount() -> 0에서 1로 클라이언트B addCount() -> 0에서 1로 count는 계속 1, 1 코드 package hello.core.scope; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; import javax.annotation.PostConstruct; import javax.annotation.PreDe.. 2023. 4. 12.
(스프링 핵심 원리 - 기본편) 8-(4)애노테이션 @PostConstruct, 9-(1) 빈 스코프란?, (2) 프로토타입 스코프 - 애노테이션 @PostConstruct 이 방법 쓰면 된다! 이 애노테이션의 패키지는 javax => java에서 공식적으로 지원하는 패키지(스프링에 종속적인 기술이 아니라 JSR-250이라는 자바 표준. ) 따라서 혹시 다른 컨테이너를 쓰더라도 그대로 사용 가능 간편함. 최신 스프링에서 권장하는 방법 컴포넌트 스캔과 잘 어울림 단점 : 외부 라이브러리에는 적용 불가. 외부 라이브러리를 초기화, 종료해야 하면 @Bean 기능을 사용하자. - 빈 스코프란? 스프링 빈 : 스프링 컨테이너 시작과 함께 생성, 스프링 컨테이너 종료될 때까지 유지됐다고 배웠음. 이는 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문. 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코.. 2023. 4. 12.
(스프링 핵심 원리 - 기본편) 8-(1) 빈 생명주기 콜백 시작, (2) 인터페이스, (3) 빈 등록 초기화, 소멸 메서드 - 빈 생명주기 콜백 시작 애플리케이션과 DB를 서버 시작 시 미리 연결을 해두거나 애플리케이션 시작 시 필요한 연결을 미리 해두기. 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요. 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정 NetworkClient가 애플리케이션 시작 시점에 connect()를 호출해서 연결을 맺어두어야 하고, 종료되면 disConnect() 를 호출해 연결을 끊어야 함. package hello.core.lifecycle; public class NetworkClient { private String url; public NetworkClient(){ System.out.println("생성자 호출, url = "+.. 2023. 4. 11.