9주차
현업에서 자주 세미나를 진행한다고 하셨다.
면접볼때 질문에 대해서 관심있는 키워드 들이 꼭 나와야한다. 그 이상의 내용이 나오지 않으면 공부가 안되었다고 판단한다고 하셨다.
학우들과 대화할때, 관련된이야기를 서로 설명하고 옆에분이랑 말해보라고 하셨다.
간단한 네트워크에 대한 서버, 클라이언트, IP주소, Port에 대해 배우고, TCP/IP 통신에 대해서 조사 후 발표하는 시간을 가졌다.
배운 점
네트워크
네트워크: 여러 컴퓨터들을 통신 회선으로 연결한 것
LAN: 가정, 회사, 건물, 특정 영역에 존재하는 컴퓨터를 연결한 것
WAN: LAN을 연결한 것 = 인터넷
서버와 클라이언트
서버: 서비스를 제공하는 프로그램을
클라이언트: 서비스를 요청하는 프로그램
먼저 클라이언트가 서비스를 요청하고, 서버는 처리결과를 응답으로 제공
IP 주소
IP 주소: 네트워크 어댑터(LAN 카드)마다 할당되는 컴퓨터의 고유한 주소
ipconfig(윈도우), ifconfig(맥OS ) 명령어로 네트워크 어댑터에 어떤 IP 주소가 부여되어 있는지 확인
프로그램은 DNS를 이용해서 컴퓨터의 IP 주소를 검색
Port 번호
운영체제가 관리하는 서버 프로그램의 연결 번호. 서버 시작 시 특정 Port 번호에 바인딩
포트땜에 다양한 서비스들이 하나의 컴퓨터에서 동작할 수 있다.
실제 구멍은아니고 논리적인
포트 0~1023: 시스템포트 사용하지마
3306: mysql
자바 어플리케이션에다가 객체에 쿼리문을 포트에 담아서 보냄. DBMS는 직렬화 한다.
1.길 만들기 JDBC 드라이버 연동
2.클라이언트 프로그램에서 쿼리문 작성
네트워크 어댑터 :네트워크 카드
논리적인 포트를 OS가 관리한다.
www : 서비스
InetAddress
자바는 IP 주소를 java.net 패키지의 InetAddress로 표현
로컬 컴퓨터의 InetAddress를 얻으려면 InetAddress.getLocalHost() 메소드를 호출
InetAddress ia = InetAddress.getLocalHost();
getByName ( ) 메소드는 DNS에서 도메인 이름으로 등록된 단 하나의 IP 주소를 가져오고, getAllByName() 메소드는 등록된 모든 IP 주소를 배열로 가져옴
InetAddress 객체에서 IP 주소를 얻으려면 getHostAddress () 메소드를 호출
String ip = InetAddress.getHostAddress();
public class InetAddressExample {
public static void main(String[] args) {
try {
InetAddress local = InetAddress.getLocalHost();
System.out.println("내 컴퓨터 IP 주소: " + local.getHostAddress());
InetAddress[] iaArr = InetAddress.getAllByName("www.naver.com");
for(InetAddress remote : iaArr) {
System.out.println("www.naver.com IP 주소: " + remote.getHostAddress());
}
} catch(UnknownHostException e) {
e.printStackTrace();
}
}
}
TCP
TCP는 연결형 프로토콜로, 상대방이 연결된 상태에서 데이터를 주고 받는 전송용 프로토콜
클라이언트가 연결 요청을 하고 서버가 연결을 수락하면 통신 회선이 고정되고, 데이터는 고정회선을 통해 전달.
TCP는 보낸 데이터가 순서대로 전달되며 손실이 발생하지 않음
ServerSocket은 클라이언트의 연결을 수락하는 서버 쪽 클래스이고, Socket은 클라이언트에서 연결 요청할 때와 클라이언트와 서버 양쪽에서 데이터를 주고 받을 때 사용되는 클래스
회고
주제는 TCP/IP 통신과 관려하여 도메인주소를 입력한 후 일어나는 과정이었다. 자료조사를 하는 시간을 가진 후 오후에 발표를 했는데
주제에대한 자료 준비도 서툴렀고 발표도 서툴렀다. 연습이필요하다. 근데 발표 넘무 무섭다. 근데 해야된다. 발표내용은 따로 정리해야겠다.
'신세게 - Java 공부' 카테고리의 다른 글
10주차 배운점 느낀점 - Linux, 명령어 (10) | 2024.10.07 |
---|---|
9주차 배운점 느낀점 - JDBC, (INSERT, DELETE, UPDATE, SELECT) (7) | 2024.10.07 |
9주차 배운점 느낀점 - 입출력스트림, 보조스트림, 직렬화 역직렬화 (3) | 2024.10.07 |
9주차 배운점 느낀점 - 이상현상, 함수 종속성, 정규화 (3) | 2024.10.07 |
8주차 배운점 느낀점 - 저장 프로그램, PROCEDURE, CURSOR, FUNCTION, 데이터 모델링 (10) | 2024.10.07 |