C 프로그래밍 배우기
무료 인터랙티브 온라인 C 강의입니다. 모든 레슨에서 직접 C 코드를 작성하고, segfault가 날 땐 AI 힌트가 도와주며, 완주하면 무료 수료증까지 받습니다.
123,799+ 명의 codders가 등록함
- 초보자 환영
AI 코딩 도우미
실습 중심의 대화형 강의
모든 레슨에 음성 나레이션 제공
지식을 확인하는 퀴즈
무료 수료증
커리큘럼
섹션 1
Fundamentals
섹션 시작하기시작펼치기접기Build a strong foundation with essential concepts and basic skills소개
4 개 강의326- 01C 언어챌린지
- 02Hello World!챌린지퀴즈
- 03주석퀴즈
- 04프로그램의 기본 구조챌린지퀴즈
변수
11 개 강의1485- 01자료형챌린지퀴즈
- 02정수형챌린지퀴즈
- 03실수형 (Float - Double)챌린지마스터리퀴즈
- 04문자형챌린지퀴즈
- 05불리언챌린지마스터리퀴즈
- 06상수챌린지퀴즈
- 07printf 기초챌린지퀴즈
- 08변수 명명 규칙챌린지퀴즈
- 09형 변환 파트 1챌린지마스터리퀴즈
- 10형 변환 파트 2챌린지퀴즈
- 11복습 챌린지챌린지
연산자
9 개 강의1161- 01산술 연산자챌린지퀴즈
- 02나머지 연산자챌린지마스터리퀴즈
- 03증감 연산자챌린지퀴즈
- 04대입 연산자챌린지퀴즈
- 05관계 연산자챌린지퀴즈
- 06논리 연산자 파트 1챌린지퀴즈
- 07논리 연산자 파트 2챌린지퀴즈
- 08논리 연산자 파트 3챌린지마스터리퀴즈
- 09요약 챌린지챌린지
제어 흐름
7 개 강의944- 01If 문챌린지퀴즈
- 02If - Else 문챌린지퀴즈
- 03Else-If 문챌린지마스터리퀴즈
- 04Switch Case 문챌린지마스터리퀴즈
- 05삼항 조건 연산자챌린지퀴즈
- 06복습 챌린지챌린지
- 07중첩 If - Else 문챌린지퀴즈
입출력
5 개 강의626- 01형식 지정자챌린지퀴즈
- 02scanf 기초챌린지마스터리퀴즈
- 03복습 챌린지 #1챌린지
- 04입력 유효성 검사챌린지퀴즈
- 05복습 챌린지 #2챌린지
반복문
9 개 강의1053- 01For 반복문챌린지마스터리퀴즈
- 02While 반복문챌린지퀴즈
- 03Do While 반복문챌린지퀴즈
- 04Break챌린지퀴즈
- 05Continue챌린지퀴즈
- 06복습 챌린지 #1챌린지
- 07중첩 반복문챌린지마스터리퀴즈
- 08무한 루프퀴즈
- 09복습 챌린지 #2챌린지
함수
7 개 강의1039- 01함수 선언하기챌린지퀴즈
- 02반환 타입챌린지마스터리퀴즈
- 03매개변수챌린지마스터리퀴즈
- 04복습 챌린지 #1챌린지
- 05재귀 기초챌린지마스터리퀴즈
- 06함수 프로토타입챌린지퀴즈
- 07복습 챌린지 #2챌린지
배열
8 개 강의1247- 01배열 선언하기챌린지퀴즈
- 02요소에 접근하기챌린지퀴즈
- 03요소 수정하기챌린지마스터리퀴즈
- 04다차원 배열챌린지마스터리퀴즈
- 05복습 챌린지 #1챌린지
- 06함수 인자로서의 배열챌린지마스터리퀴즈
- 07배열 알고리즘챌린지마스터리퀴즈
- 08복습 챌린지 #2챌린지
최종 도전 과제
3 개 강의3- 01성적챌린지
- 02산봉우리챌린지
- 03TV챌린지
섹션 2
Logic & Flow
섹션 시작하기시작펼치기접기Master advanced C programming with a focus on data structures and flow control. Learn to work with complex arrays, collections, error handling, and time management.포인터 기초
6 개 강의540- 01포인터란 무엇인가요?퀴즈
- 02포인터 선언하기챌린지퀴즈
- 03주소 연산자 (&)챌린지퀴즈
- 04역참조 연산자 (*)챌린지퀴즈
- 05NULL 포인터챌린지퀴즈
- 06요약: 포인터 기초챌린지
포인터와 배열
5 개 강의531- 01포인터로서의 배열 이름챌린지퀴즈
- 02배열 요소와 포인터챌린지퀴즈
- 03포인터 연산챌린지퀴즈
- 04포인터 비교챌린지퀴즈
- 05요약: 포인터를 이용한 배열 순회챌린지
문자 배열과 문자열
8 개 강의858- 01char 배열로서의 문자열챌린지퀴즈
- 02널 종료 문자챌린지퀴즈
- 03scanf를 이용한 문자열 입력챌린지퀴즈
- 04strlen() 사용하기챌린지퀴즈
- 05strcpy() 사용하기챌린지퀴즈
- 06strcat() 사용하기챌린지퀴즈
- 07strcmp() 사용하기챌린지퀴즈
- 08요약: 기본 문자열 함수챌린지
프로젝트: 간단한 텍스트 유틸리티
프로젝트5 개 강의1- 01프로젝트 개요챌린지
- 02글자 수 세기프로젝트
- 03모음 개수 세기프로젝트
- 04대문자로 변환하기프로젝트
- 05최종 출력프로젝트
포인터와 함수
6 개 강의641- 01값에 의한 전달챌린지퀴즈
- 02함수에 포인터 전달하기챌린지퀴즈
- 03포인터를 통한 변수 수정챌린지퀴즈
- 04고전적인 예제: Swap챌린지퀴즈
- 05함수에 배열 전달하기챌린지퀴즈
- 06요약: 함수 포인터 인자챌린지
메모리 관리
7 개 강의652- 01스택 vs 힙 메모리퀴즈
- 02동적 할당 - malloc()챌린지퀴즈
- 03할당을 위한 sizeof() 사용챌린지퀴즈
- 04할당 실패 확인챌린지퀴즈
- 05free()를 이용한 메모리 해제챌린지퀴즈
- 06calloc()을 이용한 할당챌린지퀴즈
- 07요약: 동적 배열챌린지
구조체 (structs)
6 개 강의540- 01구조체란 무엇인가요?퀴즈
- 02구조체 선언하기챌린지퀴즈
- 03구조체 변수 생성하기챌린지퀴즈
- 04구조체 멤버에 접근하기챌린지퀴즈
- 05구조체 초기화하기챌린지퀴즈
- 06요약: 학생 데이터 구조체챌린지
구조체와 포인터
6 개 강의643- 01구조체 포인터챌린지퀴즈
- 02화살표 연산자 (->)챌린지퀴즈
- 03값에 의한 구조체 전달챌린지퀴즈
- 04구조체 포인터 전달챌린지퀴즈
- 05구조체의 동적 할당챌린지퀴즈
- 06복습: 구조체 수정 - 포인터챌린지
프로젝트: 간단한 연락처 입력
프로젝트5 개 강의1- 01프로젝트: 연락처 구조체 정의하기챌린지
- 02연락처 생성 함수프로젝트
- 03연락처 데이터 채우기 함수프로젝트
- 04연락처 출력 함수프로젝트
- 05하나로 합치기프로젝트
열거형(Enum)과 Typedef
6 개 강의640- 01명명된 상수를 위한 enum챌린지퀴즈
- 02열거형(Enum) 선언과 사용챌린지퀴즈
- 03Switch 문에서의 열거형(Enum) 활용챌린지퀴즈
- 04타입 별칭을 위한 typedef 사용챌린지퀴즈
- 05구조체와 typedef챌린지퀴즈
- 06요약: Typedef와 열거형(Enum) 실습챌린지
최종 복습 챌린지
3 개 강의3- 01복습: 동적 문자열 연결챌린지
- 02복습: 구조체 배열챌린지
- 03복습: 단어 빈도수 카운터챌린지
섹션 3
Object Oriented Programming
섹션 시작하기시작펼치기접기Discover how to organize code with classes, objects, and reusable structures모듈형 프로그래밍 기초
5 개 강의433- 01헤더 파일퀴즈
- 02인클루드 가드챌린지퀴즈
- 03소스 파일챌린지퀴즈
- 04정적 함수챌린지퀴즈
- 05요약: 모듈형 계산기챌린지
객체와 메서드
6 개 강의642- 01객체로서의 Struct챌린지퀴즈
- 02'Self' 포인터챌린지퀴즈
- 03Const 정확성챌린지퀴즈
- 04포인터 vs 값챌린지퀴즈
- 05헬퍼 메서드챌린지퀴즈
- 06요약: Point Manager챌린지
객체 생명 주기
5 개 강의533- 01생성자 패턴챌린지퀴즈
- 02소멸자 패턴챌린지퀴즈
- 03스택 초기화챌린지퀴즈
- 04깊은 복사챌린지퀴즈
- 05요약: String Wrapper챌린지
캡슐화
5 개 강의435- 01불투명 포인터 개념퀴즈
- 02불투명 구조체 정의하기챌린지퀴즈
- 03게터와 세터챌린지퀴즈
- 04세터에서의 유효성 검사챌린지퀴즈
- 05요약: 비밀 상자챌린지
프로젝트: 간단한 은행 계좌
프로젝트6 개 강의1- 01프로젝트 설정챌린지
- 02계좌 구현하기프로젝트
- 03입금 로직프로젝트
- 04출금 로직프로젝트
- 05잔액 조회하기프로젝트
- 06프로젝트 마무리: 메인 루프프로젝트
합성을 통한 상속
5 개 강의531- 01구조체 임베딩챌린지퀴즈
- 02첫 번째 멤버 규칙챌린지퀴즈
- 03부모 멤버 접근하기챌린지퀴즈
- 04업캐스팅챌린지퀴즈
- 05요약: 도형 계층 구조챌린지
함수 포인터
5 개 강의534- 01함수 포인터 선언챌린지퀴즈
- 02함수 포인터 호출챌린지퀴즈
- 03함수 포인터를 위한 Typedef챌린지퀴즈
- 04함수를 인자로 전달하기챌린지퀴즈
- 05요약: 계산기 디스패치챌린지
다형성
6 개 강의641- 01구조체 내의 함수 포인터챌린지퀴즈
- 02메서드 시뮬레이션챌린지퀴즈
- 03인터페이스의 개념챌린지퀴즈
- 04인터페이스 구현하기챌린지퀴즈
- 05다형적 순회챌린지퀴즈
- 06요약: Greeter챌린지
프로젝트: 도형 그리기
프로젝트5 개 강의1- 01프로젝트 개요챌린지
- 02원 구현프로젝트
- 03사각형 구현프로젝트
- 04다형성 활용프로젝트
- 05도형 컨테이너프로젝트
제네릭 컨테이너
5 개 강의534- 01Void 포인터 복습챌린지퀴즈
- 02제네릭 래퍼챌린지퀴즈
- 03제네릭 스왑챌린지퀴즈
- 04제네릭 비교챌린지퀴즈
- 05복습: 제네릭 배열챌린지
C 디자인 패턴
4 개 강의425- 01싱글톤 패턴챌린지퀴즈
- 02팩토리 패턴챌린지퀴즈
- 03이터레이터 패턴챌린지퀴즈
- 04요약: Logger Factory챌린지
최종 도전 과제
4 개 강의48- 01RPG 캐릭터챌린지
- 02동적 문자열 빌더챌린지
- 03제네릭 스택챌린지
- 04이벤트 시스템챌린지퀴즈
C 코스
브라우저에서 무료로 시작하는 실습형 C 코스.
입문자 챌린지 - 기초 개념 연습하기
인기여러분의 기초 코딩 지식을 테스트하고 프로그래밍 챌린지들을 해결해 보세요. 원하는 어떤 언어든 사용할 수 있습니다. 즐거운 코딩 되세요!
수료 시 인증서
- 20
- 20
코딩 문제
인기이 코스에서 제공하는 다양한 난이도의 연습 문제를 통해 여러분의 프로그래밍 문제 해결 능력을 시험해 보세요. 프로그래밍 언어의 기초 문법을 어느 정도 알고 있는 개발자를 위해 설계되었습니다.
수료 시 인증서
- 32
- 31
코딩 문제: 2편
이 코스에서 제공하는 다양한 난이도의 연습 문제를 통해 여러분의 프로그래밍 문제 해결 능력을 테스트해 보세요. 어떤 프로그래밍 언어든 기초 문법에 대한 사전 지식이 있는 분들을 위해 설계되었습니다. 이 코스는 '코딩 문제 1편'의 연장선상에 있습니다.
수료 시 인증서
- 25
- 24
스택 - 자료구조 시리즈 #1
이 코스에서는 스택 자료구조에 대해 배우고, 원하는 언어로 스택을 처음부터 직접 구현해 보며 다양한 코딩 챌린지를 연습합니다!
- 13
- 6
- 1
힙 & 우선순위 큐 - 자료구조 시리즈 #7
신규이 코스에서는 우선순위 큐의 핵심인 Heap 자료구조에 대해 배우고, 선호하는 언어로 MinHeap을 처음부터 직접 구현하며 다양한 코딩 챌린지를 연습합니다!
수료 시 인증서
- 14
- 6
- 1
별 찍기 부트캠프
프로그래밍 문제 해결 능력을 발휘하여 기초부터 복잡한 수준까지 다양한 별 패턴을 출력하는 방법을 배워보세요. 다양한 수준의 중첩 반복문, 조건문, 그리고 수학적 계산을 활용하는 법을 익힐 수 있습니다.
- 30
- 28
Coddy에서 C 프로그래밍을 배우는 이유
- 브라우저에서 진짜 C 코드를 작성하고 실행하세요. GCC 설치, Makefile, 툴체인 설정 모두 필요 없습니다. 연습 문제마다 서버에서 C 프로그램을 컴파일해 결과를 바로 보여줍니다.
- 실무에서 쓰이는 그대로의 C: 포인터와 참조, 배열, 문자열, 구조체,
malloc과free로 다루는 동적 메모리, 파일 I/O. 시스템 프로그래머에게 필요한 C의 기초를 모두 담았습니다. - AI 힌트가 C 컴파일러 오류와 segfault를 읽고 고치도록 도와주니, 첫날부터 언어가 난해하게 느껴지지 않고 친근하게 다가옵니다.
- 과정을 끝내면 무료 C 프로그래밍 수료증을 받습니다. C 숙련도가 요구되는 시스템, 임베디드, OS, 게임 엔진 분야에서 통하는 증명이죠.