
들어가며예전에는 3-Way Handshake와 4-Way Handshake를 단순히 면접에 자주 나오는 질문이라고만 생각했다. 그래서 그냥 달달 외우기만 했는데 실제 일을 하다 보니 해당 레이어에서 발생할 수 있는 문제를 겪게 되었다. '어라, 저희 서버에서는 응답을 줬는데요? 왜 받지를 못할까요?' 서로 통신하는 친한(?) 사이에 내가 응답을 줬다고 모른척하면 문제는 해결되지 않는다.커넥션을 연결하고, 데이터를 통신하고, 연결을 종료하는 과정까지 다시 짚어보고 이 과정에서 발생할 수 있는 타임아웃 이슈에 대해 정리해본다. 커넥션 연결 과정 TCP 커넥션 연결 : 3-Way Handshake통신 시작 전에 데이터를 안전하게 보내고 받을 수 있는지 확인하는 작업을 해야 한다. 3번의 패킷을 주고받으며 통신..

OpenCSV dependency 추가 implementation("com.opencsv:opencsv:5.8") CSVReader CSVReader를 사용하는 여러 가지 방법 기본으로 제공하는 생성자 사용 : CSVReader() val reader = CSVReader(Files.newBufferedReader(csvFilePath)) reader.readAll() 빌더 사용 : CSVReaderBuilder() 언제 사용? CSVReader에서 제공하지 않는 구분자를 사용할 경우 ex. .tsv 파일은 기본 CSVReader()를 생성해서 읽을 수 없기 때문에 CSVReaderBuilder의 withCSVParser를 지정해서 CSVReader를 생성해야 한다. val reader = CSVRead..

WebSocket 웹에서 사용하는 소켓 웹소켓은 HTTP와 같이 OSI 모델의 7계층에 위치하며, 4계층의 TCP에 의존한다. 웹소켓 연결 수립 과정(=핸드셰이크)은 HTTP Upgrade 헤더를 사용해 HTTP 프로토콜에서 웹소켓 프로토콜로 변경한다. 연결되면 WebSocket은 양방향 통신이 가능하다. URI 스킴(Scheme) : ws(WebSocket), wss(WebSocket Secure) ex) 채팅, 실시간 주식 차트 WebSocket 핸드셰이크 WebSocket으로 통신하려면 HTTP의 Upgrade 헤더를 사용해 프로토콜을 변경(Protocol Switching)하는 핸드셰이크를 실시한다. Client 요청 GET /chat HTTP/1.1 Host: server.example.com ..

HLS? 2009년 애플에서 개발한 HTTP 기반 적응 비트레이트 스트리밍 통신 프로토콜 일반 웹 서버에서 HTTP를 통해 오디오와 비디오를 전송하여 웹 브라우저, 모바일 기기, 여러 미디어 플레이어, 스트리밍 서버 등 다양한 기기에서 재생할 수 있다. 안전성을 위해 설계되었으며 네트워크 상황에 따라 동적으로 재생을 최적화한다. 동작 방식 미디어 원본 > 인코더 > 스트림 세그멘터 > 웹 서버 > 플레이어 미디어(오디오, 비디오)를 Media encoder로 인코딩한다. 인코딩된 파일은 MPEG-2 transport stream 컨테이너 혹은 fMP4 방식으로 처리되어 Stream segmenter로 전송된다. HLS는 처음에 MPEG-2 Transport Stream(TS) 컨테이너 사용을 지정했다. ..

문자열 인코딩(character encoding)이란 2진법을 사용하는 컴퓨터가 인간이 언어를 일정한 규칙에 따라 2진수로 변환하는 방식을 말한다. 컴퓨터는 0과 1만 알기 때문에 '안녕하세요', 'Hello'라는 문자열을 이해할 수 없다 그래서 컴퓨터가 이해할 수 있는 2진수으로 해당 문자열을 변환하는 작업이 필요하다. 문자열 인코딩은 2진수와 문자가 일대일로 대응하는 규칙인 문자 집합(charset)을 통해 문자열을 2진수로 처리한다. 문자열 인코딩과 문자 집합 UTF-8, UTF-16, EUC-KR, 유니코드, 아스키코드... 등등 여러가지 문자열 인코딩과 문자 집합이라는 개념을 쓰는데 이 두 개념이 헷갈릴 때가 많았다. 실제로도 이를 동의어 취급하기도 하고, 혼용해서 쓰는 경우가 많기에 더 구분이..
- Total
- Today
- Yesterday
- 이모지입력오류
- file
- 코프링
- 콜레이션
- 4Way Handshake
- csv to bean
- 엔티티와값객체
- AOP
- mysql 이모지
- github actions 기초
- opencsv
- TCP연결
- online ddl
- 콜레이션변경
- github actions 구성요소
- 쿼리 파라미터 바인딩
- github actions components
- spring retry
- tcp커넥션
- spring boot3 쿼리 로그
- 도메인구성요소
- CGLIB프록시
- mysql 온라인 ddl
- read timeout
- hibernate 쿼리 로그
- 문자집합변경
- utf8mb3
- jpa 쿼리 로그
- csv 라이브러리
- http커넥션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |