반응형

전체 글 234

패스키(Passkey)의 원리와 활용: 비밀번호 없는 인증 이해하기

패스키(Passkey)의 원리와 활용: 비밀번호 없는 인증 이해하기 비밀번호는 오랫동안 가장 널리 쓰이는 인증 방식이었지만, 이제는 여러 보안 문제와 사용자의 번거로움 때문에 새로운 대안이 필요해졌습니다.최근 각 플랫폼과 웹서비스가 빠르게 도입하고 있는 패스키(Passkey) 는 ‘비밀번호 없는 인증’ 시대를 여는 핵심 기술입니다. 1. 패스키(Passkey)란 무엇인가?최근 IT 업계에서는 “비밀번호 없는 인증(Passwordless Authentication)”이 중요한 화두로 떠오르고 있습니다.그 중심에는 바로 패스키(Passkey)라는 새로운 인증 기술이 자리하고 있습니다. 패스키는 사용자가 외우고 입력해야 하는 비밀번호를 완전히 대체하며, 기기 내부에서 생성된 공개키·개인키 쌍을 이용해 인증을..

4편. GraphQL 실무 아키텍처 설계: 도메인 구조와 책임 분리

4편. GraphQL 실무 아키텍처 설계: 도메인 구조와 책임 분리 📚 목차1. 도메인 기반 폴더 구성 전략2. Schema / Resolver / Service 분리3. 모듈화된 아키텍처 적용 예시 (User 모듈)4. 확장성 있는 초기 설계 방안✔ 마무리 - 실무형 GraphQL 아키텍처 설계 GraphQL 서버를 처음 구축할 때는 간단한 구조로 빠르게 시작할 수 있지만, 기능이 늘어나면서 코드가 복잡해지고 유지보수가 어려워지는 경우가 많습니다. 이번 글에서는 도메인 단위로 기능을 나누고, 계층별로 책임을 분리하는 구조화 전략을 실습을 통해 직접 구현하며, 확장 가능하고 실무에 적합한 GraphQL 서버 아키텍처를 만들어 봅니다. 📂 [GitHub 실습 코드 보러가기] (https://github..

3편. GraphQL Hello Query 실습: 첫 서버 구축하기

3편. GraphQL Hello Query 실습: 첫 서버 구축하기 📚 목차1. createYoga + createSchema로 서버 기본 구성2. 첫 Query 정의와 Schema-Resolver 연결3. Playground에서 요청-응답 테스트4. GraphQL 요청 처리 흐름 시각화✔ 마무리 - 서버 기초와 실무 적용 포인트 이번 실습에서는 GraphQL 서버의 구조와 작동 원리를 직접 체험하며 Schema와 Resolver 개념을 명확히 이해합니다.가장 단순한 hello 쿼리를 예제로, createYoga()와 createSchema()를 이용한 서버 구성, 요청-응답 처리 흐름, 그리고 Playground를 통한 테스트 과정을 단계별로 살펴봅니다. 1. createYoga + createSch..

개발 불확실성 제거 가이드 : Prototype vs PoC vs Spike

개발 불확실성 제거 가이드 : Prototype vs PoC vs Spike 1. 왜 개발 전에 '미리 만들어보는 단계'가 필요할까요?완성된 제품을 바로 만들려고 하는 것은 높은 위험을 동반합니다.개발 초기에는 기능 요구사항이 불확실하거나, 선택한 기술이 실제로 목표 성능을 낼 수 있을지 검증되지 않은 경우가 많기 때문입니다. 이러한 불확실성을 해소하고, 프로젝트의 리스크를 최소화하기 위해 사전 개발 단계는 필수적입니다. ▸ 불확실성 제거: 새로운 기술의 실제 적용 가능성이나 성능 충족 여부를 미리 확인합니다.▸ 실패 비용 감소: 문제가 초기에 발견될수록 수정 비용은 기하급수적으로 줄어듭니다 (ISO/IEC 12207 등 소프트웨어 공학의 핵심 원칙).▸ 설계 품질 향상: 검증된 정보를 바탕으로 최..

2편. GraphQL 서버 개발 환경 구축 (Node.js + TS)

2편. GraphQL 서버 개발 환경 구축 (Node.js + TS) 📚 목차1. 개발 환경 준비 및 TypeScript 기반 프로젝트 초기화2. GraphQL Yoga 및 관련 패키지 설치3. ESLint, Prettier, Dev script 구성(ESLint 9.x + Flat Config)4. 환경 변수 설정(.env 구성)✔ 마무리 - GraphQL 서버 개발 환경 요약 1. 개발 환경 준비 및 TypeScript 기반 프로젝트 초기화GraphQL 서버를 안정적으로 개발하기 위해서는 Node.js 런타임과 VS Code를 먼저 준비하고, TypeScript 기반의 프로젝트 구조를 초기화해야 합니다. 🟦 1) Node.js (v18 이상 권장)GraphQL 백엔드 서버를 만들기 위해서는 먼저..

