CS48 [Network] 네트워크 계층 구조: 캡슐화, IP, MAC, Port까지 한 번에 정리 1. 문서 제목네트워크 계층 구조: 캡슐화, IP, MAC, Port까지 한 번에 정리2. 기술 개요 요약네트워크 계층 모델은 복잡한 통신 과정을 역할별로 나누어 이해하기 위한 구조다. OSI 7계층은 설명과 학습에 유용한 참조 모델이고, TCP/IP 모델은 실제 인터넷 프로토콜 스택에 더 가깝다. 실무와 면접에서는 7계층 이름을 외우는 것보다 HTTP, DNS, TCP, UDP, IP, MAC, Port가 각각 어떤 책임을 갖는지 연결해서 설명하는 것이 중요하다.브라우저가 서버에 요청을 보낼 때 HTTP 요청은 전송 계층에서 TCP 세그먼트가 되고, 네트워크 계층에서 IP 패킷, 데이터링크 계층에서 프레임으로 캡슐화된다. 이 과정에서 IP 주소는 목적지 호스트를 찾고, MAC 주소는 같은 링크 안의 다.. CS/Network 2026. 7. 11. [Nework] TCP 3-way Handshake, 4-way Handshake, TIME_WAIT 정리 1. 문서 제목 제안TCP 3-way Handshake, 4-way Handshake, TIME_WAIT 정리2. 기술 개요 요약TCP는 연결 지향 전송 프로토콜이다. 데이터를 보내기 전에 3-way handshake로 양쪽의 송수신 가능 상태와 초기 sequence number를 확인하고, 연결 종료 시에는 각 방향의 송신을 독립적으로 닫기 위해 일반적으로 FIN, ACK, FIN, ACK 흐름을 사용한다. 마지막 ACK를 보낸 쪽은 바로 연결 상태를 제거하지 않고 TIME_WAIT 상태로 잠시 대기한다. 이는 마지막 ACK 유실에 대응하고, 이전 연결의 지연 세그먼트가 같은 4-tuple의 새 연결에 섞이는 것을 방지하기 위한 목적이다.3. 핵심 기능/개념 정리3-1. TCP 기본 특성항목설명실무 포.. CS/Network 2026. 7. 11. [Network] HTTPS, TLS, CA 인증서, Let's Encrypt 정리 1. 문서 제목HTTPS, TLS, CA 인증서, Let's Encrypt 정리2. 기술 개요 요약HTTPS는 HTTP 메시지를 TLS로 보호해 전송하는 방식이다. HTTP의 요청/응답 의미가 바뀌는 것이 아니라, 네트워크 구간에서 기밀성, 무결성, 서버 인증을 제공한다. 서버 인증은 인증서와 CA(Certificate Authority), 그리고 루트 CA까지 이어지는 신뢰 체인을 통해 이루어진다.브라우저는 서버 인증서의 도메인, 유효 기간, 서명, 신뢰 체인, 폐기 여부를 확인한다. Let's Encrypt는 ACME 프로토콜 기반 자동화를 제공하는 무료 CA이며, 표준 Domain Validation(DV) 인증서를 발급한다. 유료 인증서와의 핵심 차이는 암호화 강도 자체보다 검증 범위, 운영 지원.. CS/Network 2026. 7. 11. 데이터 마이그레이션 설계 가이드: 점진적 전환, Outbox, Fix-forward 데이터 마이그레이션 전략: 실무에서 사용하는 패턴과 롤백 전략 총정리1. 문서 제목데이터 마이그레이션 설계 가이드: 점진적 전환, Outbox, Fix-forward2. 기술 개요데이터 마이그레이션(Data Migration)은 기존 시스템의 데이터를 새로운 시스템으로 이전하는 작업이다. 단순히 데이터를 복사하는 것이 아니라, 서비스를 중단하지 않고 안정적으로 전환하는 것이 핵심 목표다.실무에서는 다음 네 가지 질문을 중심으로 설계한다.어떻게 나누어 옮길 것인가?전환 기간 동안 신규 시스템과 레거시 시스템을 어떻게 함께 운영할 것인가?실패했을 때 안전하게 재시도할 수 있는가?문제가 발생하면 어떻게 대응할 것인가?이 네 가지를 기준으로 대부분의 마이그레이션 전략을 설명할 수 있다.3. 핵심 개념 정리3.1.. CS/기타 2026. 7. 9. Webpack에서 Vite로: CRA 마이그레이션 시 발생하는 문제와 해결 전략 1. 문서 제목Webpack에서 Vite로: CRA 마이그레이션 시 발생하는 문제와 해결 전략2. 기술 개요 요약CRA(Create React App)에서 Vite로의 마이그레이션은 단순한 빌드 도구 교체가 아니라, Webpack 기반 번들링 중심 아키텍처에서 ESM 기반 온디맨드 변환 구조로의 전환이다. Vite는 개발 환경에서 번들링을 제거하고 브라우저의 Native ES Module을 활용하며, production 빌드에서는 Rollup을 사용하여 최적화된 결과물을 생성한다. 이로 인해 빌드 속도와 개발 경험은 크게 개선되지만, TypeScript 처리 방식, HTML 엔트리 구조, 환경 변수 접근 방식 등에서 근본적인 차이가 발생한다.3. 핵심 개념 정리3.1 번들링 아키텍처 비교항목CRA (We.. CS/기타 2026. 3. 22. [GIT] GIT을 통해 버젼관리를 하는 방법 (2026 개정판) 📋 주요 변경사항항목2022년2026년 개정기본 브랜치명mastermain (2020년 GitHub 기본값 변경)브랜치 전환git checkoutgit switch / git restore (Git 2.23+)Unstage 방법git reset HEAD [file]git restore --staged [file]인증 방식HTTPS 비밀번호PAT(Personal Access Token) 또는 SSH 키최신 Git 버전2.382.51 (2025년 기준)1. 버전관리의 구조: Git의 세 가지 영역Git의 Local Repository는 세 가지 영역(Three Trees) 으로 구성됩니다.Working Directory → Staging Area (Index) → Repository (HEAD) .. CS/Git 2026. 2. 27. [대규모 시스템 설계 기초 2] 9장. 객체 스토리지 설계 객체 스토리지 설계 핵심 요약저장 시스템 종류블록 스토리지: OS 레벨에서 파일 시스템 구성 요소처럼 작동 (ex. 디스크)파일 스토리지: 폴더/파일 기반 접근객체 스토리지: RESTful API 기반 접근. 내구성, 확장성, 비용 효율성 중심.객체 스토리지의 주요 특징불변성 (Immutability): 객체는 한 번 저장되면 수정 불가. 새로운 버전 생성 필요.버킷 & 객체: 버킷은 컨테이너.객체는 데이터 + 메타데이터.대용량 파일 처리멀티파트 업로드큰 파일을 작은 청크로 나누어 업로드.병렬 업로드 가능.실패 시 해당 파트만 재전송.서버에서 최종적으로 병합.내구성 확보 방법복제 (Replication)데이터를 여러 데이터센터에 그대로 복사.단순하고 직관적.공간 비효율적.삭제 코딩 (Erasure Cod.. CS/시스템 설계 2025. 6. 15. 안쓰면 자꾸 헷갈리는 Cron 표현식 정리하기 Cron 표현식 정리Cron 표현식은 주기적으로 작업을 예약할 때 사용하는 문자열 포맷으로, 각 필드는 특정 시간 단위를 의미합니다. 주요 사용 예는 리눅스의 cron, 각종 클라우드 스케줄러, 백엔드 작업 예약 등입니다.기본 구조 및 필드일반적으로 Cron 표현식은 5~7개의 필드로 구성됩니다. 가장 널리 쓰이는 5필드 형식은 다음과 같습니다.필드 순서필드명허용 값설명1분 (Minute)0-59몇 분에 실행할지2시 (Hour)0-23몇 시에 실행할지3일 (Day)1-31매월 며칠에 실행할지4월 (Month)1-12 또는 JAN-DEC몇 월에 실행할지5요일 (Day of week)0-6 또는 SUN-SAT무슨 요일에 실행할지 (0/7: 일요일)일부 시스템(Quartz 등)은 초(Seconds)와 연(Ye.. CS/기타 2025. 5. 22. NotebookLM으로 운영체제 톺아보기 본 글은 notebooklm으로 정리한 글임을 서두에 밝힙니다.운영체제 설계 및 구현의 핵심 개념과 구조는 다음과 같습니다. 핵심 개념 및 구조듀얼 모드 (Dual Mode) 및 보호 (Protection) : 운영체제는 최소한 사용자 모드 (user mode)와 커널 모드 (kernel mode)의 두 가지 운영 모드를 가집니다. 커널 모드는 감독 모드, 시스템 모드, 또는 특권 모드라고도 불립니다. 커널 모드와 사용자 모드를 구분하는 것은 운영체제가 사용자의 작업을 안전하게 제어하고 중요한 시스템 자원을 보호하며, 시스템 호출과 같은 서비스를 효율적으로 처리하기 위한 기본적인 메커니즘입니다.컴퓨터 하드웨어에는 현재 모드를 나타내는 모드 비트 (mode bit)가 추가됩니다 : 커널(0) 또는 사용자(.. CS/OS 2025. 5. 13. GitHub config 변경 방법 이름 및 이메일 변경 방법글로벌 설정 (--global)git config --global user.name "joonfluence"git config --global user.email "joonfluence.dev@gmail.com"로컬 설정 : --global 제외하고 작성현재 설정 확인글로벌 설정git config --global --list로컬 설정git config --list CS/Git 2025. 4. 24. [CS] 프로그램, 프로세스, 쓰레드 서론오늘은 프로그램, 프로세스, 쓰레드의 차이점에 대해서 알아보도록 하겠습니다.본론프로그램과 프로세스의 차이프로그램이란 저장장치에 저장되어 있어 언제든지 실행 가능한 파일을 말합니다. 모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해줘야 실행될 수 있는데, 프로그램은 아직 메모리에 올라가 있지는 않은 상태입니다.반면, 프로세스란 컴퓨터에서 실행되고 있는 컴퓨터 프로그램을 말합니다. 이는 프로그램과는 다르게, 메모리에 올라와 있는 상태입니다. 즉, 프로세스란 메모리에 올라와 있는 프로그램을 말합니다.프로세스와 쓰레드의 차이과거에는 프로그램을 실행할 때 실행 시작부터 실행 끝까지 프로세스 하나만을 사용해서 진행했다고 합니다. 그러나 프로그램이 더이상 하나의 작업 만을 수행하지 않게 되면서, 프로.. CS 2025. 1. 8. [Algorithm] 코딩테스트에서 자주 쓰이는 파이썬 수학 내장함수 1. 기본 내장 함수1.1 abs()절댓값을 반환합니다.print(abs(-7)) # Output: 71.2 max() / min()리스트나 튜플에서 최대값 또는 최소값을 구합니다.numbers = [3, 5, 2, 9]print(max(numbers)) # Output: 9print(min(numbers)) # Output: 21.3 sum()리스트나 튜플의 합계를 구합니다.numbers = [1, 2, 3, 4]print(sum(numbers)) # Output: 101.4 pow()거듭제곱 계산.print(pow(2, 3)) # Output: 81.5 round()반올림을 수행합니다. 두 번째 인자로 소수점 자리수 설정 가능.print(round(3.14159, 2)) # Output:.. CS/알고리즘 2025. 1. 4. 이전 1 2 3 4 다음 반응형