본문 바로가기

자바의 정석 정리

자바의 정석 - 11.1 컬렉션 프레임웍 11.1.1 컬렉션 프레임웍과 핵심 인터페이스 컬렉션 프레임웍이란 데이터 군을 저장하는 클래스들을 표준화할 설계이다. 컬렉션 프레임웍은 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화 되었기 때문에 편리하고 재사용성이 높은 코드를 작성할 수 있다는 장점이 있다. 컬렉션 프레임웍에서는 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고, 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. List : 순서가 있는 데이터의 집합. 데이터의 중복을 허용함 Set : 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않음 Map : 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합. 키의 중복은 허용하지 않으나, 값의 중복은 허용함 💡 Map인터페.. 더보기
자바의 정석 - 16.7 UDP 소켓 프로그래밍 16.7.1 UDP 소켓 프로그래밍 DatagramSocket을 사용하여 데이터를 DatagramPacket에 담아 전송 DatagramPacket는 헤더와 데이터로 구성. 헤더에는 IP 및 Port 저장 16.7.2 Server와 Client 연결 예제 Server public class UdpServer { public void start() throws IOException { // 포트 7777번을 사용하는 소켓을 생성한다. DatagramSocket socket = new DatagramSocket(7777); DatagramPacket inPacket, outPacket; byte[] inMsg = new byte[10]; byte[] outMsg; while(true) { // 데이터를 수신.. 더보기
자바의 정석 - 16.6 TCP 소켓 프로그래밍 16.6.1 TCP 소켓 프로그래밍 순서 서버 프로그램에서 서버소켓을 사용하여 클라이언트의 연결요청 처리 준비 클라이언트 프로그램에서 IP와 포트 정보로 소켓을 생성하여 서버에 연결 요청 서버소켓이 연결요청을 받으면 새로운 소켓을 생성하여 클라이언트 소켓과 연결 서버소켓과 관계없이 서버의 새로운 소켓과 클라이언트 소켓간의 1:1 통신 소켓(socket) - 프로토콜 + IP + 포트. - InputStream과 OutputStream 보유 💡 여러 개의 소켓이 하나의 포트 공유 가능. 서버 소켓은 포트 독점 16.6.2 Server와 Client 연결 예제 Server public class TcpIpServer { public static void main(String args[]) { ServerSo.. 더보기
자바의 정석 - 16.5 소켓 프로그래밍 16.5.1 소켓 프로그래밍 소켓을 이용한 통신 프로그래밍 💡 소켓(socket) : 프로세스간의 통신에 사용되는 양쪽 끝단(endpoint) TCP, UDP 16.5.2 TCP/IP 이기종 시스템간의 통신을 위한 표준 프로토콜 집합 TCP, UDP 모두 TCP/IP 프로토콜에 포함되어 있음 4계층 전송계층(transport layer) 16.5.3 TCP -연결방식 연결기반(connection-oriented) 1:1 통신 특징 데이터의 경계를 구분안함(byte-stream) 데이터의 전송순서 보장 데이터의 수신여부 확인(손실시 재전송) 패킷관리 필요성X 느림 관련 클래스 Socket ServerSocket 16.5.4 UDP -연결방식 비연결기반(connectionless-oriented) 1:1, .. 더보기
자바의 정석 - 16.4 URLConnection 16.4.1 URLConnection URL간의 통신연결을 나타내는 클래스의 최상위 클래스 추상클래스 💡 URLConnection의 구현 클래스는 HttpURLConnection과 JarURLConnection이 있다. method import java.net.URL; import java.net.URLConnection; public class NetworkEx3 { public static void main(String args[]) { URL url = null; String address = "http://news.naver.com/main/ranking/read.nhn?mid=etc&sid1=111&rankingType=" + "popular_day&oid=008&aid=0002862578&da.. 더보기
자바의 정석 - 16.3 URL 16.3.1 URL(Uniform Resource Locator) 여러 서버들이 제공하는 자원에 접근할 수 있는 주소 '프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링#참조' 프로토콜 : 통신규약(http) 호스트명 : 자원을 제공하는 서버이름 포트번호 : 통신에 사용되는 서버의 포트번호(80) 경로명 : 접근하려는 자원이 저장된 서버상의 위치 파일명 : 자원 이름 쿼리(query) : get, post, update, delete, ... 참조(anchor) : 참조 method URL(String spec) URL(String protocol, String host, int port, String file) URL(String protocol, String host, String file) S.. 더보기
자바의 정석 - 16.2 InetAddress 16.2.1 InetAddress Java에서 IP를 다루기 위한 클래스 byte[] getAddress() //IP주소를 byte배열로 반환한다. static InetAddress[] getAllByName(String host) //도메인명(host)을 통해 IP주소를 얻는다. static InetAddess getByAddess(byte[] addr) //byte배열을 통해 IP주소를 얻는다. static InetAddress getByName(String host) //도메인명(host)에 지정된 모든 호스트의 IP주소를 배열에 담아 반환한다. static InetAddress getLocalHost() //지역호스트의 IP주소를 반환한다. String getCanonicalHostName() /.. 더보기
자바의 정석 - 16.1 네트워킹 16.1.1 서버/클라이언트 서버 : 서비스 제공 클라이언트 : 서비스 사용 16.1.2 서버기반 모델, P2P모델 서버기반 모델(server-based model) 안정적인 서비스 제공 공유데이터 관리와 보안 용이 서버구축과 관리 비용이 많이듦 P2P모델(peer-to-peer model) 비용 절감 자원 활용 극대화 자원 관리 어려움 보안 취약 16.1.3 IP주소 IPv4는 4byte의 정수로 구성 구분자 '.' (192.168.10.100) 서브넷 마스크(Subnet Mask)와의 & 연산으로 네트워크 주소 연산 가능 192.168. 10.100 -> IP &)255.255.255. 0 -> 서브넷 마스크 ------------------ 192.168. 10. 0 -> 네트워크 주소 /* 네트워.. 더보기