네, 영상과 실습자료로 쉽게 학습할 수 있습니다. 알지오는 원격평생교육원으로 프로그램 관련 정보는 제공하지 않습니다.
C샵 [기초 + 실무까지]
이 강의에서 배우는 핵심 실무
비주얼 스튜디오 코드에서 C#을 실행하고 숫자형과 분기·반복문으로 프로그램의 흐름을 작성합니다. 튜플과 무시항목, 형식 분해 및 확장메서드를 살펴보고 패턴 일치로 데이터 형태에 따른 처리를 구성합니다. LINQ 표준 쿼리 연산자와 비동기 프로그래밍으로 이어가며 기본 구문을 자료 조회와 작업 실행을 다루는 코드로 확장해봅니다.
수강 전 꼭 확인하세요
수강 전 자주 묻는 내용을 간단히 안내드립니다.
검증된 커리큘럼과 전문 강사진으로 높은 만족도를 제공합니다.
자세히 보기 >작은 나눔이 더 나은 내일을 만듭니다.
자세히 보기 >수강생 리얼후기!
실제 수강생의 학습 경험을 확인해 보세요.
수강후기를 불러오는 중입니다.
최근 수강질문
최근 등록된 수강질문을 작성순서대로 확인해 보세요.
C#을 더 깊게 이해하기
C#의 공식 기능과 .NET 생태계, 실제 개발 흐름을 알지오의 20강 커리큘럼과 연결해 한눈에 이해할 수 있도록 정리했습니다.
C#이란?
C#은 .NET 생태계의 주요 범용 프로그래밍 언어입니다. 숫자 계산과 조건 분기에서 시작해 데이터 모델, 질의, 비동기 작업을 하나의 언어 안에서 표현합니다. 정적이고 강한 타입 시스템을 사용하므로 컴파일러는 변수의 형식과 허용되는 연산을 검사해 여러 실수를 실행 전에 알려줍니다.
타입 안전성은 모든 오류가 사라진다는 뜻이 아닙니다. 파일이 없거나 입력이 잘못되거나 객체가 null인 상황은 별도 대응이 필요합니다. 객체지향뿐 아니라 generics로 타입을 재사용하고, LINQ로 데이터 처리를 조합하며, pattern matching으로 분기 규칙을 표현하는 방식도 지원합니다. 예외 처리·records·nullable reference types·async/await는 각각 실패, 데이터 모델, null 가능성, 작업 대기를 다루기 위해 존재합니다.
C#과 .NET의 관계
C#은 코드를 표현하는 언어입니다. .NET은 SDK(빌드 도구·컴파일러), runtime(실행 환경), libraries(파일·컬렉션·네트워크 등의 기능)를 포함하는 개발 플랫폼입니다. Visual Studio와 VS Code는 편집·실행·디버깅을 돕는 개발도구입니다. 도구를 바꾸더라도 언어와 플랫폼의 역할은 구분됩니다.
C# 소스는 일반적으로 컴파일되어 IL과 형식 메타데이터를 포함한 어셈블리가 되고, .NET 런타임은 필요한 코드를 JIT 컴파일해 실행합니다. Native AOT처럼 미리 기계어로 게시하는 방식도 있어 모든 프로그램의 실행 경로가 완전히 같지는 않습니다.
- C# 코드
- 컴파일러 · IL/메타데이터
- .NET 런타임
- 애플리케이션
C# 핵심 기능
아래 카드는 공식 언어 개념과 사용 목적을 정리합니다. 회차 표시는 이 강좌 공개 커리큘럼에 해당 개념이 등장하는 위치이며, 모든 하위 기능의 완전한 숙달을 보장하는 표시는 아닙니다.
Type System
변수와 연산에 형식을 부여해 잘못된 조합을 실행 전에 찾습니다. var도 컴파일러가 형식을 추론하는 정적 타입 변수입니다.
형식과 변수 · 1~2강Class & Object
클래스는 상태와 동작의 설계이며 개체는 실행 중 만들어지는 인스턴스입니다. 은행 계좌처럼 함께 관리할 데이터와 행동을 묶습니다.
클래스 · 1·4·10강Interface
서로 다른 구현이 지켜야 할 기능 계약입니다. 호출자는 구체적인 클래스 대신 계약에 의존해 구현을 교체할 수 있습니다.
인터페이스 · 1·4강Generics
List<T>처럼 사용할 형식을 매개 변수로 받습니다. 공통 로직을 재사용하면서 요소의 형식 검사를 유지합니다.
제네릭 · 3·15강Exception Handling
실패를 예외로 전달하고 처리할 수 있는 위치에서 대응합니다. 정상 흐름과 오류 처리 흐름을 구분하는 데 사용합니다.
예외 처리 · 7~10강Pattern Matching
값·타입·데이터의 모양을 검사해 분기합니다. 복잡한 조건을 의도가 보이는 규칙으로 정리할 수 있습니다.
패턴 일치 · 5·10·11강Records
데이터 중심 타입에 값 기반 동등성 등 합성 기능을 제공합니다. record class와 record struct가 있으며 모든 record가 자동으로 불변인 것은 아닙니다.
레코드 · 3·11강Nullable Reference Types
참조가 null일 수 있음을 주석과 흐름 분석으로 표현합니다. 실행 시 null을 차단하는 장치가 아니라 컴파일러 경고로 위험을 드러냅니다.
null 허용 참조 · 12강LINQ
데이터의 필터·변환·정렬·그룹화를 질의로 표현합니다. 처리 목적을 드러내고 여러 연산을 조합하는 데 사용합니다.
질의·연산자 · 13~18강Extension Methods
기존 타입을 수정하지 않고 메서드 호출 형태로 기능을 더합니다. 상속이나 인스턴스 메서드 재정의와는 다릅니다.
확장 메서드 · 6~7강Async / Await
완료를 기다리는 작업을 이어서 실행하도록 표현합니다. 파일이나 네트워크 대기 중 호출 스레드를 붙잡지 않는 흐름에 유용합니다.
비동기 · 19~20강Collections
여러 요소를 저장하고 검색·정렬·순회합니다. 배열과 List<T>의 크기·변경 방식에 맞춰 데이터 구조를 선택합니다.
목록·배열 · 3·8강C# 프로그램의 실행 흐름
프로젝트를 만들고 코드를 작성한 뒤 빌드하면, 컴파일러가 구문·타입을 검사하고 실행 결과물을 만듭니다. 빌드에는 컴파일뿐 아니라 의존성 확인과 출력물 준비도 포함되므로 둘은 독립적으로 이어지는 동일한 작업이 아닙니다. 실행 중 잘못된 값이나 흐름을 발견하면 디버깅으로 원인을 좁히고 다시 수정·빌드합니다.
1강은 VS Code의 확장 설치와 실행·컴파일 환경을 연결하는 출발점입니다. 일반적으로 dotnet build로 빌드하고 dotnet run으로 실행할 수 있습니다. 배포는 대상 환경·설정·의존성을 정리하는 이후 과정이며 본 강좌의 핵심 범위가 아닙니다.
- 코드 작성
- 빌드 안에서 컴파일
- 런타임에서 실행
- 디버깅 · 다시 수정
- 이후 배포
타입 시스템과 객체지향
값 형식은 대입할 때 값을 복사하고, 참조 형식은 개체를 가리키는 참조를 복사합니다. 참조 형식 변수 둘이 같은 개체를 가리키면 한쪽에서 바꾼 상태가 다른 쪽에도 보일 수 있습니다. 이 차이를 단순히 스택과 힙의 차이로 외우면 실제 저장 위치와 수명을 오해하기 쉽습니다.
int·decimal·bool 같은 기본형과 struct·enum은 값 형식입니다. class·배열·string은 참조 형식이며 string은 불변입니다. record는 class 또는 struct 형태로 데이터 모델을 표현하고, interface는 구현이 제공할 계약을 정의합니다. generic은 별도의 값/참조 분류가 아니라 타입 매개 변수로 형식과 알고리즘을 재사용하는 방식입니다.
추상화는 필요한 특성을 골라 모델을 만드는 일입니다. 캡슐화는 상태를 검증된 동작을 통해 바꾸게 하는 일입니다. 상속은 기반 타입의 관계와 동작을 이어받는 일이며, 다형성은 같은 계약의 호출이 실제 구현에 따라 다르게 동작하도록 만드는 일입니다. 모든 문제를 상속으로 해결할 필요는 없고, 함수·조합·질의도 문제에 맞게 함께 사용합니다.
실무에서 사용하는 기능
읽기 쉬운 문법보다 중요한 것은 경계와 실패 조건을 설명할 수 있는 코드입니다. 다음 기능은 847의 실제 공개 커리큘럼과 연결됩니다.
예외 처리
try에서 작업하고 catch에서 처리 가능한 실패에 대응하며 finally로 정리 흐름을 구성합니다. throw는 실패를 호출자에게 전달합니다. 예외를 무조건 삼키면 문제를 숨기므로 복구할 수 있는 범위를 먼저 정합니다.
7~10강확장 메서드
기존 타입에 호출 문법을 더해 분해·데이터 처리 기능을 정리합니다. 원본 클래스 수정이 불가능한 경우에도 쓸 수 있지만 인스턴스의 내부 접근 권한이 생기지는 않습니다.
6~7강문자열 보간
문자열 안에 식과 서식 정보를 넣습니다. 화면·로그 출력의 의도를 보여주지만 SQL 안전성이나 입력 검증을 자동으로 제공하지 않습니다.
13강Index / Range
^와 ..로 끝 기준 위치나 구간을 표현합니다. 지원 타입에 따라 슬라이스의 복사·뷰 의미가 달라지므로 경계와 비용을 확인합니다.
12강Nullable
string?처럼 null 가능성을 API의 의도에 포함합니다. 경고를 없애기 전에 값이 비어 있을 때의 처리 경로를 설계합니다.
12강Pattern matching
타입과 값·속성 조건으로 분기합니다. 통행료처럼 입력 형태에 따라 계산 규칙이 달라지는 로직을 표현하는 데 유용합니다.
5·10·11강LINQ 완전 이해
LINQ는 질의를 언어에 통합하는 기능군입니다. 반복문이 요소를 어떻게 순회할지 직접 표현한다면, LINQ는 어떤 요소를 선택하고 어떤 결과로 바꿀지 연산 조합으로 표현합니다. 반복문을 없애는 규칙이 아니라 의도가 잘 드러나는 표현을 선택하는 도구입니다.
IEnumerable<T> 기반 질의는 많은 경우 열거 시 실행됩니다. 질의를 선언했다고 결과가 이미 고정되는 것은 아니며 원본 변경·반복 열거 비용을 고려해야 합니다. ToList 같은 구체화는 결과를 즉시 모으지만 메모리 비용이 발생합니다. IQueryable 제공자는 식을 외부 데이터 원본의 질의로 번역할 수 있어 모든 C# 식이 동일하게 지원되는 것도 아닙니다.
13강에서 질의의 세 부분과 지연·즉시 실행을 시작하고, 14강에서 where·orderby·join·group·select를 연결합니다. 15강은 형식 관계와 프로젝션·SelectMany·Zip, 16강은 집합·정렬·수량자·분할, 17강은 조인, 18강은 그룹화를 다룹니다. 아래 흐름은 개념도이며 모든 질의가 모든 단계를 거치는 것은 아닙니다.
- 원본
- Where · 필터
- Select · 변환
- OrderBy · 정렬
- GroupBy · 묶음
- 결과
Where / Select
조건에 맞는 요소를 남기고 필요한 값으로 바꿉니다. 예를 들어 합격자 목록에서 이름만 얻는 두 단계입니다.
14~15강OrderBy / GroupBy
순서를 정하거나 같은 키로 요소를 묶습니다. 정렬과 그룹화는 결과의 형태와 처리 비용이 다릅니다.
14·16·18강Join
두 원본의 키를 대응시켜 결합합니다. 일치하지 않는 항목을 어떻게 처리할지 조인 방식과 함께 정합니다.
14·17강Distinct / Union / Intersect
중복 제거·합집합·교집합을 표현합니다. 개체의 동등성 기준이 결과에 영향을 줍니다.
16강SelectMany
각 요소에서 나온 여러 항목을 하나의 시퀀스로 펼칩니다. 주문별 품목처럼 중첩된 컬렉션을 다룰 때 사용합니다.
15강var scores = new[] { 72, 95, 81, 60 };
var passed = scores.Where(score => score >= 80)
.OrderByDescending(score => score)
.ToList();
// 결과: 95, 81 — 질의 실행을 ToList에서 구체화합니다.async / await와 비동기
동기 호출은 작업이 끝날 때까지 해당 흐름이 기다립니다. 비동기 호출은 완료를 나타내는 작업을 반환하고, await는 완료 뒤 이어갈 지점을 표현합니다. TAP(Task-based Asynchronous Pattern)은 Task 등을 통해 완료·결과·실패를 전달하는 패턴입니다. async 키워드 자체가 새 스레드를 만드는 것은 아닙니다.
I/O-bound는 파일·네트워크 응답을 기다리는 작업입니다. 제공되는 비동기 I/O API를 await하는 방식이 기본입니다. CPU-bound는 계산 자체가 오래 걸리는 작업입니다. 상황에 따라 Task.Run으로 계산을 다른 스레드에서 수행할 수 있지만 서버 요청마다 무조건 감싸는 것이 성능 개선은 아닙니다.
Task<T>는 앞으로 얻을 결과를 나타냅니다. ValueTask<T>는 동기 완료가 잦은 경우 등에 할당 비용을 줄일 수 있지만 사용 제약이 있으므로 무조건 Task 대신 쓰지 않습니다. IAsyncEnumerable<T>는 결과를 비동기 스트림으로 하나씩 받고 await foreach로 소비합니다. 19강의 CPU/I/O 바인딩·Task 반환형과 20강의 ValueTask·비동기 스트림·파일 접근·취소를 연결해 학습합니다.
- 작업 시작
- I/O 완료 대기
- 다른 작업 가능
- await 이후 계속
- 결과 · 예외 · 취소
C#으로 무엇을 만들 수 있나
언어 기반은 여러 앱 분야로 이어지지만 플랫폼별 UI·배포·보안은 별도 학습이 필요합니다. 아래 분야를 모두 본 강좌에서 제작하는 것은 아닙니다.
Desktop
Windows에서는 WPF·Windows Forms 등으로 창 기반 앱을 만듭니다. 플랫폼과 UI 프레임워크의 지원 범위를 확인해야 합니다.
다음 학습 추천 · GUI는 강좌 범위 밖Web / API
ASP.NET Core로 HTTP 요청·응답과 웹 서비스를 구성합니다. 라우팅·인증·데이터 저장을 추가로 배웁니다.
다음 학습 추천 · 웹 프레임워크는 범위 밖Cloud / Server
서버 서비스와 백그라운드 작업에 활용합니다. 운영 로그·설정·배포·모니터링이 함께 필요합니다.
다음 학습 추천Business Application
클래스로 업무 데이터를 모델링하고 검증·계산 흐름을 만듭니다. 은행 계좌 클래스 실습은 모델링의 출발점입니다.
본 강좌 연결 · 10강 클래스 실습Game-related development
Unity 등의 환경에서 C#을 게임 로직에 사용할 수 있습니다. 엔진의 런타임·지원 언어 버전은 최신 .NET과 같다고 가정하면 안 됩니다.
다음 학습 추천 · 엔진 제작은 범위 밖Data processing
목록의 필터·집합·조인·그룹화로 데이터를 정리합니다. 대규모 데이터에서는 실행 위치와 메모리 비용도 살핍니다.
본 강좌 연결 · 13~18강 LINQAutomation / Tools
콘솔 도구와 파일 처리 작업을 만들 수 있습니다. 오류·취소·경로 검증은 자동화에서도 필요합니다.
본 강좌 연결 · 13·20강 기반C# 14 · .NET 10과 이 강좌
2026-10-05에 확인한 안정 버전 기준은 C# 14와 .NET 10입니다. 언어 버전은 프로젝트의 대상 프레임워크와 SDK·컴파일러 지원 관계를 함께 확인해야 합니다. Preview 설정과 안정 버전 기능을 같은 조건으로 설명하지 않습니다.
현재 C# 참고정보: C# 14에는 extension members, field-backed properties, null-conditional assignment, Span 관련 변환 개선, partial 생성자·이벤트 등 확장이 있습니다. 이 항목들은 본 강좌 공개 커리큘럼에서 직접 다루는 내용으로 확인되지 않았습니다. 6~7강의 기존 확장 메서드를 C# 14 extension members 학습과 동일하게 보지 마세요.
이 강좌는 형식·클래스·패턴·records·nullable·LINQ·비동기를 학습하는 과정입니다. 최신 기능 전부를 가르치는 C# 14 전용 강좌라는 의미는 아닙니다. 실습 환경과 공식 최신 환경의 차이는 버전 문서로 확인하고 신규 기능은 이후 학습으로 구분합니다.
C# vs Java vs C++ vs Python
어느 언어가 항상 더 낫다는 결론보다 앱의 실행 환경, 기존 시스템, 팀의 도구와 성능 요구를 먼저 비교하세요. 난이도는 문법의 짧음뿐 아니라 타입·메모리·운영 모델까지 이해해야 하는 정도에 따라 달라집니다.
| 항목 | C# | Java | C++ | Python |
|---|---|---|---|---|
| 타입 시스템 | 정적 타입 · 추론 · generics | 정적 타입 · generics | 정적 타입 · templates | 동적 타입 · 선택적 타입 힌트 |
| 실행 환경 | 주로 .NET · JIT/AOT | 주로 JVM · JIT/AOT | 주로 네이티브 컴파일 | 주로 인터프리터 · 구현별 차이 |
| 메모리 관리 | 관리 힙 GC · 자원은 별도 해제 | 관리 힙 GC · 자원은 별도 해제 | 객체 수명 · RAII · 스마트 포인터 | 자동 관리 · 구현별 GC 방식 |
| 대표 활용 | 업무 앱 · 웹/API · 도구 | 서버 · 업무 시스템 | 시스템 · 엔진 · 네이티브 앱 | 자동화 · 데이터 · 웹 |
| 개발 생태계 | .NET · NuGet | JVM · Maven/Gradle | 컴파일러 · CMake · 네이티브 라이브러리 | PyPI · 가상환경 |
| 성능 접근 | 측정 후 할당·질의·I/O 최적화 | 측정 후 JVM·할당·I/O 최적화 | 메모리·자료구조·기계어 비용 제어 | 알고리즘 · 벡터화 · 네이티브 확장 |
| 학습 특성 | 타입과 런타임을 함께 이해 | 타입과 JVM을 함께 이해 | 수명·포인터·빌드 이해 필요 | 시작 문법은 간결 · 실행 시 형식 오류 고려 |
C# 공식기능과 알지오 20강 연결
학습 상태는 공개 커리큘럼에서 확인한 범위를 뜻합니다. 회차에 언급되지 않은 enum 등의 참고 개념과 최신 기능은 직접 학습 항목으로 표시하지 않습니다.
| 공식개념 | 무엇인가 | 실무 의미 | 강좌 회차 | 학습 상태 |
|---|---|---|---|---|
| 형식·변수·숫자 | 데이터 형식과 연산 | 잘못된 연산 예방 | 1~2강 | 강좌에서 직접 학습 |
| 클래스·개체·구조체·인터페이스 | 상태·동작과 계약 | 업무 모델 설계 | 1·4·10강 | 강좌에서 직접 학습 |
| 조건문·반복문 | 분기와 반복 흐름 | 알고리즘 기본 제어 | 2강 | 강좌에서 직접 학습 |
| 컬렉션·제네릭 | 목록과 타입 매개 변수 | 타입 안전한 재사용 | 3·15강 | 강좌에서 직접 학습 |
| 상속·다형성 | 기반·파생·가상 멤버 | 구현을 교체하는 설계 | 4~5·10강 | 강좌에서 직접 학습 |
| 패턴 매칭 | is·switch·타입/데이터 분기 | 복잡한 판단 규칙 표현 | 5·10·11강 | 강좌에서 직접 학습 |
| 튜플·분해·무시 항목 | 결과 묶기와 필요한 값 추출 | 여러 반환값 처리 | 6~7강 | 강좌에서 직접 학습 |
| 확장 메서드 | 기존 타입의 호출 형태 확장 | 보조 기능 재사용 | 6~7강 | 강좌에서 직접 학습 |
| 예외 처리 | try/catch/finally·throw | 실패 전달과 정리 | 7~10강 | 강좌에서 직접 학습 |
| 코딩 규칙·대리자·이벤트 | 명명·레이아웃·호출 연결 | 일관된 코드와 동작 연결 | 8~10강 | 기초 소개 |
| 형변환 | is/as와 타입 검사 | 입력·객체 타입에 대응 | 10강 | 강좌에서 직접 학습 |
| Records | 값 중심 비교·with | 데이터 중심 모델 표현 | 3·11강 | 강좌에서 직접 학습 |
| 최상위 문·Index/Range | 진입 코드·구간 접근 | 간결한 시작과 부분 데이터 처리 | 12강 | 강좌에서 직접 학습 |
| Nullable reference types | null 허용 참조 | null 위험을 분석 | 12강 | 강좌에서 직접 학습 |
| 문자열 보간 | 식·너비·서식 | 출력 형식을 명확히 표현 | 13강 | 강좌에서 직접 학습 |
| LINQ 실행·구문·형식 | 질의·지연 실행·프로젝션 | 처리 목적과 타입 연결 | 13~15강 | 강좌에서 직접 학습 |
| LINQ 집합·정렬·조인·그룹 | 표준 연산자 조합 | 여러 데이터 원본 정리 | 16~18강 | 강좌에서 직접 학습 |
| Task·async/await | CPU/I/O·반환형 | 대기와 결과 전달 | 19강 | 강좌에서 직접 학습 |
| ValueTask·비동기 스트림·파일 I/O | 비동기 열거·접근·취소 | 연속 결과와 취소 가능한 작업 | 20강 | 강좌에서 직접 학습 |
| C# 14 신규 기능 | extension members·field 등 | 현재 언어 확장 확인 | 해당 회차 없음 | 현재 C# 참고 |
| enum | 이름 있는 정수 상수 집합 | 상태의 의미를 표현 | 명시된 회차 없음 | 현재 C# 참고 |
| 웹·GUI·배포 | 프레임워크와 운영 환경 | 실제 제품으로 확장 | 해당 회차 없음 | 다음 학습 추천 |
초보자가 자주 오해하는 내용
C#과 .NET은 같은가?
C#은 언어이고 .NET은 개발 플랫폼입니다. SDK로 코드를 빌드하고 runtime과 libraries를 이용해 실행합니다. 1강의 환경 설정을 배울 때 언어 문법과 도구 설치를 구분하면 오류 원인을 찾기 쉽습니다.
Visual Studio가 반드시 필요한가?
반드시 필요하지는 않습니다. .NET SDK와 명령줄 도구로도 프로젝트를 빌드할 수 있고 VS Code를 편집기로 사용할 수 있습니다. 본 강좌 1강은 VS Code 실행 환경을 다루므로 해당 실습 흐름으로 시작하세요.
C/C++을 먼저 배워야 하는가?
C#을 시작하기 위한 필수 선수 언어는 아닙니다. 공통 문법이 있지만 메모리와 실행 환경은 다릅니다. 본 강좌의 형식·조건문·루프에서 시작하고 개체와 데이터 처리로 연결해도 됩니다.
LINQ는 데이터베이스 전용인가?
배열이나 List<T> 같은 메모리 내 데이터에도 사용할 수 있습니다. 질의 제공자가 있는 데이터 원본에는 번역 가능한 식으로 적용되기도 합니다. 13~18강의 질의·연산자 학습을 DB 강의 전체와 동일하게 해석하지 마세요.
async/await는 멀티스레딩인가?
async 메서드는 새 스레드를 자동으로 만들지 않습니다. await는 작업 완료를 기다린 뒤 이어지는 흐름을 표현합니다. I/O 대기와 CPU 계산을 구분하는 19강을 먼저 이해하고 20강의 비동기 파일·스트림으로 확장하세요.
null과 nullable은 같은 의미인가?
null은 참조가 개체를 가리키지 않는 값입니다. nullable은 null 가능성을 형식 표현과 분석에 포함하는 개념입니다. int?는 Nullable<int>인 값 형식이고 string?는 참조 형식 주석이며 서로 작동 방식이 다릅니다. 12강은 null 허용 참조 형식을 다룹니다.
var는 동적 타입인가?
var는 컴파일러에게 초기값을 보고 타입을 결정하게 하는 문법입니다. 결정된 타입은 이후 바뀌지 않습니다. 15강의 암시적 지역 변수와 형식 관계를 함께 읽으면 LINQ의 결과 타입을 이해하기 쉽습니다.
다음 학습 방향
기초가 불안하면 변수·배열을 다시 연습하고, 질의가 필요한 업무라면 LINQ를 깊게 학습하세요. 웹 개발을 목표로 할 때 ASP.NET Core로 이동하는 식으로 목적에 따라 경로를 고릅니다. 존재가 확인되지 않은 별도 디자인 패턴 과정은 추천 목록에 만들지 않았습니다.
![GO [기초 실무] GO [기초 실무]](/alziocoLec/img_file/v4_new_810_20260915_code_r3.jpg)

![리눅스 서버관리 [입문+고급] 리눅스 서버관리 [입문+고급]](/alziocoLec/img_file/v4_new_78_20260915_code_r3.jpg)


![매트랩 기초 [쉬운 문법정리] 매트랩 기초 [쉬운 문법정리]](/alziocoLec/img_file/v4_new_843_20260915_code_r3.jpg)
![C샵 [기초 + 실무까지]](/expert/img/sample_play_202606.png)

