본문 바로가기 메뉴 바로가기

개발 기록

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

개발 기록

검색하기 폼
  • 정리 (30)
    • Web (5)
    • Spring (5)
    • Java (7)
      • 기초 (5)
      • 자료구조 (1)
    • Kotlin (0)
    • Architecture (1)
    • Infra (3)
    • Test (0)
    • Js (3)
    • Database (2)
    • Error (1)
    • Seminar (3)
  • 방명록

Web (5)
커넥션 연결 과정 및 타임아웃 알아보기 (feat. 와이어샤크)

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

Web 2025. 2. 16. 21:18
OpenCSV를 사용해서 CSV 파일 읽기

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..

Web 2023. 11. 17. 21:01
WebSocket, SockJS, STOMP에 대해 알아보자

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 ..

Web 2021. 10. 27. 15:33
HTTP Live Streaming(HLS) 개념과 적용 예제

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

Web 2021. 8. 2. 23:22
문자열 인코딩(character encoding) : ASCII, EUC-KR, UTF-8

문자열 인코딩(character encoding)이란 2진법을 사용하는 컴퓨터가 인간이 언어를 일정한 규칙에 따라 2진수로 변환하는 방식을 말한다. 컴퓨터는 0과 1만 알기 때문에 '안녕하세요', 'Hello'라는 문자열을 이해할 수 없다 그래서 컴퓨터가 이해할 수 있는 2진수으로 해당 문자열을 변환하는 작업이 필요하다. 문자열 인코딩은 2진수와 문자가 일대일로 대응하는 규칙인 문자 집합(charset)을 통해 문자열을 2진수로 처리한다. 문자열 인코딩과 문자 집합 UTF-8, UTF-16, EUC-KR, 유니코드, 아스키코드... 등등 여러가지 문자열 인코딩과 문자 집합이라는 개념을 쓰는데 이 두 개념이 헷갈릴 때가 많았다. 실제로도 이를 동의어 취급하기도 하고, 혼용해서 쓰는 경우가 많기에 더 구분이..

Web 2020. 12. 13. 12:06
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 쿼리 파라미터 바인딩
  • 4Way Handshake
  • utf8mb3
  • 이모지입력오류
  • 코프링
  • 콜레이션변경
  • 문자집합변경
  • TCP연결
  • 엔티티와값객체
  • file
  • github actions 기초
  • hibernate 쿼리 로그
  • AOP
  • csv to bean
  • github actions components
  • mysql 온라인 ddl
  • csv 라이브러리
  • online ddl
  • 콜레이션
  • spring retry
  • 도메인구성요소
  • jpa 쿼리 로그
  • http커넥션
  • read timeout
  • mysql 이모지
  • github actions 구성요소
  • tcp커넥션
  • opencsv
  • CGLIB프록시
  • spring boot3 쿼리 로그
more
«   2025/08   »
일 월 화 수 목 금 토
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
31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바