개발
-
(HTTP) 2 - 전송계층 (TCP, UDP)개발/HTTP 2024. 10. 30. 14:42
■ 인터넷 프로토콜 스택 4계층 인터넷 프로토콜은 스택은 사진과 같이 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 인터페이스 계층 4가지로 구성돼 있다. 크게 우리는 사용하는 애플리케이션 (웹 브라우저, 채팅 프로그램, 게임) OS(리눅스, 윈도우, 맥), 네트워크 인터페이스(LAN 드라이버, LAN 장비) SOCKET 라이브러리를 통해서 OS 계층 Hello, world 메세지를 넘긴다. OS 계층에서는 TCP 정보를 생성해서 씌우고 이를 IP 에 전달한다. IP 와 관련된 데이터들로 다시 감싸져 IP 패킷이 생성된다. 네트워크 인터페이스를 통해서 LAN 카드로 나갈 때 Ethernet frame 포함돼서 나간다. ※ Ethernet frame : LAN 카드에 포함된 Mac 주소 (물..
-
(HTTP) 1 - IP (인터넷 프로토콜)개발/HTTP 2024. 10. 30. 13:42
■ IP 란?인터넷에서 컴퓨터끼리 통신하기 위해서는 복잡한 인터넷 망을 거쳐야 한다. 따라서 이를 해결해 줄 수 있는 것이 바로 IP 인터넷 프로토콜 이다. 인터넷 망으로 다른 사람에게 메세지를 보내기 위해서는 규칙이 필요한데 이게 바로 IP 이다. 보내는 클라이언트도 IP 주소가 필요하고,받는 서버도 IP 주소가 필요하다. ■ IP 역할- 지정한 IP 주소(IP Address) 에 데이터 전달- 패킷(Packet) 이라는 통신 단위로 데이터 전달 메세지 보낼 때 IP 패킷의 규칙이 있다. 출발지 IP(나의 아이피), 목적지 IP(전달 받고자 하는 곳의 IP) 로 IP 패킷을 만든다. 그러면 전송된 패킷은 출발지와 목적지를 가지고 있으며,규약에 의해 해당 패킷의 출발, 목적지 파악이 가능하..
-
(스프링 기본) 31 - 웹 스코프 + 프록시개발/Spring 2024. 10. 30. 10:19
* 웹 스코프 특징- 웹 환경에서만 동작한다.- 스프링이 해당 스코프의 종료 시점까지 관리한다. -> 종료 메서드 호출 ■ 웹 스코프 종류 - request : HTTP 요청 하나가 들어오고 나갈 때까지 유지되는 스코프각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리- session : HTTP Session 과 동일한 생명주기 가지는 스코프- application : ServletContext 와 동일한 생명주기 가지는 스코프- websocket : 웹 소켓과 동일한 생명주기 가지는 스코프 ■ 예제 실습//web 라이브러리 추가implementation 'org.springframework.boot:spring-boot-starter-web' 웹환경 구동을 위해 gradel 에 다음 내용을 ..
-
(스프링 기본) 30 - 빈 스코프 (싱글톤, 프로토 타입 - ObjectProvider, Provider)개발/Spring 2024. 10. 29. 15:34
이전까지는 스프링 빈의 경우스프링 컨테이너 시작과 함께 시작 -> 스프링 컨테이너 종료 까지 유지된다고 배웠다.이는 기본적으로 스프링 빈이 싱글톤 빈으로 생성되기 때문인데,스코프란 빈이 존재할 수 있는 범위를 뜻한다. * 스프링 스코프- 싱글톤 : 스프링 컨테이너 시작과 종료까지 (가장 넓은 범위)- 프로토타입 : 프로토타입 빈의 생성 의존관계 주입까지만 관여하고 더는 관리하지 않음 (짧음) * 웹 관련 스코프- request : 웹 요청이 들어오고 나갈때 까지 유지- session : 웹 세션이 생성되고 종료될 때까지 유지- application : 웹의 서블릿 컨텍스와 같은 범위로 유지 ■ 프로토타입 스코프 프로토타입은 싱글톤과 달리 새로운 인스턴스 생성해서 반환한다. 빈을 스프링 컨테이너에 요청하..
-
(스프링 기본) 29 - 어노테이션 @PostConstruct, @PreDestroy개발/Spring 2024. 10. 29. 11:40
@PostConstructpublic void init() { System.out.println("NetworkClient.init"); connect(); call("초기화 연결 메세지");}@PreDestroypublic void close() { System.out.println("NetworkClient.close"); disconnect();} @PostConstruct : 생성된 후에@PreDestroy : 종료되기 전에 글자 그대로 이해하면 쉽다. jakarta 로 java 단에서 공식적으로 지원하는 어노테이션이다. 최신 스프링에서 가장 권장하는 방법어노테이션만 붙이면 된다.패키지가 jakarta 로 돼 있어 스프링 종속 기술이 아니라 다른 컨테이너에서도 동작한..
-
(스프링 기본) 28 - 빈 등록 초기화, 소멸 메서드 (initMethod, destroyMethod)개발/Spring 2024. 10. 29. 11:33
@Configurationstatic class LifeCycleConfig { @Bean(initMethod = "init", destroyMethod = "close") public NetworkClient networkClient() { NetworkClient networkClient = new NetworkClient(); networkClient.setUrl("http://hello-spring.dev"); return networkClient; }}public void init() { System.out.println("NetworkClient.init"); connect(); call("초기화 연결 메세지");}publi..
-
(스프링 기본) 27 - 인터페이스 InitializingBean, DisposableBean개발/Spring 2024. 10. 29. 11:22
public class NetworkClient implements InitializingBean {public interface InitializingBean { void afterPropertiesSet() throws Exception;} 다음과 같이 코드에서 InitializingBean 인터페이스를 구현하도록 만든다. InitializingBean 에는 afterPropertiesSet 이 존재하는데 이는 의존 관계 주입이 끝나면 호출하겠다. 는 뜻이다. @Overridepublic void afterPropertiesSet() throws Exception { connect(); call("초기화 연결 메세지");} 다음과 같이 오버라이딩을 통해 연결과 콜 처리를 진행한다. p..
-
(스프링 기본) 26 - 빈 생명주기 콜백개발/Spring 2024. 10. 29. 10:58
데이터베이스 커넥션 풀(애플리케이션 서버랑 DB 랑 미리 연결해 둠), 네트워크 소켓,애플리케이션 종료 시점에 연결을 모두 종료하는 작업 진행하려면 객체 초기화 및 종료 작업 필요package hello.core.lifecycle;public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); connect(); call("초기화 연결 메세지"); } public void setUrl(String url) { this.url = url; } //서비스 시작시 호출 publi..