1편. GraphQL이 필요한 이유: REST와의 차이 완벽 이해

1편. GraphQL이 필요한 이유: REST와의 차이 완벽 이해 📚 목차1. REST API의 구조적 한계와 N+1 문제2. GraphQL 철학과 등장 배경3. 데이터 요청 방식 비교: REST vs GraphQL4. GraphQL 도입 판단 기준 (실무 시나리오)✔ 마무리 - 실무 선택의 기준 현대의 웹 애플리케이션에서는 서버로부터 데이터를 요청하고 응답받는 구조가 사용자 경험에 큰 영향을 미칩니다.특히 백엔드와 프론트엔드 간의 데이터 교환 방식은 API 설계 철학에 따라 크게 달라지며, 대표적인 방식으로 REST와 GraphQL이 있습니다.이 글에서는 REST와 GraphQL의 구조적 차이, 요청 방식, 그리고 실무에서 GraphQL을 도입할지 판단하는 기준을 예시와 함께 살펴봅니다. 1. RES..

LLM 서빙 엔진 이해하기 : vLLM, TGI, TensorRT-LLM, Ollama

LLM 서빙 엔진 이해하기 : vLLM, TGI, TensorRT-LLM, Ollama1. LLM 서빙 엔진이란? - 개념과 등장 배경최근 Large Language Model (LLM) (대형 언어 모델)의 성능이 눈부시게 향상되면서, 단순히 모델을 학습하고 저장하는 것을 넘어 실제 사용자 응답을 처리하는 서빙(Serving) 단계가 핵심이 되었습니다.서빙 엔진은 학습된 모델을 생산환경에서 빠르고 안정적으로 사용 가능하게 하는 시스템으로 볼 수 있습니다.예컨대, 학습이 끝난 모델이 실제 사용자 질문에 답하도록 제공될 때 ▲모델 로딩 ▲입력 처리 ▲출력 생성 ▲API 응답 제공 ▲다중 요청 동시 처리 ▲모니터링과 확장 등이 바로 서빙 엔진의 책임입니다 🔷 등장 배경1. 모델 크기의 급격한 증가▸파라미..

업무프로세스혁신 BPR·PI 쉽게 이해하기

