네트워크! 시작!!


- TCP/IP 표준 모델

Application Layer(클라이언트) - 응용프로그램, HTTP, FTP, SMTP, POP3등이 해당된다.

Transfer Layer(운영체제) - 데이터를 패킷화시킨다.(잘개쪼갠다), 패킷에 해더를 추가한다. 해더에는 인덱스와 포트를 기록된다. 패킷화 시키는 소프트웨어이다. 대표적인 프로토콜로 TCP, UDP가 있다. 

Network Layer(운영체제) - 어디로 가야할지(IP)정보를 기록한 해더를 추가한다.

DataLine Layer(랜카드) - 비트열처리

Physical Layer(랜카드) - 비트를 전기신호로 변환해준다.


전송계층에 연결하기위한 객체 "socket"이 필요하다


응용계층에서 사용하는 응용 프로토콜(http, ftp, smtp, pop3등)이라고 부른다.


-  TCP/UDP 프로토콜 특징

TCP - 신뢰할수 있는 연결 지향 스트림 통신 프로토콜, 수신자에게 바이트가 도착하는것을 책임진다. 전화와 비슷하다.

UDP - 신뢰할수없는 비 연결지향 데이터그램 통신 프로토콜, 수신자에게 바이트를 보내고 연결은 마친다. 우편물과 비슷하다. 장점은 속도가 빠르다. 동영상 스트리밍을 udp로 만들어진다. 


- TCP/IP 기반 자바 네트워크 프로그래밍 절차

1. IP주소지정(InetAddress클래스)

2. TCP로 연결(Socket클래스)

3. 소켓을 하용하여 스트림 생성

4. 스트림을 통한 데이터의 교환


- HTTP(Hyper Text Transfer Protocal) 소개

TCP/IP 기반 대표적인 응용 프로토콜의 하나로 웹 클라이언트(브라우저)와 웹 서버가 상호 통신하기 위해 사용하는 하이퍼텍스트(html 텍스트) 전송규약이다.

구조화된 텍스트 데이터를 송수신한다.

웹 서버와 웹 클라이언트 간에 연결상태를 유지하지않는 특징을 가진다.

웹(World Wide Web) - 인터넷 상에서 TCP/IP 기반 HTTP 응용 프로토콜을 준수하는 웹 클라이언트와 웹 서버 간의 데이터 통신





'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 3주차 2일 (7주)  (0) 2015.08.18
8월 2주차 4일 (6주)  (0) 2015.08.13
8월 2주차 2일 (6주)  (0) 2015.08.11
8월 2주차 1일 (6주)  (0) 2015.08.10
8월 1주차 5일 (5주)  (0) 2015.08.07
Posted by moyaiori
,

객체 스트림!!


3가지 스트림중에 하나


메모상의 자바 객체(Object)를 파일 또는 네트워크로 쓰거나 읽을 수 있도록 지원하는 바이트 스트림 클래스이다.

내부적으로는 바이트 스트림 클래스이다.


바이트/문자 스트림으로 데이터를 저장하거나 송수신 할려면 데이터파일포맷(네트워크 프로토콜) 설계에 시간이 필요하다. 


Serializable 인터페이스를 구현한 모든 객체가 가능하다. Serializable은 아무것도 구현되어있지않은 마킹인터페이스이다. 


표준 API의 대부분은 Serializable이 implement되어있기때문에 파일로 저장할 수 있다.


입출력시 객체가 내부적으로 참조되는객체들(상속, hsa a) 역시 함께 전송된다. 하지만 객체가 가지고있는 메서드는 입출력되지 않는다. 순수하게 속성만 저장된다.


- 객체 직렬화(마샬링 : Marshaling)

객체를 바이트스트림으로 입출력할 수 있도록 연속적인 바이트 흐름으로 변환하는 과정이다. 마샬링을 담당하는 ObjectOutputStream에 의해 지원된다.

자바 기본자료형(7가지), 자바객체(java.io.Serializable) 인터페이스를 구현한 객체만 지원한다.

instance of 로 구분하여 파일로 저장할때 사용한다.

위 과정을 반대로 하는것을 객체 역직렬화(언마샬링 : UnMarshaling, ObjectInputStream에 의해 지원된다.


객체의 목록을 저장할때는 콜렉션 객체에 넣어서 저장하는 형태로 사용한다.


객체 속성중 중요한속석(비밀번호) 직렬화 대상에서 제외할 경우 transiect를 사용 


- 정규 표현식(Regular Expression)

정규표현식이란 일정한 패턴(규칙)을 가진 문자열을 표현하는 형식(구문)을 말한다.

메타문자의 조합(패턴)으로 다양한 문자열을 표현할 수 있다.


POSIX와 JAVA에서의 문자클래스는 다르게사용한다.

\p 는 POSIX를 나타낸다.


'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 2주차 4일 (6주)  (0) 2015.08.13
8월 2주차 3일 (6주)  (0) 2015.08.12
8월 2주차 1일 (6주)  (0) 2015.08.10
8월 1주차 5일 (5주)  (0) 2015.08.07
8월 1주차 4일 (5주)  (0) 2015.08.06
Posted by moyaiori
,

계좌관리 영속성 처리!!


기존의 모든 데이터관리는 모두 메모리상에서 관리 되고있다.

입출력을 통해서 파일에 데이터를 기록한다.


String의 종류

1. 바이트 - 1바이트 단위

2. 문자(2바이트) - 인코딩, 디코딩

3. 객체(Object) 스트림 - 아직 안배움


하지만 객체 스트림이 필요하다. 앞에껄론느 못하는건 아니지만 어렵다.


랜덤엑세스파일 클래스가 아주 최적화되어있다.


문자스트림을 계좌 시스템에 쓸수없다. 바이트스트림을 사용해야한다.

하지만 단방향이기때문에 블락에 걸린다.(스레드)

그래서 randomaccesefile 클래스를 사용한다. 양방향 입출력이 가능하다.

이름대로 임의접근이 가능하다. 그래서 버퍼드 인웃, 아웃풋의 기능을 가지고있다.

바이트 스트림에 관한 모든 기능을 가지고있다.


스트림의 모든 기능을 수집해서 제공한다. 거의 유틸클래스라고 볼수 있다.

제약사항 - 오직 파일에만 엑세스할 수 있다. 고로 다른형식의 접근이 필요한경우 부적절할수 있다. 


저장된 파일 맨 앞에 4바이트 레코드수의를 저장하는 영역으로 사용한다.



AMS 메모리에 저장하는것 파일 저장으로 바꿈











'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 2주차 3일 (6주)  (0) 2015.08.12
8월 2주차 2일 (6주)  (0) 2015.08.11
8월 1주차 5일 (5주)  (0) 2015.08.07
8월 1주차 4일 (5주)  (0) 2015.08.06
8월 1주차 3일 (5주)  (0) 2015.08.05
Posted by moyaiori
,