[네트워크] MTU와 MSS
·
컴퓨터네트워크
MTU와 MSS는 각 계층에서 통과할 수 있는 데이터의 최대 크기를 뜻한다.아래 사진처럼 트럭(데이터)의 높이가 정해진 터널(계층)의 높이보다 크다면 트럭(데이터)은 통과할 수 없다. MTU (Maximum Transmission Unit)정의: 네트워크에서 전송할 수 있는 최대 패킷 크기(바이트 단위).기본 값: 이더넷에서는 1,500바이트.포함 항목: IP 헤더 + TCP/UDP 헤더 + 데이터.MTU보다 큰 데이터 전송 시: 패킷을 여러 개로 나누는 패킷 단편화(fragmentation) 발생.MSS (Maximum Segment Size)정의: TCP에서 한 번에 보낼 수 있는 최대 데이터 크기(바이트 단위).계산 공식MTU가 1,500바이트인 경우,IP 헤더(20B) + TCP 헤더(20B) →..
[HTTP 완벽 가이드] 10. HTTP/2.0
·
HTTP 완벽 가이드
HTTP/2.0에서 회전 지연(RTT, Round Trip Time) 회피 방법HTTP/2.0은 스트림(Stream) 개념을 추가하고, 헤더 압축(HPACK) 및 서버 푸시(Server Push) 기능을 통해 HTTP/1.1에서 발생하는 회전 지연(RTT) 문제를 효과적으로 해결하였다.1. 스트림(Stream)과 다중화(Multiplexing)스트림이란?HTTP/2.0에서는 하나의 TCP 커넥션 내에서 여러 개의 요청과 응답을 동시에 주고받을 수 있도록 스트림(Stream) 개념을 도입했다.각 스트림은 **고유한 번호(31비트 부호 없는 정수)**를 가지며, 한 번 사용한 스트림 번호는 재사용할 수 없다.스트림에는 **우선순위(priority)**를 설정할 수 있지만, 이는 필수 사항이 아니다.다중화(M..
[트러블 슈팅] 복합키 인덱스 최적화
·
WEB/트러블슈팅
⚠️ 문제 상황운영 기간이 늘어날수록 예약 스케줄을 출력해주는 API의 성능이 저하되는 문제가 발생하였다. 따라서 실제로 스케줄이 렌더링 되는 시간이 느려지는 문제도 발생했다.🕵️ 원인 분석풀 테이블 스캔 발생: WHERE 조건에서 grade와 class_date를 사용하여 데이터를 조회하는데, 인덱스가 적용되지 않아 전체 테이블을 검색하는 문제가 발생.쿼리 실행 시간이 길어짐: 테이블 크기가 증가할수록 쿼리 성능 저하가 발생.카디널리티 부족: grade와 class_date의 조합에 대한 인덱스가 없기 때문에 검색 범위가 넓어지고 실행 시간이 증가함.✅ 해결 방법시도할 수 있는 최적화 방법단일 컬럼 인덱스 적용: grade 또는 class_date 각각에 대한 인덱스를 생성하여 조회 속도를 개선할 수..
[협업] Slack에서 GitHub 알림을 설정하는 방법 정리
·
협업
🚀 Slack에서 GitHub 알림을 설정하는 방법 정리Slack과 GitHub을 연동하여 PR Merge, Issues, Commits 등 특정 이벤트에 대한 알림을 받거나 중단하는 방법을 설명합니다.1️⃣ Slack에 GitHub 앱 추가Slack에서 /github 명령어 입력GitHub 앱이 없다면, **Slack App Directory**에서 GitHub 검색 후 설치GitHub 계정과 연동 → "Authorize Slack" 클릭2️⃣ Slack에서 GitHub 저장소 구독 설정Slack에서 GitHub 알림을 받을 채널에서 아래 명령어 입력:/github subscribe owner/repository✅ 예시:/github subscribe ICE-AdvICE/AdvICE_WebServic..
[트러블 슈팅] RTR 도입기
·
WEB/트러블슈팅
⚠️ 문제 상황사용자로부터 재로그인 빈도가 높아 불편하다는 피드백(VOC)을 다수 접수함. 특히, 토큰이 자주 만료되어 로그인이 반복적으로 필요하다는 문제가 발생🕵️ 원인 분석Access Token 만료 주기가 짧음: 보안 강화를 위해 만료 시간을 1시간이라는 짧은 시간으로 설정했으나, 사용자 경험이 저하됨Refresh Token 미활용: 기존 시스템에서는 Access Token 만료 시, 매번 로그인 페이지로 이동하도록 설계됨인증 시스템 최적화 부족: 사용자 활동 여부와 관계없이 일괄적으로 토큰을 만료시키는 정책이 적용됨✅ 해결 방법Refresh Token을 활용한 인증 유지 연장Access Token 만료 시, Refresh Token을 사용하여 자동으로 새로운 Access Token을 발급이를 통..
[HTTP 완벽 가이드] 01. HTTP 개관
·
HTTP 완벽 가이드
HTTPHypertext Transfer Protocol이며, 인터넷의 멀티 미디어 배달부HTTP는 신뢰성 있는 프로토콜을 사용하기에 데이터가 전송 중 손상되거나 꼬이지않았음을 보장한다. 웹 클라이언트와 서버리소스정적 리소스: 예시로 텍스트 파일, HTML 파일, JPEG 이미지 파일, AVI 동영상 파일 등이 존재한다.동적 리소스: 사용자, 요청 정보, 시간대에 달라지는 콘텐츠, 정적인 컨텐츠의 반대 미디어 타입MIME 타입(MultiPurpose Internet Mail Extensions)HTTP 객체 데이터에 MIME 타입을 붙이는데 이를 통해 브라우저는 다룰 수 있는 객체인지 판단한다.MIME 타입은 사선으로 구분된 주 타입과 부 타입으로 이루어진 문자열 라벨이다: {주 타입}/{부 타입}아래 ..
[트러블 슈팅] MySQL 시간대(Timezone) 설정 이슈
·
WEB/트러블슈팅
문제 상황스케줄 데이터 입력 시 한국 시간과 다른 시간대로 데이터가 입력되는 문제 발생현재 시스템 시간 확인 결과mysql> SELECT CURRENT_TIMESTAMP, NOW(), CURRENT_DATE;+---------------------+---------------------+--------------+| CURRENT_TIMESTAMP | NOW() | CURRENT_DATE |+---------------------+---------------------+--------------+| 2025-01-06 16:22:07 | 2025-01-06 16:22:07 | 2025-01-06 |+---------------------+-------------------..
[Java] 제네릭 클래스의 이해와 활용
·
Dev Lang/JAVA
학습 키워드Generic Class & InterfaceType ParameterType SafetyCode ReusabilityBounded Type ParameterMultiple Type ParametersRaw TypeType Inference 학습 내용1. 제네릭 클래스의 기본 구조와 필요성Java에서 제네릭이 없던 시절의 코드를 보면 다음과 같은 문제점이 있었다.// 제네릭 이전의 코드class OldBox { private Object item; public void setItem(Object item) { this.item = item; } public Object getItem() { return item; }}// 사용 예시OldBox..
개발자 성현
'분류 전체보기' 카테고리의 글 목록 (6 Page)