728x90
반응형
[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 2
[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 2
[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 1 [Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 1[Servlet] Servlet Listener란? 웹 애플리케이션의 생명주기 관리하기 [Servl
crushed-taro.tistory.com
1. Network
1. Network 개요
1. Network란
- 여러 대의 컴퓨터를 통신 회선으로 연결한 것이다.
- (홈 네트워크, 지역 네트워크, 인터넷 등이 해당된다.)
2. Server & Client
- 서버와 클라이언트는 네트워크로 연결된 컴퓨터 간의 관계를 역할로 구분한 개념이다.
- 서버는 서비스를 제공하는 컴퓨터(혹은 프로그램)로, 클라이언트의 연결을 수락하고 요청 내용을 처리하여 응답을 보내는 역할이다.
- 클라이언트는 서비스를 받는 컴퓨터(혹은 프로그램)로, 네트워크 데이터를 필요로 하는 모든 애플리케이션에 해당한다.
- 클라이언트는 서버에 연결 요청을 하려면 IP주소와 Port 번호를 알아야 한다.
- IP 주소는 네트워크 상에서 컴퓨터를 식별하는 번호이며, 네트워크 어댑터(랜카드)마다 할당된다.
- Port는 같은 컴퓨터 내에서 프로그램을 식별하는 번호이다.
2. Java Network
1. Inet Class
- IP주소를 다루기 위해 Java에서 제공하는 Class이다.
- 주요 method는 다음과 같다.
Method 명 | 설명 |
byte[] getAddress() | IP주소를 byte배열로 반환 |
static InetAddress[] getAllByName(String host) | 도메인명에 지정된 모든 호스트의 IP주소를 배열로 반환 |
static InetAddress getByAddress(byte[] addr) | byte 배열로 IP주소 반환 |
static InetAddress getByName(String host) | 도메인명으로 IP주소 반환 |
String getCanonicaHostName() | FQDN(Full Qualified Domain Name) 반환 |
String getHostAddress() | 호스트의 IP주소 반환 |
String getHostName() | 호스트의 이름 반환 |
static InetAddress getLocalHost() | 지역호스트의 IP주소 반환 |
boolean isMulticastAddress() | IP주소의 멀티캐스트 주소 여부 반환 |
boolean isLoopbackAddress() | IP주소의 loopback 주소(127.0.0.1) 여부 반환 |
2. Socket Programming
1. Socket Programming이란
- 소켓을 이용한 통신 프로그래밍이다.
- 소켓(Socekt)이란 프로세스 간 통신에 사용되는 양쪽 끝 단을 의미한다.
2. Socket Programming 프로토콜 종류
- TCP
- 연결 지향적 프로토콜로, 서버가 수락해야 데이터 송수신이 가능하다. (Like 전화)
- 데이터 전송 속도가 느리지만 정확하고 안정적으로 전달할 수 있다.
- UDP
- 비연결 지향적 프로토콜로, 연결 없이 일방적으로 데이터를 전달한다. (Like 택배)
- 데이터 전송 속도가 빠르지만 신뢰성 없는 데이터를 전송한다.
3. TCP Socket Programming
- 클라이언트와 서버 간의 1:1 소켓 통신을 한다.
- 서버가 먼저 실행되어 클라이언트의 요청을 기다려야 하고, 서버용 프로그램과 클라이언트용 프로그램을 따로 구현해야 한다.
- 자바에서는 TCP 소켓 프로그래밍을 위해 java.net패키지에서 ServerSocket과 Socket Class를 제공한다.
- 서버용 TCP 소켓 프로그래밍 순서
- 서버의 port 번호를 정한다.
- 서버용 Socket 객체를 생성한다.
- 클라이언트 쪽에서 접속 요청이 올 때까지 대기한다.
- 접속 요청이 오면 요청 수락 후, 해당 클라이언트에 대한 Socket 객체를 생성한다.
- 연결된 클라이언트와 입출력 stream을 생성한다.
- 보조 stream을 통해 성능을 개선할 수 있다.
- stream을 통해 읽고 쓰기를 진행한다.
- 통신을 종료한다.
- 클라이언트용 TCP 소켓 프로그래밍 순서
- 서버의 IP 주소와 서버가 정한 port번호를 매개변수로 하여 클라이언트용 Socket 객체를 생성한다.
- 서버와의 입출력 Stream을 오픈한다.
- 보조 Stream을 통해 성능을 개선할 수 있다.
- Stream을 통해 읽고 쓰기를 진행한다.
- 통신을 종료한다.
- TCP upgrade → HTTP
- TCP에서 업그레이드된 것이 HTTP이다.
- 몇 번째 요청인지 순번까지 포함하여 보내고, 받는 쪽에서 재조합해 사용한다.
4. UDP Socket Programming
- UDP는 비연결 지향이므로 연결 요청을 받아 줄 서버 소켓이 필요 없다.
- Java.net 패키지에서 제공하는 두 개의 DatagramSocket간에 DatagramPacket으로 변환된 데이터를 주고 받는다.
728x90
반응형
'이것 저것 개발 공부 > Servlet' 카테고리의 다른 글
[Servlet] Servlet에서 Thread가 어떻게 작동하는가? 웹 개발자를 위한 완벽 가이드 (0) | 2025.05.26 |
---|---|
[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 2 (0) | 2025.05.24 |
[Servlet] Servlet과 JSP로 구현하는 MVC 패턴 | Java 웹 구조의 이해 - 1 (0) | 2025.05.22 |
[Servlet] Servlet Listener란? 웹 애플리케이션의 생명주기 관리하기 (0) | 2025.05.20 |
[Servlet] Servlet Filter 구현 예제와 실전 적용 방법 (0) | 2025.05.15 |