업무프로세스혁신 BPR·PI 쉽게 이해하기기업 경영 환경은 급격히 변화하고 있습니다. 고객 요구는 더욱 다양해지고, 기술은 예측하기 어려운 속도로 발전하며, 경쟁사는 끊임없이 새로운 서비스를 출시하고 있습니다. 이러한 환경 속에서 기업이 생존하고 성장하기 위해서는 더 이상 기존 업무 방식을 유지하는 것만으로는 충분하지 않습니다.업무 프로세스를 전략적으로 혁신하고, 조직의 일하는 방식을 근본적으로 개선하는 일이 필수 과제가 되었습니다.이 글에서는 혁신의 대표적인 개념인 BPR(업무프로세스혁신)과 PI(프로세스혁신)을 이해하기 쉽도록 설명하고, 실제 기업 사례를 통해 그 효과를 구체적으로 소개하고자 합니다.1. BPR(업무프로세스혁신)이란? - 쉽게 이해하는 핵심 개념BPR(Business Process R..

21편. 클라우드 입문 가이드 – 개념, 기술, 실무 활용까지 한눈에 정리하기

21편. 클라우드 입문 가이드 – 개념, 기술, 실무 활용까지 한눈에 정리하기 📚 목차1. 클라우드 컴퓨팅이란? - 정의와 발전 과정2. 클라우드가 바꾼 개발자의 일하는 방식3. 클라우드의 핵심 기술과 구조 이해4. 개발자 입장에서의 클라우드 실무 활용법✔ 마무리 - 클라우드는 선택이 아닌 필수 예전에는 서비스를 만들기 위해 서버를 직접 구매하고 운영체제를 설치하며, 네트워크와 보안을 설정해야 했습니다. 모든 인프라를 개발자가 수동으로 준비하던 시절이었습니다.하지만 이제는 클릭 몇 번, 코드 몇 줄이면 전 세계 수백만 사용자에게 서비스를 제공할 수 있습니다.이 모든 것을 가능하게 만든 것이 바로 클라우드(Cloud)입니다.이 글에서는 클라우드의 개념부터 실무 활용까지, 입문자의 눈높이에서 친절하게 정리..

20편. 컨테이너란 무엇인가? - VM을 넘어서 Docker로 진화한 가상화 기술

20편. 컨테이너란 무엇인가? - VM을 넘어서 Docker로 진화한 가상화 기술 📚 목차1. 가상화란 무엇인가? - 물리 서버를 나누는 기술2. 하이퍼바이저(Hypervisor)란? - 가상머신을 만드는 핵심 중개자3. VM vs 컨테이너 - 무거운 시스템과 가벼운 프로세스의 차이4. 컨테이너(Container)란? - 격리된 앱 실행 환경과 Docker의 역할✔ 마무리 - 컨테이너가 현대 개발에서 중요한 이유 오늘날 소프트웨어 개발에서 가장 자주 언급되는 기술 중 하나는 Docker입니다.처음에는 단순히 '배포 도구'로 인식되기도 하지만, 사실 이 기술은 운영체제의 작동 방식과 깊이 연결되어 있으며, 가상화 기술의 진화라는 맥락 속에서 이해되어야 합니다.이 글에서는 Docker의 명령어보다는, 왜 ..

19편. 인터럽트란 무엇인가? – 컴퓨터가 실시간 반응하는 비밀

19편. 인터럽트란 무엇인가? – 컴퓨터가 실시간 반응하는 비밀 📚 목차1. 인터럽트란? - CPU를 깨우는 스마트 알림2. 하드웨어 vs 소프트웨어 인터럽트 - 신호의 출처는 어디인가?3. 운영체제는 인터럽트에 어떻게 반응하는가?4. 우선순위와 IRQ - 인터럽트는 어떻게 처리될까?✔ 마무리 - 개발 실무 관점에서 본 인터럽트의 중요성 운영체제를 공부하다 보면 자주 마주치는 용어 중 하나가 바로 인터럽트(Interrupt)입니다.생소한 이름과 복잡해 보이는 구조 때문에 처음에는 어렵게 느껴지지만, 사실 인터럽트는 컴퓨터 시스템이 외부 환경과 실시간으로 소통할 수 있게 해주는 핵심 기술입니다. 이 글에서는 인터럽트의 개념부터 하드웨어와 소프트웨어 인터럽트의 차이, 그리고 인터럽트가 발생했을 때 운영체제..

18편. 시스템 콜의 비밀 – read()가 커널을 호출하는 진짜 과정

18편. 시스템 콜의 비밀 – read()가 커널을 호출하는 진짜 과정 📚 목차1. 시스템 콜(System Call)이란? - 운영체제에게 일을 시키는 유일한 방법2. 사용자 공간 vs 커널 공간 - 시스템 콜이 필요한 이유3. 시스템 콜은 어떻게 실행 될까? - 내부 처리 흐름4. strace 실습으로 확인하는 시스템 콜의 흐름5. 시스템 콜의 성능 비용 - 문맥 전환과 최적화 전략✔ 마무리 - 실무에서 시스템 콜을 이해해야 하는 이유 우리가 매일 사용하는 프로그램들은 단순한 코드처럼 보이지만, 사실 운영체제와 끊임없이 대화하며 동작합니다.그 대화의 창구가 바로 시스템 콜(System Call)입니다.이 글에서는 read() 같은 함수가 실제로 운영체제에 어떤 요청을 보내는지, 사용자 프로그램과 커..

안드로이드↔아이폰 파일 전송: Quick Share vs AirDrop 기능 완전 비교(2025)

안드로이드↔아이폰 파일 전송: Quick Share vs AirDrop 기능 완전 비교(2025)2025년 기준 Quick Share와 AirDrop은 기능과 생태계가 크게 변화했습니다. 특히 Pixel 10에서 Quick Share가 AirDrop을 공식 지원하면서 안드로이드 ↔ 아이폰 간 파일 공유가 본격적으로 가능해졌습니다. 이 글에서는 두 기능의 차이, 속도, 보안, 호환성, 실제 사용 팁까지 최신 정보를 기준으로 상세히 비교합니다. 1. 공유 서비스 개요 - Quick Share와 AirDrop의 기본 개념 및 생태계모바일 환경에서 사진, 문서, 영상을 빠르게 주고받는 기능은 이제 운영체제의 필수 요소가 되었습니다.iOS와 Android 모두 자체적인 근거리 무선 전송 기술을 갖추고 있으며, 대..

17편. 터미널과 셸 완전 정복 – CLI로 운영체제를 지배하는 첫 걸음

17편. 터미널과 셸 완전 정복 – CLI로 운영체제를 지배하는 첫 걸음 📚 목차1. GUI와 CLI - 왜 여전히 터미널이 중요한가?2. 셸의 정체 - 커널과 사용자 사이의 통역사3. 셸의 종류 - Bash, Zsh, PowerShell 비교4. 셸 명령어 실습 - 운영체제를 다뤄보자5. 실무에서 CLI가 쓰이는 진짜 이유✔ 마무리 - 실무에서 CLI와 셸이 중요한 이유 운영체제를 제대로 이해하고 활용하려면 터미널(Terminal)과 셸(Shell)은 반드시 익혀야 할 도구입니다.GUI만으로는 할 수 없는 정밀한 작업, 자동화, 원격 제어 등은 모두 CLI(Command Line Interface)를 통해 이뤄집니다. 초보자에게는 낯설고 불편하게 느껴질 수 있지만, 실제로는 개발자와 시스템 엔지니어에..

16편. 파일 시스템 완전 비교: FAT, NTFS, ext4의 구조와 선택 기준

16편. 파일 시스템 완전 비교: FAT, NTFS, ext4의 구조와 선택 기준 📚 목차1. 파일 시스템의 개념과 동작 원리2. FAT vs NTFS vs ext4 - 구조와 기능 비교3. 실전 사례로 알아보는 파일 시스템의 선택과 오류4. 목적에 맞는 파일 시스템 선택법✔ 마무리 - 파일 시스템 선택의 핵심 요약 우리는 매일같이 문서를 저장하고 사진을 꺼내 보지만, 그 이면에서 어떤 시스템이 작동하고 있는지는 잘 알지 못합니다.파일 시스템(File System)은 이런 보이지 않는 저장과 관리를 책임지는 핵심 인프라입니다. 단순한 포맷 형식이 아니라, 데이터의 안정성, 속도, 신뢰성을 좌우하는 중요한 운영체제 구성 요소입니다.이 글에서는 파일 시스템의 개념부터 FAT, NTFS, ext4의 비교, ..

15편. 저장장치 I/O 완전 정복 – 입출력 처리 방식과 병목 진단 실습

15편. 저장장치 I/O 완전 정복 – 입출력 처리 방식과 병목 진단 실습 📚 목차1. 저장장치 I/O는 어떻게 작동할까? - 저장장치 I/O의 흐름 이해2. I/O 처리 방식 비교 - 누가 데이터를 옮기는가?3. I/O 병목 분석 - 어디서 속도가 막히는가?4. 실무 사례로 보는 I/O 성능 저하 원인✔ 마무리 - 성능 튜닝은 I/O 이해에서 시작된다. 운영체제를 학습하다 보면 CPU와 메모리 같은 핵심 자원에만 집중하기 쉽습니다. 그러나 실제 시스템 성능에 있어 저장장치 I/O는 예상을 뛰어넘는 영향을 미칩니다. 아무리 빠른 CPU와 충분한 메모리를 갖췄다 하더라도, 느린 디스크 입출력 속도는 전체 시스템 반응성을 심각하게 떨어뜨릴 수 있습니다.특히 로그 분석, 대규모 빌드, 백업, 영상 처리 등에..

14편. HDD, SSD, NVMe 완전 정복 – 저장장치 속도와 수명의 모든 것

14편. HDD, SSD, NVMe 완전 정복 – 저장장치 속도와 수명의 모든 것 📚 목차1. 저장장치의 진화 - HDD에서 SSD, 그리고 NVMe까지2. HDD,SSD,NVMe의 차이점: 구조부터 속도까지 한눈에3. 실습으로 확인하는 내 PC 저장장치 종류4. SSD 오래 쓰는 법: TRIM 설정과 TBW 수명 확인✔ 마무리 - 저장장치를 이해하면 성능이 보인다 요즘 노트북을 보면 “512GB SSD 탑재”, “NVMe 지원” 같은 문구가 흔히 보입니다.그런데 저장장치가 성능에 얼마나 영향을 주는지, 왜 HDD에서 SSD로 바뀌었는지 궁금하지 않으신가요?혹시 이런 경험 있으신가요?🔸예전 컴퓨터는 부팅에 1분이 걸렸는데, 새 컴퓨터는 10초면 끝나요🔸파일 복사 속도가 너무 느리거나 너무 빠른 이유..

13편. 캐시 메모리로 성능 최적화하기 – CPU를 더 빠르게 만드는 방법

13편. 캐시 메모리로 성능 최적화하기 – CPU를 더 빠르게 만드는 방법 📚 목차1. 캐시 메모리란 무엇인가? - 속도가 성능을 결정한다.2. 캐시 메모리의 계층 구조 - L1, L2, L3의 차이와 역할3. 캐시 히트(Cache Hit)와 미스(Miss) - 실행 속도를 좌우하는 결정적 차이4. 성능 병목을 해결하는 캐시의 힘5. 실전 사례로 보는 캐시 최적화 전략✔ 마무리 - 개발자가 알아야 할 캐시 활용 과점 프로그램이 실행될 때, CPU는 끊임없이 데이터를 불러와 계산하고 결과를 저장합니다. 이때 필요한 데이터를 어디에서 얼마나 빠르게 가져올 수 있느냐가 시스템 전체 성능을 좌우합니다. 이 과정에서 중요한 역할을 하는 것이 바로 캐시(Cache) 메모리입니다. 캐시는 CPU와 메인 메모리 사이..

12편. 페이징과 스와핑 - 운영체제가 메모리 부족을 해결하는 방법

12편. 페이징과 스와핑 - 운영체제가 메모리 부족을 해결하는 방법 📚 목차1. 페이징과 스와핑 - 메모리 절약의 핵심 기술2. 페이지 폴트(Page Fault)의 발생과 처리 과정3. 페이지 교체 알고리즘 - FIFO vs LRU 비교4. OOM(Out-of-Memory) 상황과 OOM Killer의 작동 원리✔ 마무리 - 메모리 위기 상황에 대처하는 운영체제 운영체제는 단순히 ‘메모리가 부족하면 프로그램을 실행할 수 없다’는 식으로 동작하지 않습니다. RAM이 부족해도 여러 프로그램을 동시에 실행할 수 있는 핵심 기술이 바로 페이징(Paging)과 스와핑(Swapping)입니다. 이 글에서는 제한된 메모리로도 다양한 프로그램을 실행할 수 있게 해주는 이 두 기술을 중심으로,🔸 페이지 폴트가 발생하..

11편. 단편화란 무엇인가? – 메모리는 남는데 왜 실행이 안 될까?

11편. 단편화란 무엇인가? – 메모리는 남는데 왜 실행이 안 될까? 📚 목차1. 단편화란 무엇인가? - 메모리는 남는데 실행이 안 되는 이유2. 내부 단편화 vs 외부 단편화 - 메모리 낭비는 어디서 생길까?3. 단편화의 원인 - 고정 분할과 가변 분할 방식의 한계4. 운영체제는 어떻게 단편화를 해결할까? - 세가지 전략✔ 마무리 - 구조를 알면 병목이 보인다 개발을 시작하면서 흔히 듣게 되는 말 중 하나는 "메모리가 부족하다"는 표현입니다.하지만 실제로 시스템을 사용하다 보면, 메모리는 남아 있는데도 프로그램이 실행되지 않는 이상한 상황을 경험할 수 있습니다.이 문제의 핵심에는 바로 단편화(fragmentation)라는 개념이 숨어 있습니다. 단편화는 운영체제가 메모리를 프로그램에게 나눠주는 과정에..

반응형