WEB, WAS, APM/기타 4

[Java] 소켓

소켓(socket)이란 프로세스가의 통신에 사용되는 양쪽 끝단(endpoint)를 의미한다. 프로세스간의 통신을 위해서는 그 무언가가 필요한데, 이것이 소켓이다.항목TCPUDP연결방식연결 기반(connection-oriented)- 연결 후 통신(전화기)- 1:1 통신방식비연결 기반(connectionless-oriented)- 연결없이 통신(소포)- 1:1, 1:n, n:n 통신방식특징데이터의 경계를 구분안함(byte-stream)신뢰성 있는 데이터 전송- 데이터의 전송순서가 보장됨- 데이터의 수신여부를 확인함(데이터 손실 시 재전송)- 패킷을 관리할 필요가 없음UDP보다 전송속도가 느림데이터의 경계를 구분함(datagram)신뢰성 없는 데이터 전송- 데이터의 전송순서가 바뀔 수 있음- 데이터의 수신여..

[Java] 입출력/스트림

참고: Java의 정석 3rd Edition - 남궁 성입출력(I/O)란 Input과 Output의 약자로 입력과 출력을 뜻한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다.바이트기반 스트림: 입출력 단위 1byte 자바에서 입출력을 수행하려면, 즉 어느 한쪽에서 다른 쪽으로 데이터를 전달하려면, 두 대상을 연결하고 데이터를 전송할 수 잇는 무언가가 필요한데 이것을 스트림이라고 부른다. 따라서 스트림이란 데이터를 운반하는데 사용되는 연결통로이다. 스트림은 단방향 통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다. 동시에 수행하려면 입력을 위한 입력스트림과 출력을 위한 출력스트림, 모두 2개의 스트림이 필요하다.먼저 보낸 데이터를 먼저 ..

[Java] Thread(쓰레드)

참고: Java의 정석 3rd Edition - 남궁 성1. 프로세스와 스레드프로세스(process)1) '실행 중인 프로그램(program)'이다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다.2) 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 스레드로 구성되어 있다.3) 작업 공간(공장)스레드1) 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이다.2) 모든 프로세스에는 최소한 하나 이상의 스레드가 존재하며, 둘 이상의 스레드를 가진 프로세스를 '멀티스레드 프로세스(multi-threaded process)'라고 한다.3) 싱글스레드 = 자원 + 스레드, 멀티쓰레드 = 자원 + 쓰레드 + 쓰레드 +...4) 일꾼멀티쓰레딩1) 하나의 프로..

[Java] 동기? 비동기?

자바에서는 기본적으로 동기 처리 방식을 사용한다.# 자바 언어 명세: 메서드 호출의 실행 순서15.12.4. Run-Time Evaluation of Method InvocationAt run time, method invocation requires six steps. First, a target reference may be computed. Second, the argument expressions are evaluated. Third, the accessibility of the method to be invoked is checked. Fourth, the actual code for the method to be executed is located. Fifth, a new activation ..