전체 글

I'm still working on it. We must be better.
English Wordsgeneral ("일반적인, 흔한" -- scope)발음 : [ ˈdʒen.ər.əl ]어원"gene-" derives from the German Gen, originating from the Greek genos ("birth, race") or genea ("generation")Middle English: via Old French from Latin generalis, from genus, gener- ‘class, race, kind’. The noun primarily denotes a person having overall authority: the sense ‘army commander’ is an abbreviation of captain general, from..
·Cloud Security
Overview -- AWS Security Best Practices 이 게시글은 AWS 보안 best practices에 대한 구조화된 defense-in-depth 개요를 제공하여, 어떻게 보안 통제가 설계되고, 적용되며, 실제 클라우드 환경에서 운영되는지 다룬다. AWS 서비스를 나열하기보다, 핵심 영역 (신원 자격, 네트워크, 데이터 보호, 모니터링, 거버넌스, 애플리케이션 보안과 컴플라언스 ) 에 대한 보안 조치로 구성하여 각 계층이 어떻게 위험을 줄이고, 영향 범위를 제한하는지에 집중했다.1. Identity & Access Management (IAM) -- Control Plane Security핵심 원칙IAM user, role에 대해 최소 권한의 원칙을 강제한다.네트워크 기반 신뢰보다..
·Backend
HTTP가 RFC를 엄격히 준수하는 이유HTTP가 RFC(Requests for Comments)라는 엄격한 표준을 따르는 이유는 상호운용성(interoperability) 때문이다. 파편화 방지만약 구글 크롬이 A라는 방식으로 요청을 보내고, 네이버 서버는 B라는 방식만 이해한다면 웹은 동작하지 않는다.전 세계 수억 개의 서버와 클라이언트가 문제 없이 통신하려면 공용어(Standard)가 필수적이다. 중간 매개체의 존재사용자가 웹사이트에 접속할 때 브라우저와 서버만 있는 게 아니다.그 사이에는 수많은 프록시(Proxy), 캐시 서버, CDN, 방화벽 등이 존재한다. 이 모든 장비가 RFC 표준을 따르고 있어야만 데이터가 중간에 왜곡되지 않고 전달된다. 그 외 사유구분내용확장성HTTP/1.1에서 HTTP..
·Backend
개요네트워크 서버를 개발할 때 가장 먼저 고민하게 되는 것은 "수많은 연결(Connection)을 어떻게 효율적으로 관리할 것인가?"이다. 이번에 진행한 HTTP 서버 프로젝트 또한 복잡한 계산보다는 데이터를 읽고 쓰는 I/O 작업 위주인 전형적인 I/O-bound 서버였다. Connection 단위로 상태를 가진다. { keep-alive, idle timeout, 여러 request 처리 }I/O가 대부분이다. { accept(), read(), write() }요청 처리 시간이 짧고 예측 가능하다.동시에 여러 connection을 다룬다.CPU-bound 작업은 거의 없다. 본 게시글에서는 전형적인 Thread-per-connection 모델의 한계를 살펴보고, Kotlin의 Coroutine이 어..
·Backend
개요프레임워크를 사용하면 HTTP 서버는 쉽게 만들 수 있다. 하지만 "왜 이렇게 설계되어 있는지"는 파악하기 어렵다. 이번 프로젝트는 TCP 소켓 위에서 HTTP/1.1 서버를 직접 구현하며, 각 계층이 가지는 책임과 데이터의 흐름을 파악하는 데 중점을 두었다. 전체 구조 (Architecture)서버는 단순히 하나의 커다란 코드가 아니라, 서로 다른 책임을 가진 5개의 핵심 계층으로 구성된다.Server : TCP 연결 수락 및 Coroutine 기반 Connection 관리RequestParser : 스트림(Bytes)을 분석하여 의미있는 객체(HttpRequest)로 변환HTTP Models : 요청과 응답의 상태를 정의하는 도메인 모델Routing & Handler : URL에 맞는 로직을 찾아..
English GrammarSimple Past vs. Past ContinuousSimple Past : "동작을 완료하다 (I did)"Past Continuous : "동작을 수행 중 (I was doing)"예시Matt burned his hand while he was cooking dinner.I saw you in the park yesterday. You were sitting on the grass and reading a book.I hurt my back while I was working in the garden.know나 want 같은 verbs는 Continuous 형으로 사용할 수 없다.→ 한번 알거나 감정적인 부분은 Subject가 자의적으로 하다가 멈출 수 없기 때문이다.i..
·클라우드/AWS
서론 : Client VPN이란?Client VPN은 개인 디바이스(노트북, 태블릿, 스마트폰)를 AWS 네트워크에 안전하게 연결하는 서비스다. 재택근무 직원이 회사 서버에 접속하거나, 출장 중인 개발자가 개발 환경에 접근할 때 사용한다. Site-to-Site VPN과의 핵심 차이는 연결 주체다:Site-to-Site VPN: 네트워크 ↔ 네트워크 (예: 본사 전체 ↔ AWS)Client VPN: 개인 디바이스 ↔ 네트워크 (예: 내 노트북 ↔ AWS)물리적 사무실에 출근하지 않아도, 마치 사무실 네트워크에 연결된 것처럼 AWS 리소스에 접근할 수 있다.보안팀 입장에서는 "누가, 언제, 어디에 접속했는지" 통제하고 감사(audit)할 수 있는 중앙 집중식 접근 관리 도구다. 그렇다면 Client VPN..
·클라우드/AWS
서론 : VPN은 왜 필요한가회사 서버가 AWS 클라우드에 있고, 재택근무 중인 직원이 사내 시스템에 안전하게 접속해야 하는 상황을 가정하자. 인터넷은 누구나 접근 가능한 공개된 네트워크다.이 상태로 회사 내부 시스템에 직접 연결한다면, 도청·위변조·세션 탈취 같은 보안 위협에 그대로 노출된다. 이때 필요한 기술이 바로 VPN(Virtual Private Network), 즉 가상 사설망이다.VPN은 인터넷이라는 공개된 도로 위에 암호화된 터널을 만들어 마치 전용선을 쓰는 것처럼 안전하게 데이터를 주고받게 해준다. AWS에서 제공하는 VPN의 두 가지 형태AWS는 목적에 따라 두 가지 VPN 서비스를 제공한다.Site-to-Site VPN : 네트워크와 네트워크를 연결 (예: 본사 ↔ AWS)Client..
English Expressions왜 대중교통 앞에는 'on'이 붙고, 개인 자동차에는 'in'을 붙일까?1. 전제 : 전치사( Prepositions )는 "객관적 사실"이 아니라 "개념적 framing"이다.영어 전치사는 물리적 크기나 실제 구조보다 사람이 그 공간을 어떻게 경험하느냐를 반영한다.in → enclosed space (경계 안에 들어가 있음)on → surface / platform / shared space (위에 올라타 있음) 이게 전부다. public / private은 결과일 뿐 원인이 아니다.2. 대중교통은 'Container'가 아니라 'Platform'으로 인식된다.on the buson the trainon the subwayon the planeon the ferry이동..
G+
IT 이모저모