개발자 키워드 100 인덱스
개발자가 알아야 할 IT 용어 100
단순한 코더를 넘어, 유능한 소프트웨어 엔지니어로 성장하기 위한 핵심 지식 100가지를 선정했습니다.
이 키워드들은 현대 개발 생태계의 근간을 이루는 개념들입니다. 아래 로드맵을 따라 각 주제를 정복하며 여러분의 기술 스택을 한 단계 업그레이드해 보세요. 모든 페이지는 이미 생성되어 여러분의 학습을 기다리고 있습니다.
🚀 프로그래밍 기본기 & 패러다임
견고한 소프트웨어의 기반은 탄탄한 기본기에서 시작됩니다. 다양한 프로그래밍 패러다임을 이해하고, 효율적인 코드를 작성하는 능력을 길러보세요.
- 객체 지향 프로그래밍 (OOP)
- 프로그램을 부품처럼 조립하여 재사용성을 높이고 유지보수를 용이하게 만드는 핵심 설계 사상입니다.
- 함수형 프로그래밍 (Functional Programming)
- 순수 함수를 이용하여 부수 효과를 없애고, 예측 가능하며 테스트하기 쉬운 코드를 작성하는 기법입니다.
- 클래스 & 객체 (Class & Object)
- 객체를 만들기 위한 설계도(클래스)와 그 결과물(객체)의 관계를 이해하는 것은 OOP의 첫걸음입니다.
- 상속 (Inheritance)
- 기존 코드를 물려받아 재사용하고, 코드의 중복을 줄이는 강력한 OOP 도구입니다.
- 다형성 (Polymorphism)
- 같은 이름의 메서드가 다른 동작을 하게 만들어, 유연하고 확장성 있는 코드를 설계할 수 있습니다.
- 캡슐화 (Encapsulation)
- 데이터와 기능을 하나로 묶고 외부의 접근을 제어하여 코드의 안정성과 보안을 높입니다.
- 추상 클래스 (Abstract Class)
- 여러 클래스들의 공통된 특징을 정의하여, 일관성 있는 클래스 설계를 유도하는 뼈대입니다.
- 인터페이스 (Interface)
- 클래스가 반드시 구현해야 할 메서드를 약속(규격)하여, 협업과 시스템 설계를 원활하게 만듭니다.
- 람다 (Lambda)
- 코드를 더 간결하고 가독성 있게 만들어주는 이름 없는 함수 사용법을 익혀보세요.
- 스택 & 힙 (Stack & Heap)
- 프로그램의 메모리가 어떻게 동작하는지 이해하여 메모리 누수와 성능 문제를 해결하는 능력을 갖춥니다.
- 가비지 컬렉션 (Garbage Collection)
- 개발자가 직접 메모리를 관리하는 수고를 덜어주는 자동 메모리 관리 기법의 원리를 파악합니다.
- 컴파일 (Compile)
- 내가 작성한 코드가 어떻게 컴퓨터가 이해하는 언어로 변환되는지 그 과정을 이해합니다.
- 예외 처리 (Exception Handling)
- 예기치 않은 오류 발생 시 프로그램이 비정상적으로 종료되지 않도록 만드는 견고한 코드의 필수 요소입니다.
🏛️ 백엔드 & 소프트웨어 아키텍처
성공적인 서비스의 이면에는 확장 가능하고 안정적인 아키텍처가 있습니다. 대규모 트래픽을 감당하고 유지보수하기 좋은 시스템을 설계하는 능력을 길러보세요.
- 모놀리식 아키텍처 (Monolithic Architecture)
- 모든 기능이 하나로 통합된 전통적인 구조의 장단점을 파악하고, 언제 사용해야 할지 배웁니다.
- 마이크로서비스 아키텍처 (MSA)
- 서비스를 작은 단위로 분리하여 독립적으로 개발하고 배포하는 현대적인 아키텍처의 정수입니다.
- 서버리스 (Serverless)
- 서버 관리에 대한 걱정 없이 오직 코드에만 집중할 수 있게 해주는 클라우드 시대의 새로운 패러다임입니다.
- 디자인 패턴 (Design Pattern)
- 선배 개발자들이 수없이 겪었던 문제들을 해결해 온 검증된 설계 노하우를 학습합니다.
- MVC 패턴 (Model-View-Controller)
- 애플리케이션의 역할을 3가지(모델, 뷰, 컨트롤러)로 나누어 코드의 재사용성과 유지보수성을 높이는 기본 패턴입니다.
- 웹서버 vs WAS
- 정적 파일과 동적 애플리케이션을 어떻게 분리하여 처리하는지, 웹 서비스의 기본 동작 원리를 이해합니다.
- 로드 밸런서 (Load Balancer)
- 대규모 트래픽을 여러 서버로 분산시켜 안정적인 서비스를 제공하기 위한 필수 기술입니다.
- 프록시 (Proxy)
- 보안, 캐싱, 접근 제어 등 다양한 목적으로 클라이언트와 서버 사이의 통신을 제어하는 중개자 역할을 이해합니다.
🌐 웹 & 네트워크
우리가 만드는 서비스는 네트워크를 통해 사용자에게 전달됩니다. 웹과 네트워크의 동작 원리를 깊이 이해하여 빠르고 안정적인 서비스를 만들어보세요.
- HTTP & HTTPS
- 웹 통신의 기반이 되는 프로토콜과, 보안이 추가된 HTTPS의 차이점을 명확히 이해합니다.
- TCP/IP
- 인터넷을 통해 데이터가 어떻게 안정적으로 전송되는지, 그 핵심 원리를 파헤칩니다.
- DNS (Domain Name System)
- 'technote.wiki' 같은 도메인 주소가 어떻게 실제 서버의 IP 주소로 변환되는지 알아봅니다.
- API (Application Programming Interface)
- 프로그램과 프로그램이 서로 대화하는 방법을 정의한 규칙으로, 현대 개발의 필수 요소입니다.
- RESTful API
- 웹 서비스 API를 설계하는 가장 대중적인 스타일의 원칙과 장점을 학습합니다.
- GraphQL
- 클라이언트가 필요한 데이터만 서버에 요청하여 효율성을 극대화하는 새로운 API 설계 방식입니다.
- 쿠키 & 세션 (Cookie & Session)
- 사용자의 로그인 상태 등을 어떻게 유지하는지, 웹의 상태 관리 핵심 기술을 알아봅니다.
- 웹소켓 (WebSocket)
- 채팅, 실시간 알림 등 서버와 클라이언트가 지속적으로 통신해야 할 때 사용하는 기술입니다.
- SSR vs CSR
- 웹 페이지를 어디서(서버 or 클라이언트) 그리는지에 따라 달라지는 성능과 사용자 경험의 차이를 이해합니다.
- 웹어셈블리 (WebAssembly)
- 웹 브라우저에서 네이티브 앱 수준의 속도를 낼 수 있게 해주는 혁신적인 기술입니다.
- 프로그레시브 웹 앱 (PWA)
- 웹 앱을 설치 가능한 네이티브 앱처럼 만들어 사용자 경험을 극대화하는 기술입니다.
- 프라미스 & Async/Await
- 복잡한 비동기 코드를 깔끔하고 이해하기 쉽게 만들어주는 자바스크립트의 필수 문법입니다.
🗃️ 데이터베이스 & 데이터 관리
데이터는 모든 서비스의 심장입니다. 데이터를 효율적으로 저장, 조회, 관리하고 무결성을 지키는 방법을 마스터하세요.
- RDBMS
- 수십 년간 데이터 관리의 표준이었던 관계형 데이터베이스의 기본 구조와 원리를 이해합니다.
- NoSQL
- 빅데이터 시대에 맞춰 등장한 다양한 형태의 비관계형 데이터베이스들의 특징과 사용 사례를 알아봅니다.
- SQL
- 데이터베이스와 대화하기 위한 표준 언어로, 모든 개발자가 알아야 할 필수 기술입니다.
- 데이터베이스 정규화 (Normalization)
- 데이터의 중복을 제거하고 무결성을 높여 데이터베이스를 건강하게 설계하는 방법을 배웁니다.
- 트랜잭션 (Transaction)
- '모두 성공 아니면 모두 실패'를 보장하여 데이터의 일관성을 지키는 중요한 작업 단위입니다.
- ACID
- 신뢰할 수 있는 트랜잭션을 위한 4가지 핵심 원칙(원자성, 일관성, 고립성, 지속성)을 이해합니다.
- 인덱스 (Index)
- 데이터베이스의 조회 속도를 획기적으로 개선하여 서비스 성능을 높이는 핵심 기술입니다.
- ORM (Object-Relational Mapping)
- 프로그래밍 언어의 객체와 데이터베이스의 데이터를 자동으로 연결하여 개발 생산성을 높여주는 도구입니다.
- 데이터베이스 복제 (Replication)
- 데이터를 여러 곳에 복제하여 장애가 발생해도 안정적으로 서비스를 운영하는 방법을 배웁니다.
- 샤딩 (Sharding)
- 하나의 거대한 데이터베이스를 여러 개로 분할하여 대용량 데이터를 효율적으로 처리하는 기술입니다.
- 캐싱 (Caching)
- 자주 사용하는 데이터를 더 빠른 저장소에 임시 보관하여 시스템 전체의 응답 속도를 높이는 기법입니다.
☁️ 클라우드 & 인프라
이제 인프라는 소유하는 것이 아니라 빌려 쓰는 시대입니다. 클라우드 환경에서 애플리케이션을 효율적으로 구축, 배포, 운영하는 방법을 배우세요.
- 클라우드 컴퓨팅 (Cloud Computing)
- 서버, 스토리지 등을 인터넷을 통해 빌려 쓰는 현대 IT 인프라의 핵심 개념을 이해합니다.
- IaaS, PaaS, SaaS
- 클라우드가 제공하는 다양한 서비스 모델의 차이점을 이해하고 상황에 맞는 서비스를 선택하는 능력을 기릅니다.
- 가상화 (Virtualization)
- 하나의 물리 서버를 여러 개의 가상 서버로 나누어 쓰는 클라우드의 기반 기술을 이해합니다.
- 컨테이너 (Container)
- 어떤 환경에서든 동일하게 실행되는 격리된 공간에 애플리케이션을 담는 기술입니다.
- 도커 (Docker)
- 컨테이너 기술을 가장 쉽게 사용할 수 있게 해주는 사실상의 표준 플랫폼입니다.
- 쿠버네티스 (Kubernetes)
- 수많은 컨테이너들을 자동으로 관리하고 오케스트레이션하는 컨테이너 시대의 필수 도구입니다.
- CI/CD
- 코드 변경부터 배포까지의 전 과정을 자동화하여 빠르고 안정적으로 서비스를 업데이트하는 방법입니다.
- 엣지 컴퓨팅 (Edge Computing)
- 사용자와 가까운 곳에서 데이터를 처리하여 응답 속도를 극대화하는 차세대 컴퓨팅 모델입니다.
🛡️ 보안
잘 만든 서비스도 보안이 뚫리면 한순간에 무너집니다. 사용자의 데이터와 시스템을 안전하게 지키기 위해 개발자가 반드시 알아야 할 보안 지식을 갖추세요.
- 암호화 & 복호화 (Encryption & Decryption)
- 데이터를 안전하게 보호하는 가장 기본적인 방법인 암호화와 그 해독 과정의 원리를 이해합니다.
- 대칭키 & 비대칭키 (Symmetric & Asymmetric Key)
- 암호화에 사용되는 키의 종류에 따른 두 가지 주요 방식의 차이점과 사용 사례를 알아봅니다.
- SSL/TLS
- 인터넷 통신을 암호화하여 중간에서 데이터를 훔쳐보지 못하게 하는 필수 보안 프로토콜입니다.
- 해싱 (Hashing)
- 비밀번호 등을 안전하게 저장하기 위해 원본을 알 수 없는 고정된 길이의 값으로 바꾸는 기술입니다.
- API 키 (API Key)
- 허가된 사용자나 애플리케이션만이 API를 호출할 수 있도록 하는 인증 수단입니다.
- JWT (JSON Web Token)
- 사용자의 인증 정보를 안전하고 효율적으로 전달하기 위해 널리 사용되는 토큰 기반 인증 방식입니다.
- OAuth
- 사용자의 비밀번호 없이도 다른 서비스의 기능에 안전하게 접근할 수 있게 해주는 인증 프로토콜입니다.
- CORS (Cross-Origin Resource Sharing)
- 웹 브라우저의 보안 정책으로 인해 발생하는 '다른 출처'의 리소스 요청 문제를 해결하는 방법을 배웁니다.
- SQL 인젝션 (SQL Injection)
- 공격자가 악의적인 SQL 코드를 주입하여 데이터베이스를 공격하는 가장 흔하고 위험한 공격 유형을 이해하고 방어합니다.
- XSS (Cross-Site Scripting)
- 공격자가 웹사이트에 악성 스크립트를 심어 다른 사용자의 정보를 탈취하는 공격을 방어하는 방법을 배웁니다.
- CSRF (Cross-Site Request Forgery)
- 사용자가 모르는 사이에 공격자가 의도한 행동을 하도록 만드는 공격의 원리와 방어법을 알아봅니다.
- IAM (Identity and Access Management)
- '누가 무엇을 할 수 있는지'를 정의하여 시스템 자원에 대한 접근을 체계적으로 관리하는 방법입니다.
- 시크릿 관리 (Secret Management)
- API 키, 데이터베이스 암호 등 민감한 정보를 코드에서 분리하여 안전하게 관리하는 기법입니다.
🛠️ 개발 문화 & 도구
훌륭한 소프트웨어는 뛰어난 개발 문화와 효율적인 도구 위에서 만들어집니다. 더 나은 개발자, 더 나은 동료가 되기 위한 방법을 고민해보세요.
- 애자일 (Agile)
- 빠르게 변화하는 요구사항에 유연하게 대처하는 현대적인 소프트웨어 개발 철학입니다.
- 스크럼 (Scrum)
- 애자일을 실천하는 가장 대표적인 방법론으로, 짧은 주기의 '스프린트'를 통해 제품을 개발합니다.
- 버전 관리 (Version Control)
- 코드의 변경 이력을 모두 기록하여 언제든 원하는 시점으로 돌아가거나 협업을 원활하게 만들어주는 시스템입니다.
- Git
- 전 세계 개발자들이 가장 많이 사용하는 분산 버전 관리 시스템의 사용법을 익힙니다.
- GitHub & GitLab
- Git으로 관리되는 코드를 저장하고, 동료들과 함께 협업하는 데 사용하는 웹 기반 플랫폼입니다.
- 클린 코드 (Clean Code)
- 나 자신과 동료들을 위해 읽기 쉽고, 이해하기 쉬우며, 유지보수하기 좋은 코드를 작성하는 원칙입니다.
- 코드 리팩토링 (Code Refactoring)
- 코드의 기능은 그대로 둔 채, 내부 구조를 개선하여 더 건강하고 효율적인 코드로 만드는 과정입니다.
- 코드 리뷰 (Code Review)
- 동료의 코드를 함께 검토하며 잠재적인 버그를 찾고, 지식을 공유하며 함께 성장하는 중요한 문화입니다.
- 테스트 코드 (Test Code)
- 내가 작성한 코드가 의도대로 잘 동작하는지 검증하는 코드를 작성하여 소프트웨어의 안정성을 높입니다.
- TDD (Test-Driven Development)
- 테스트 코드를 먼저 작성하고, 그 테스트를 통과하는 실제 코드를 작성하는 개발 방법론입니다.
- BDD (Behavior-Driven Development)
- 개발자뿐만 아니라 기획자, 테스터 등 모두가 이해할 수 있는 '시나리오'를 기반으로 개발을 진행하는 방식입니다.
- 기술 부채 (Technical Debt)
- 빠른 개발을 위해 남겨둔 '언젠가 해결해야 할 찝찝함'을 어떻게 관리하고 갚아나갈지 알아봅니다.
- 라이선스 (License)
- 오픈소스를 올바르게 사용하고, 내 코드의 저작권을 지키기 위해 반드시 알아야 할 법적 규약입니다.
- 오픈소스 (Open Source)
- 전 세계 개발자들의 지식과 노력이 담긴 공개된 코드를 활용하고 기여하는 방법을 배웁니다.
- 로우코드 & 노코드 (Low-code & No-code)
- 코딩을 최소화하여 비전문가도 애플리케이션을 만들 수 있게 하는 개발 방식의 미래를 엿봅니다.
✨ 최신 기술 & 트렌드
끊임없이 발전하는 기술 생태계에서 뒤처지지 않으려면 새로운 기술과 트렌드에 항상 귀를 기울여야 합니다. 미래를 주도할 기술들을 미리 만나보세요.
- 인공지능 & 머신러닝 (AI & Machine Learning)
- 데이터를 통해 스스로 학습하고 예측하는 기계를 만드는 기술의 기본 개념을 이해합니다.
- 빅데이터 (Big Data)
- 방대한 데이터 속에서 의미 있는 가치를 찾아내는 기술과 그 처리 방법을 알아봅니다.
- 블록체인 (Blockchain)
- 데이터를 여러 곳에 분산 저장하여 위변조를 불가능하게 만드는 신뢰의 기술, 그 원리를 파악합니다.
- NFT (Non-Fungible Token)
- 디지털 자산에 고유한 소유권을 부여하는 대체 불가능 토큰의 개념과 활용 사례를 알아봅니다.
- 사물 인터넷 (IoT)
- 세상의 모든 사물이 인터넷으로 연결되는 시대의 핵심 기술과 그 가능성을 탐색합니다.
- 메타버스 (Metaverse)
- 현실과 가상이 공존하는 3차원 세계, 메타버스를 구성하는 기술과 미래를 조망합니다.
- 디지털 트윈 (Digital Twin)
- 현실의 기계나 장비를 가상 세계에 그대로 복제하여 시뮬레이션하고 문제를 예측하는 기술입니다.
- 양자 컴퓨팅 (Quantum Computing)
- 기존 컴퓨터의 한계를 뛰어넘는 차세대 컴퓨팅 기술의 원리와 가능성을 엿봅니다.
- 핀테크 & 테크핀 (FinTech & TechFin)
- 기술이 금융을 어떻게 혁신하고 있는지, 그 중심에 있는 기술과 서비스를 이해합니다.