◼ DHCP(Dynamic Host Configuration Protocol) IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공 네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜 장점 PC의 수가 많거나 PC 자체 변동사항이 많은 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용 가능 IP를 자동으로 할당해주기 때문에 IP 충돌 방지 단점 DHCP 서버 의존적, 서버가 다운되면 IP 할당 문제 ◼ Network Interface (ethernet interface) network interface는 하드웨어와 networking 하기 위한 소프트웨어..
QUIC (Quick UDP Internet Connection) to HTTP/3 구글에서 만든 프로토콜, 2013년 6월 공개 IETF(Internet Engineering Task Force)에 QUIC 프로토콜 표준화를 제안 Google-QUIC은 오로지 HTTP만 전송했으나 IETF QUIC 워킹 그룹을 통해 IETF-QUIC 은 TLS 1.3의 암호화 보안 적용 HTTP-over-QUIC은 2018년 11월에 HTTP/3로 개명 2021년 5월 RFC 9000으로 버전 1 공식화 RFC 출처: www.saturnsoft.net/network/2021/05/27/quic-rfc9000/ RFC 8999 Version-Independent Properties of QUIC - 통칭 Invarian..
HTTP/1.x 문제점 Head-Of-Line Blocking 모든 요청이 FIFO로 처리되기 때문에 요청이 blocking 되는 문제 RTT(Round Trip Time) 증가 매번 connection 별로 3-way-handshake로 인한 네티워크 지연 초래 무거운 Header 매요청 마다 중복되는 헤더 정보 전송로 인한 header 크기 증가 메타데이터는 항상 일반 텍스트로 전송되고, 전송당 500~800바이트의 오버헤드가 추가 HTTP 쿠키를 사용할 경우 수 KB가 추가되기도 함 해결 시도 Image Spriting 여러 이미지를 하나의 이미지로 만들어 사용하는 방법 네트워크 통신은 줄지만 이미지 크기가 커지는 문제 Domain Sharding 도메인 별로 connection을 생성해서 병렬로 ..
HTTP 정의: HTML 문서와 같은 리소스들을 가져올 수 있도록 해 주는 프로토콜 1989~1991 사이에 World Wide Web 통신 프로토콜로 사용하기 위해 Tim Berners-Lee가 CERN에서 만들었다 client와 server 간에 request에 따라 response 하는 model IETF와 W3C에서 개발됐으며 RFC로 관리 HTTP/0.9 원라인 프로토콜이라고 불린다. telnet friendly 한 프로토콜 초기에는 버전 번호가 없었고 차후에 구별하기 위해 0.9로 불렸다. Connection: response후에 바로 connection이 끊어진다. Reqeust 요청은 단일 라인으로 구성 URL이 아닌 GET 요청만 가능. Response 응답은 단순하게 파일 내용 자체로 ..
POSIX에서의 TCP Socket에 대해 정리합니다. Socket이란? 프로세스 간 데이터 통신의 종착점으로 OS의 API다. 프로세스와 Transport Layer 사이에서 네트워킹을 담당해준다. 네트워크를 경유하면 Network Socket, 같은 Host 상에서 통신하면 Unix domain socket로 나뉜다. UDP와 TCP를 사용한다 IP+Port의 조합으로 Endpoint를 구분한다. 쉽게 비유하면 Socket은 전화기와 같다. IP는 전화번호 Port는 통화하는 사람 Linux나 Unix를 포함한 POSIX 계열 운영체제는 소켓을 file descriptor로 애플리케이션에 노출한다 POSIX 계열의 운영체제에서 소켓은 파일의 한 종류 모든 네트워크 통신은 socket을 통한다. 사용 ..
TL;DR 어느 시점에 source code에서 machine code로 compile 되는지에 따라 다르다. interpreter : runtime compiler(AOT) : runtime 전 실행속도 이식성 컴파일 시간 종류 빠름 별로 느림 go, rust, Haskel 느림 좋음 빠름(bytecode) python, ruby 보통(JIT 구현에 따라 차이) 좋음 빠름(bytecode) pypy, java Compiler VS Interpreter Compiler : 번역기 컴파일러(compiler, 순화 용어: 해석기, 번역기)는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말한다. 특정 언어에서 특정 언어로 바꿔 주는 것 원시 코드 -> 목적 코드..
Transaction 여러 읽기/쓰기를 논리적으로 하나로 묶음 트랜잭션 시작 -> 여러 쿼리 실행 -> 커밋 or 롤백 모두 반영(커밋) or 모두 반영 안 하기(롤백) 트랜잭션 범위는 컨넥션 기준 트랜잭션의 모든 쿼리는 같은 커넥션에 있어야 한다. 커넥션이 3개라면 트랜잭션을 가질 수 있다 트랜잭션 전파 여러 메서드 호출이 한 트랜잭션에 묶이도록 하기 위해 필요 스프링 프레임워크: 메서드 간에 커넥션 객체를 전달하지 않아도 한 트랜잭션으로 묶어서 실행 외부 연동 주의 한 트랜잭션에 외부 API 연동이 있을 때 롤백 처리에 주의해야 한다. 경쟁 상태(Race Condition) 여러 트랜잭션이 동시에 같은 레코드에 접근하면 동시성 문제(경쟁 조건) 발생 해결책 트랜잭션을 순서대로 실행 동시성에 대한 문제..
OSI 모델과 TCP/IP 모델을 기준, 키워드 중심으로 기본 개념을 정리합니다. 네트워크란? 컴퓨터 간의 연결을 컴퓨터 네트워크 줄여서 네트워크라 한다 작은 네트워크부터 거대한 네트워크까지 아우르는 연결된 거대한 네트워크를 인터넷이라고 한다 규모에 따른 구분 PAN(Personal Area Network) LAN(Local Area Network) 일반적인 가정 → 공유기 등 사용 소규모 회사 → DMZ (i.e. Mail Server, DNS...) 등 구성, 온프레미스(데이터센터) 또는 클라우드에 서버 운영 WAN(Wide Area Network) ISP(인터넷 서비스 제공자, i.e. KT, U+)가 제공하는 서비스를 사용하여 구축된 네트워크 캡슐화/역 캡슐화 데이터를 보내기 위해서는 목적지까지 ..
- Total
- Today
- Yesterday
- Isolate level
- 원티드
- cka
- MSA
- 덕타이핑
- 프리온보딩
- HTTP/3
- HTTP/2
- go
- Python
- GitHub
- inflearn
- user-agent
- QUIC
- buildkit
- k8s
- thetextbook
- gitignore
- direnv
- web_server
- 창업
- database
- Git
- no-op
- 위코드
- http
- docker-compose
- Network
- Complier
- pytest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |