InputStream과 BufferedReader
2022. 1. 18. 15:39
웹 프레임워크 만들며 알게된 것들
입출력에 관해서는 구현할 일이 없어서 한 번도 공부해 본적이 없는 부분인데 항상 궁금하긴 했었다. 문법 조차 몰랐던 부분이다. 이번에 HTTP 요청과 응답을 구현하기 위해 알아야 해서 가볍게 문법만 살펴 보았다. InputStream 1byte만 읽을 수 있다. 아스키 코드로 반환된다. 그래서 아주 불편하다. 파일 전송 시 사용하기는 좋다. public class Test { public static void main(String[] args) throws IOException { InputStream in = System.in; int a = in.read(); System.out.println(a); } } // a -> 입력 // 97 -> 출력 여러 바이트를 읽기 위해서도 마찬가지로 불편하다. p..
멀티 쓰레드란
2022. 1. 18. 15:39
웹 프레임워크 만들며 알게된 것들
프로세스와 쓰레드 프로세스 엑셀, 카카오톡, 멜론 등과 같은 하나의 프로그램이다. 프로세스 안에는 쓰레드가 존재한다. 쓰레드 프로세스 안에 쓰레드가 존재하는데 싱글 스레드, 멀티 스레드로 나뉜다. 싱글 스레드는 실행할 내용이 1가지이고, 멀티 스레드는 2가지 이상인 것을 의미한다. 쓰레드란 카카오톡이 프로세스라면 메시지 전송, 파일 다운로드, 선물 받기 등이 될 수 있다. 3가지는 모두 동시에 실행될 수 있지 않은가? 매시지를 전송한다고, 파일을 다운로드 못받는건 아니다. 이렇게 각자의 기능을 동시에 실행하는 것이 멀티 스레드이다. 메인 스레드가 종료되더라도 작업 스레드가 남아있다면 프로세스는 종료되지 않게 된다. 카카오톡을 종료한다고 해서 파일 전송이 실패하는 건 아니지 않은가? 메인 스레드와 작업 스..
소켓 통신이란
2022. 1. 18. 15:37
웹 프레임워크 만들며 알게된 것들
소켓 프로그래밍이란 소켓을 이용한 통신 프로그래밍이다. 전화기 처럼 통신할 대상들은 소켓이 각자 필요하다. 통신 프로토콜에는 TCP, UDP가 있다. 서버 소켓은 소켓간 통신할 수 있도록 연걸하는 역할이다.(ServerSocket) 이후 통신은 소켓간에 알아서 하게 된다. 마치 전화 교환기(서버 소켓)과 이후에는 전화기 끼리 통화는 하게 되는 것과 같다. ServerSocket : 전화 교환기의 역할이고, 요청(전화)가 올 때 까지 계속 기다린다. Socket : ServerSocket이 연결해준 전화기끼리 입출력(이야기)를 한다. ServerSocket 하나 당 하나의 소켓 통신만 가능하므로 여러 요청을 한 번에 받으려면 그만큼 ServerSocket을 생성하고 쓰레드도 각각 생성 해주어야 한다. 통신..