초기 웹 아키텍처 – 브라우저는 원격지 문서 뷰어에서 출발했다
앞선 글에서 URL과 HTTP라는 두 축을 다뤘다. 이번에는 그 조각들을 합쳐 본다. 초기 웹 아키텍처는 한 문장으로 요약된다. 브라우저는 원격지에 있는 문서를 가져와 화면에 그려 주는 뷰어였고, 그 위에 꾸밈과 움직임과 기능이 차례로 얹히며 지금의 웹이 됐다. 이 글은 그…
앞선 글에서 URL과 HTTP라는 두 축을 다뤘다. 이번에는 그 조각들을 합쳐 본다. 초기 웹 아키텍처는 한 문장으로 요약된다. 브라우저는 원격지에 있는 문서를 가져와 화면에 그려 주는 뷰어였고, 그 위에 꾸밈과 움직임과 기능이 차례로 얹히며 지금의 웹이 됐다. 이 글은 그…
주소창에 www.naver.com을 입력하고 엔터를 누르면 화면에 페이지가 뜬다. 매일 수십 번 반복하는 동작이지만, 그 사이에 무슨 일이 벌어지는지 설명하라고 하면 막히는 개발자가 많다. 결론부터 말하면 웹의 동작 원리는 생각보다 단순하다. 어떤 컴퓨터에 저장된 문서 하나를 네트워크 너머에서 요청하고, 그 컴퓨터가…
알고리즘 인터뷰는 정답 코드를 빠르게 작성하는 능력을 본다. 그러나 DoorDash, Uber, Stripe, Netflix, Amazon이 보는 것은 다르다. “실제 서비스에서 마주칠 법한 문제를 어떻게 해석하고, 어떤 구조로 설계하고, 어떤 트레이드오프를 고려하면서 확장 가능하게 구현하는가.” 이 흐름을 다루는 문제 해결 전략이 Code…
NCP에서 /home 파티션 사용률 90% 경고가 왔다. 처음 한 번은 수동으로 정리했다. 2시간이 걸렸다. 두 번 다 하고 싶지 않았다. 백업하고, 무결성 확인하고, 로컬에 내려받고, NAS에 올리고, 원본을 지우는 순서는 매번 똑같다. 리스크는 크고 절차는 반복된다. 이걸 셸 스크립트로 묶기로…
회사 프로젝트에서 작업하다 개인 레포에 push했더니 회사 계정으로 커밋이 찍혔다. GitHub 계정이 두 개라도 아무 설정 없이 쓰면 글로벌 설정 하나로만 동작한다. SSH 키 분리와 gitconfig 분기, 이 두 가지만 잡으면 된다 왜 이 설정이 필요한가 GitHub 계정이 두 개면…
트리(Tree) 개념 트리는 비선형 자료구조로, 계층적 관계를 표현하는데 최적화된 구조이다. 마치 나무가 뿌리에서 시작해 가지를 뻗어나가는 모습과 유사하여 ‘트리’라는 이름이 붙었다. 실생활에서는 회사의 조직도, 운영체제의 파일 시스템 등에서 트리 구조를 쉽게 찾아볼 수 있다 트리의 기본 용어 트리의 레벨과 높이…
알고리즘의 성능을 평가할 때 우리는 Big-O 표기법을 사용한다. 어떤 문제를 해결하는 방법, 즉 알고리즘은 여러 가지가 있을 수 있으며, 이 알고리즘의 성능을 비교하고 평가할 때 Big-O 표기법이 쓰인다. 반면 P-NP 문제는 조금 다른 관점에서 문제를 바라본다. 어떤 문제가 주어졌을 때…
Kafka를 활용하여 마이크로서비스 아키텍처(MSA) 기반의 회원 가입 및 이메일 발송 시스템을 구축하는 방법을 알아보자. Kafka의 메시지 브로커 역할을 통해 서비스 간 비동기 통신을 구현하며, 이벤트 기반 아키텍처의 핵심 개념을 실습한다 프로젝트 목표 시스템 아키텍처 전체 구조 서비스 구성 서비스 역할…
Apache Kafka(이하 Kafka)의 고가용성(High Availability)이란 시스템이 장애 상황에서도 중단 없이 정상적으로 서비스를 제공할 수 있는 능력을 의미한다 핵심 개념 이해 Kafka의 고가용성을 이해하기 위해서는 다음 다섯 가지 핵심 개념을 먼저 숙지해야 한다 노드 (Node) 노드란 Kafka가 설치되어 있는 실행되는 서버…
우리는 흔히 MSA(Microservices Architecture) 환경에서 비동기 메시징 처리를 위해 Kafka를 사용한다. 특히 이메일 발송과 같이 시간이 오래 걸리는 작업을 비동기로 처리할 때 Kafka는 매우 유용하다. 이를 활용하여 Spring Boot 기반의 컨슈머 애플리케이션에서 메시지 처리 성능을 극대화하는 방법에 대해 알아보자. 비효율적인…