weeklypaper 32

[Network] TCP와 UDP의 차이점

WeeklyPaper: 전송 계층에서 TCP와 UDP의 차이점은 무엇이며, 각각 어떤 상황에서 사용하는 것이 적절한가요?전송 계층은 데이터가 올바른 대상 애플리케이션에 전달되도록 보장하는 역할을 한다. 이 계층의 가장 대표적인 두 프로토콜은 TCP와 UDP다. 두 프로토콜은 명확한 차이점을 가지고 각각 다른 상황에 사용하는 것이 적절하다. 복습을 위해 OSI 7 Layer, TCP/IP 4 Layer에 관한 다이어그램을 가져왔다:TCP (Transmission Control Protocol)TCP는 연결 지향(Connection-Oriented) 프로토콜이다. 데이터를 전송하기 전에 반드시 상대방과 3-way handshake를 통해 연결을 설정하고, 4-way handshake를 통해 해제한다. 신뢰성..

CS/Networking 2025.10.31

[Network] TCP/IP 4계층 모델과 OSI 7계층 모델

WeeklyPaper: TCP/IP 4계층 모델과 OSI 7계층 모델에 대해 각각 설명하고, 두 모델을 비교해보세요. TCP/IP 와 OSI 7계층 구조 둘다 네트워크 통신에 필요한 프로토콜들을 계층화하여 체계적으로 구성한 모델들이다.하지만 각 모델의 계층 수와 명칭과 기능이 약간 다르다.OSI 7계층 모델 (이론)OSI 7계층 모델(Open Systems Interconnection Model)은 국제표준화기구(ISO)가 정의한 네트워크 통신 표준 참조 모델이다. 통신 과정을 7개의 논리적인 단계로 나누어, 각 계층이 독립적인 기능을 수행하도록 설계되었다. 이는 복잡한 네트워크 문제를 쉽게 파악하고, 장비 간 호환성을 높이기 위한 이론적인 표준이다.각 계층을 간단하게 정리해보았다:7계층 (응용 계층 -..

CS/Networking 2025.10.30

[OS] 로컬 캐시와 분산 캐시

WeeklyPaper: 로컬 캐시와 분산 캐시의 개념 차이와 각각의 장단점, 그리고 실무에서 어떤 기준으로 선택해야 하는지 설명해주세요.캐시(Cache)와 캐싱(Caching)캐시 (Cache)데이터나 값을 미리 복사해 놓는 임시로 저장해두는 고속 메모리를 가리킨다.캐시의 유형은 여러가지가 있다 - CPU 캐시 (CPU와 RAM사이의 속도를 줄이기 위해 사용됨, L1-L3), 메모리 캐시, 웹 브라우저 캐시, 등캐싱 (Caching)Cache + ing = 데이터를 캐시에 저장하고 필요할 때 빠르게 접근하는 기법이다. 캐싱을 통해 데이터 접근하는 시간을 줄이거나 값을 다시 계산하는 시간을 절약하고 싶을 경우에 사용한다.캐싱의 전략은 여러가지가 있다 - LRU, FIFO, LFU, Write-Through..

CS/OS 2025.10.22

[Spring] Spring Cache에서 @Cacheable, @CachePut, @CacheEvict의 차이점과 적절한 사용법

WeeklyPaper: Spring Cache에서 @Cacheable, @CachePut, @CacheEvict의 차이점과 각각을 어떤 상황에서 사용하는 것이 적절한지 설명해주세요.스프링에서는 스프링 AOP 기반으로 캐시가 장독하여 어노테이션으로 AOP를 설정할 수 있어서 간편하게 사용할 수 있다. 주로 사용되는 어노테이션은 @Cacheable, @CachePut, @CacheEvict다. build.gradle에 추가하자:implementation 'org.springframework.boot:spring-boot-starter-cache' @Cacheable캐시 생성과 전달을 담당한다.메서드가 호출 될때마다 이 메서드는 이미 호출이 되었는지 확인하기 위해 캐시가 확인된다.캐시에 데이터가 없을 경우, ..

Spring 2025.10.20

[Spring Security] 비동기 환경에서 컨텍스트(MDC, SecurityContext) 전달하기

WeeklyPaper: 비동기 환경에서 MDC(Logback Mapped Diagnostic Context)나 SecurityContext 같은 컨텍스트 정보를 스레드 간에 전달해야 할 경우, 처리하는 방법에 대해 설명하세요. 스프링 어플리케이션에서 비동기 처리를 위해 @Async 와 같은 기술을 사용할 때, 기존 스레드의 컨텍스트 정보가 새로 생성된 스레드로 전파되지 않는 문제가 발생한다. 대표적으로 로그 추적을 위한 MDC(Mapped Diagnostic Context)나 인증 정보를 담고 있는 SecurityContext가 여기에 해당된다.간단한 용어 복습@Async스프링에서 메서드를 별도의 스레드에서 비동기 (asynchronous)적으로 실행하도록 만들어주는 어노테이션이다.오래 걸리는 작업을 백..

[OS] 경쟁 상태(Race Condition)과 다양한 해결 전략

WeeklyPaper: 멀티스레드 환경에서 발생하는 대표적인 문제 중 하나인 경쟁 상태(Race Condition)에 대해 설명하고, 이를 해결하기 위한 다양한 전략을 설명해보세요.Race Condition경쟁 상태 (Race Condition)이란 두개의 프로세스가 공통 자원을 병행적으로 (concurrently) 읽거나 쓰는 동작을 할때, 공용 데이터에 대한 접근이 어떤 순서로 이루어졌는지에 따라 실행 결과가 달라지는 상황을 의미한다.간단히 말하면 말 그대로 Race 처럼 두개의 스레드가 하나의 자원을 놓고 경쟁하는 것을 말한다.Critical Section (임계 영역)운영 체제에서 여러 프로세스가 데이터를 공유하면서 수행될 때 각 프로세스에서 공유 자원에 접근하는 프로그램 코드 부분을 의미한다. ..

CS/OS 2025.10.16

[Spring Security] 주요 보안 공격 (CSRF, XSS, 세션 고정, JWT 탈취)과 대응 전략

WeeklyPaper: Spring 기반 웹 애플리케이션에서 발생할 수 있는 4가지 주요 보안 공격 (CSRF, XSS, 세션 고정, JWT 탈취)에 대해 설명하고, 각각에 대한 Spring Security 또는 일반적인 대응 전략을 설명하세요. CSRF (Cross-Site Request Forgery)CSRF(Cross-Site Request Forgery)는 사용자가 자신도 모르게 공격자가 의도한 요청을 특정 웹 애플리케이션에 보내도록 속이는 공격이다.피해자가 로그인하여 인증 쿠키를 보유 중일 때, 공격자가 조작된 링크나 폼을 열게 하면 브라우저가 자동으로 쿠키를 첨부하여 서버에 요청을 보낸다. (쿠키는 브라우저에 저장이 된다)예시 시나리오:사용자가 은행 사이트에 로그인해서 세션 쿠키를 들고 있다...

[Security] OAuth 2.0의 주요 컴포넌트와 Authorization Code Grant 흐름

WeeklyPaper: OAuth 2.0의 주요 컴포넌트와 Authorization Code Grant 흐름을 설명하세요.OAuth 2.0OAuth 2.0은 인증(Authentication)을 위한 프로토콜이 아니라, 권한 허가(Authorization)를 위한 산업 표준 프레임워크다. 사용자가 특정 애플리케이션(제3자 앱)에게 자신의 비밀번호 같은 민감한 자격 증명을 직접 제공하지 않으면서, 자신이 소유한 자원(Resource)에 접근할 수 있는 제한된 권한을 위임(Delegate)하는 방법을 정의한다. 호텔에 비유하면 이해하기 쉽다. 우리는 호텔방에 들어가기 위해 마스터키를 복사해서 주차 관리원에게 주지 않는다. 대신, 프런트 데스크(권한 서버)에 가서 신원을 확인받고, 주차 관리원이 '주차장 출입'..

CS/Security 2025.09.25

[Security] 세션 기반 인증과 토큰 기반 인증

WeeklyPaper: 세션 기반 인증과 토큰 기반 인증의 차이점과 각각의 보안 고려사항에 대해 설명하세요.배경로그인 후 유저의 인증 상태를 유지하기 위해 세션 또는 토큰 방식을 사용한다.이렇게 해야 하는 이유는 HTTP 프로토콜의 속성 때문이다.기본적으로 서버는 각 HTTP 요청을 독립적 사건으로 취급한다. 그래서 이전 요청의 맥락 (로그인 여부, 유저 정보 등)을 자동으로 기억하지 않는다.HTTP 1.1에서 keep-alive가 있어도, 이는 TCP 소켓 재사용일 뿐 응용 계층의 인증상태를 보장하지 않는다. 또한, 실제 서비스는 로드 밸런서, 다수의 서버, 캐시, 프록시가 개입한다. 서버 로컬 메모리에만 의존한다면 다른 서버로 라우팅되는 순간 인증 상태를 잃어버린다. 중앙 저장소 (세션 스토어)나, ..

CS/Security 2025.09.25

[AWS] RDS VS EC2 비교와 차이점

WeeklyPaper: AWS RDS를 활용하는 주요 이점과 EC2에 직접 데이터베이스를 설치하여 운영하는 것과 비교했을 때의 차별점에 대해 설명해주세요. 그리고 RDS를 사용하는 것이 적합하지 않을 수 있는 상황도 함께 언급해주세요.Amazon RDS 클라우드에서 데이터베이스를 자동으로 구성/유지 관리하는 SaaS 기반 서비스즉각적인 컴퓨팅 규모 조정 가능. 스토리지 규모 조정도 간편함DB 인스턴스의 복제본을 하나 이상 생성해 대량 애플리케이션 읽기 트래픽 처리 가능6개의 DB 엔진을 지원해 필요에 맞는 DB 엔진을 선택할 수 있는 유연성 제공 장점데이터베이스와 관련된 반복적이고 일상적인 관리 작업을 AWS에 위입함으로서 운영 부담을 획기적으로 줄일 수 있다.EC2 + DB/VM을 직접 설치하는 것보다..

Cloud 2025.08.25