코딩 튜토리얼
프로그래밍 언어, 디자인 패턴, 알고리즘을 한 페이지로 배우세요. 각 튜토리얼은 먼저 질문에 답하고, 실행되는 코드와 흔한 실수, 공식 참고 자료를 보여 줍니다.
프로그래밍 언어
- 8분 분량Python문법, 타입, 제어 흐름, 함수, 컬렉션, 오류, 파일을 한 페이지로
- 8분 분량JavaScript변수, 타입, 함수, 배열, 객체, Promise, async/await
- 9분 분량TypeScript타입, 인터페이스, 유니온, 타입 좁히기, 제네릭, 오류 처리
- 10분 분량Java타입, 클래스, record, 컬렉션, 예외, 패턴 매칭을 한 페이지로
- 10분 분량C타입, 함수, 배열, 문자열, 포인터, malloc/free, 오류 처리
- 11분 분량C++타입, 클래스, STL 컨테이너, 람다, RAII, 스마트 포인터, 예외
- 10분 분량C#타입, 클래스, record, 컬렉션, LINQ, async/await
- 9분 분량Go타입, 슬라이스, 맵, 구조체, 인터페이스, 고루틴, 채널, 오류
- 10분 분량Rust소유권, 대여, 구조체, 열거형, match, 컬렉션, Result
- 9분 분량PHP변수, 배열, 함수, 클래스, 열거형, 예외, JSON 엔드포인트
- 8분 분량Ruby타입, 메서드, 배열, 해시, 블록, 클래스, 모듈, 예외
- 10분 분량Swift타입, 옵셔널, 클로저, 컬렉션, 구조체, 열거형, 프로토콜, 오류
- 11분 분량Kotlin널 안전성, 제어 흐름, 함수, 데이터 클래스, 코루틴
- 10분 분량DartFlutter용 널 안전성, 함수, 컬렉션, async/await
- 10분 분량ScalaScala 3 문법, 패턴 매칭, 컬렉션, case class
- 9분 분량R벡터, 데이터 프레임, 함수, 통계, 그래프를 한 페이지로
- 12분 분량SQLSELECT, JOIN, GROUP BY, CTE, 트랜잭션, DB 차이
- 10분 분량Bash스크립트, 변수, 따옴표, 반복문, 함수, 파이프, pipefail
- 12분 분량PowerShellCmdlet, 객체 파이프라인, 변수, 함수, 해시테이블
- 10분 분량Lua변수, 테이블, 함수, 메타테이블, pcall을 한 페이지로
- 11분 분량Perl스칼라, 배열, 해시, 서브루틴, 정규식, 오류 처리
- 11분 분량Haskell순수 함수, 타입, 패턴 매칭, 리스트, Maybe, IO
- 10분 분량Elixir패턴 매칭, 파이프, Enum, 프로세스, {:ok, value} 처리
- 10분 분량Erlang패턴 매칭, 재귀, 프로세스, OTP, let-it-crash 오류 처리
- 9분 분량Clojure문법, 불변 컬렉션, 함수, 매크로, atom, 오류 처리
- 9분 분량F#타입, 레코드, 유니온, 패턴 매칭, 파이프라인, Result
- 9분 분량OCaml타입, 레코드, 베리언트, 패턴 매칭, 모듈, 오류 처리
- 9분 분량Julia타입, 배열, 브로드캐스팅, 함수, 다중 디스패치, 오류 처리
- 9분 분량Zig타입, 슬라이스, 옵셔널, 오류 유니온, comptime, defer
- 10분 분량Fortran현대 문법, 타입, 반복문, 프로시저, 모듈, 배열, iostat
- 10분 분량COBOLdivision, PIC, IF/EVALUATE, PERFORM, 테이블
- 12분 분량Assembly (x86-64)x86-64 NASM 레지스터, 명령어, 메모리, 시스템 콜, AT&T
- 11분 분량Visual Basic .NETVB.NET 문법, 타입, 함수, 컬렉션, 클래스, LINQ, VBA
- 10분 분량Objective-C메시지, 클래스, 프로퍼티, Foundation, 블록, ARC
- 9분 분량MATLAB행렬, 인덱싱, 반복문, 함수, 구조체, 셀, 그래프, Octave
디자인 패턴
- 11분 분량디자인 패턴디자인 패턴이란, GoF 23가지 패턴 분류와 선택법
- 9분 분량SOLID 원칙SOLID 5원칙을 TypeScript 전후 비교 예제로 설명
- 7분 분량싱글턴 패턴인스턴스를 하나로: TypeScript 예제, 비동기, 대안
- 7분 분량팩토리 메서드 패턴서브클래스가 객체 생성을 결정: TypeScript 예제와 활용
- 7분 분량추상 팩토리 패턴구체 클래스 없이 관련 객체군을 생성
- 7분 분량빌더 패턴플루언트 API로 복잡한 객체를 단계별로 생성, Director 포함
- 7분 분량프로토타입 패턴인스턴스 복제로 객체 생성: clone(), 깊은/얕은 복사
- 7분 분량어댑터 패턴호환되지 않는 인터페이스 연결: 예제, 객체/클래스 어댑터
- 6분 분량브리지 패턴추상과 구현을 분리해 각각 독립적으로 변경
- 7분 분량컴포지트 패턴단일 객체와 트리를 동일하게 취급: 파일 시스템 예제
- 7분 분량데코레이터 패턴래핑으로 런타임에 동작 추가: 클래스/함수 데코레이터
- 7분 분량퍼사드 패턴복잡한 서브시스템에 단일 진입점: 결제 예제
- 7분 분량플라이웨이트 패턴내부 상태를 공유해 메모리 절약, TypeScript 예제
- 7분 분량프록시 패턴캐시, 지연, 보호, 원격 프록시로 접근 제어
- 7분 분량책임 연쇄 패턴처리될 때까지 핸들러에 요청 전달, 미들웨어 형태 포함
- 7분 분량커맨드 패턴요청을 객체로 만들어 큐, 로그, 실행 취소/다시 실행
- 7분 분량인터프리터 패턴작은 언어를 클래스로 모델링, TypeScript로 식 트리 평가
- 8분 분량이터레이터 패턴내부 구조 노출 없이 순회: Symbol.iterator, 제너레이터
- 6분 분량중재자 패턴직접 참조 대신 중앙 객체로 컴포넌트 조율
- 7분 분량메멘토 패턴내부를 노출하지 않고 상태 저장/복원: 실행 취소, 체크포인트
- 7분 분량옵저버 패턴주체가 바뀌면 구독자에게 자동 알림, 타입 있는 TS 코드
- 7분 분량상태 패턴switch 대신 상태 클래스로 상태별 동작 변경
- 6분 분량전략 패턴교체 가능한 알고리즘을 런타임에 교체: 함수/클래스
- 7분 분량템플릿 메서드 패턴기반 클래스에서 단계를 고정하고 서브클래스가 세부 구현
- 8분 분량비지터 패턴더블 디스패치로 클래스 계층에 연산 추가, 유니온 대안
자료 구조
- 8분 분량연결 리스트단일/이중 연결 리스트: 삽입, 삭제, 뒤집기, 순환 탐지
- 7분 분량스택과 큐Python으로 LIFO 스택과 FIFO 큐: 괄호 검사, BFS
- 7분 분량해시 테이블해시 함수, 버킷, 충돌, 부하율, 리사이즈, Python 코드
- 7분 분량이진 탐색 트리BST 규칙, 탐색, 삽입, 삭제(Python), 균형, 복잡도
- 7분 분량이진 트리 순회전위, 중위, 후위, 레벨 순회: 재귀/반복 Python 코드
- 8분 분량이진 힙힙 속성, 시프트 업/다운, 힙 구성, 우선순위 큐, heapq
- 6분 분량트라이접두사 트리의 삽입, 탐색, 접두사 확인, 자동 완성, 복잡도
- 7분 분량유니온 파인드분리 집합: find, union, 경로 압축, 랭크 합치기
- 8분 분량LRU 캐시해시맵과 이중 연결 리스트로 만드는 LRU 캐시, OrderedDict
알고리즘
- 7분 분량빅오 표기법시간/공간 복잡도, 주요 등급, 코드에서 읽는 법
- 8분 분량재귀기저 조건, 호출 스택, 메모이제이션, 재귀 한도
- 7분 분량이진 탐색정렬된 구간을 반씩 줄이는 법: Python, bisect, 변형, 함정
- 8분 분량투 포인터와 슬라이딩 윈도우양끝, 빠른-느린, 슬라이딩 윈도우: Python 코드와 추적
- 6분 분량버블 정렬인접 요소 교환 방식: 패스별 추적, Python 코드, 복잡도
- 6분 분량선택 정렬최솟값을 고르는 방식: 단계별 추적, Python, 안정성
- 6분 분량삽입 정렬요소를 밀어 삽입: 추적, Python 코드, 안정성, 최선의 경우
- 7분 분량병합 정렬분할 정복 병합 정렬: 추적, Python, 병합 단계, 안정성
- 8분 분량퀵 정렬피벗, Lomuto 분할 추적, Python, 최악의 경우, 퀵셀렉트
- 8분 분량힙 정렬최대 힙, 시프트 다운, 단계별 추적, Python, heapq
- 6분 분량계수 정렬작은 정수 키용 선형 시간 정렬: 추적, 안정적 Python 코드
- 7분 분량기수 정렬LSD/MSD 기수 정렬: 자릿수별 추적, Python, 안정성, 복잡도
- 7분 분량너비 우선 탐색(BFS)큐로 구현하는 BFS: 추적, Python, 최단 경로, O(V + E)
- 7분 분량깊이 우선 탐색(DFS)재귀/반복 DFS: 추적, 순환 탐지, O(V + E) 복잡도
- 7분 분량다익스트라 알고리즘우선순위 큐로 최단 경로: 추적, Python heapq, 복잡도
- 6분 분량벨만-포드 알고리즘음수 가중치 최단 경로, 음수 사이클 탐지, Python 코드
- 7분 분량플로이드-워셜 알고리즘모든 쌍 최단 경로: 행렬 추적, Python, 경로 복원, O(V³)
- 7분 분량A* 탐색f = g + h 휴리스틱 길 찾기: 허용 가능 휴리스틱, 격자 예제
- 8분 분량위상 정렬의존성 순서 정렬: Kahn, DFS, graphlib, 순환 탐지
- 7분 분량최소 신장 트리크루스칼과 프림 알고리즘: 추적, Python, 유니온 파인드, 힙
- 8분 분량동적 계획법메모이제이션과 타뷸레이션, 동전/LCS 추적, Python, 복잡도
- 7분 분량그리디 알고리즘매 단계 지역 최적 선택: 구간 스케줄링 추적, Python, 반례
- 7분 분량백트래킹선택, 탐색, 되돌리기: N-Queens, 부분집합, 순열, 가지치기
- 7분 분량KMP 문자열 검색KMP: 접두사 함수, 추적, Python, O(n + m)
- 8분 분량비트 조작비트 연산자, 단일 비트 요령, 비트 세기, 비트마스크(Python)
언어 튜토리얼은 도구 설치와 Hello, world 출력에서 시작해 함수, 컬렉션, 오류 처리, 작은 완성 프로그램까지 다룹니다. 패턴 페이지는 GoF 패턴이 해결하는 문제를 TypeScript 예제와 쓰지 말아야 할 때와 함께 설명합니다. 자료 구조와 알고리즘 페이지는 예제를 단계별로 따라가며 Python 코드와 시간·공간 복잡도를 제시합니다.
코드 예제는 짧고 그대로 실행됩니다. 모든 페이지는 확인에 사용한 언어 문서, 표준, 원 출처로 연결됩니다.
자주 묻는 질문
처음 배울 프로그래밍 언어로 무엇이 좋나요?
대부분의 초보자에게는 Python이나 JavaScript가 좋습니다. 둘 다 문법이 단순하고 커뮤니티가 크며 어디서나 실행됩니다. 웹사이트는 JavaScript, 데이터·자동화·일반 프로그래밍은 Python을 고르세요.
튜토리얼을 따라 하려면 무엇을 설치해야 하나요?
각 언어 튜토리얼은 공식 도구를 설치하고 첫 프로그램을 실행하는 방법부터 시작합니다. 패턴과 알고리즘 페이지는 TypeScript와 Python을 사용하며, 로컬이나 온라인 실행 환경에서 돌릴 수 있습니다.
이 튜토리얼은 무료인가요?
네. 모든 튜토리얼은 가입 없이 무료로 읽을 수 있고, 코드 예제는 자신의 프로젝트에 재사용할 수 있습니다.
자료 구조와 알고리즘의 차이는 무엇인가요?
자료 구조는 배열, 해시 테이블, 트리처럼 데이터를 저장하는 방식입니다. 알고리즘은 정렬이나 최단 경로 찾기처럼 문제를 푸는 절차이며, 속도는 사용하는 자료 구조에 따라 달라지는 경우가 많습니다.