Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
개발 · 프로그래밍

/

프로그래밍 언어

멀티패러다임 프로그래밍 1편: 반복자 패턴 & LISP (with TypeScript, Clojure, Kotlin)

중고급 개발자로 성장하기 위한 고급 프로그래밍 언어 활용 능력과, 함수형, 객체 지향, LISP 패러다임이 결합된 소프트웨어 설계 및 구현 능력을 기릅니다.

(5.0) 수강평 28개

수강생 326명

  • MDU 유인동

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • 고급 프로그래밍 언어 활용

  • 타입 시스템

  • 함수형 프로그래밍

  • 객체 지향 프로그래밍

  • 리스트 프로세싱

  • 멀티패러다임 프로그래밍

오뜨 띠배너 (63)

22년차 소프트웨어 엔지니어,
현 마플코퍼레이션 CTO,
전 카카오, 엔씨소프트 개발자의
TS · Kotlin · 프로그래밍 패러다임 강의


객체 지향, 함수형, 명령형 패러다임을
모두 지원하는
현대 프로그래밍 언어를
효과적으로 활용하는 방법
은 무엇일까요?


프로그래밍 언어는 과거에 주로 함수형, 객체 지향, 절차적 언어로 나뉘어 왔습니다. 그러나 오늘날에는 이러한 경향이 바뀌었습니다. 함수형과 객체 지향 기능을 모두 가진 하이브리드 프로그래밍 언어가 등장하기 시작하면서 이제는 Java, C#, Scala, TypeScript, JavaScript, Kotlin, Swift 등 대부분의 주요 프로그래밍 언어들이 멀티패러다임 언어가 되었습니다. 이러한 변화는 현업에서 널리 사용되는 언어들의 공통된 특징이 되었습니다.

이 언어들은 클래스, 상속, 인터페이스 같은 객체 지향 기능은 물론, 일급 함수, 리스트 프로세싱, 지연 평가, 비동기/동시성 처리 등 함수형 프로그래밍 기능도 폭넓게 지원합니다. 또한 견고하면서도 유연한 타입 시스템, 타입 추론, 제네릭, 유틸리티 타입 등을 제공하며, 심지어는 정적 타입과 동적 타입을 혼합하는 것도 가능합니다.


그렇다면, 대부분의
현대 프로그래밍 언어들이
왜 멀티패러다임 언어가 되었을까요?


어떤 문제는 함수형으로 해결하는 것이 우세한 경우가 있고, 어떤 문제는 객체 지향 프로그래밍으로 해결하는 것이 더 우세한 경우들이 있습니다. 프로그래머들은 이제 더 이상 함수형이 좋은지, 객체 지향이 좋은지, 정적 타입이 좋은지, 동적 타입이 좋은지 논쟁할 필요가 없습니다. 언어를 만들고 표준을 정의하는 단체와 기업들이 하나의 언어가 여러 패러다임을 지원하도록 발전시켰고, 덕분에 우리는 하나의 프로젝트, 심지어 한 함수 내에서도 다양한 패러다임을 조합해 프로그래밍할 수 있게 되었습니다.

다시 기본기,
탄탄한 기본기는 분명
뛰어난 응용력을 이끕니다.


지금 우리는 어쩌면, 특정 라이브러리나 프레임워크에 의존하며, 그에 맞는 한정적인 패러다임을 따르다가 언어 레벨의 다양한 기능과 패러다임을 충분히 활용하지 못하고 있을지도 모릅니다. 함수형 프로그래밍 언어나 객체 지향 프로그래밍 언어에 적용되어온 많은 기술들은 매우 깊은 역사와 정통성을 가지고 있으며 이미 다양한 문제를 해결하며 검증되어왔습니다. 언어 레벨의 다양한 스킬을 가진 프로그래머는 더 많은 문제를 빠르고 안전하게, 그리고 유연하게 해결할 수 있습니다.또한 특정 라이브러리에 얽매이지 않고 보다 근본적인 방식으로 코드를 작성할 수 있습니다.


패러다임은 특정 언어에 국한되지 않는 개념이며,
멀티패러다임 프로그래밍은
현대 프로그래밍 언어 전반에서 널리 통용됩니다.


이 강의 시리즈는 타입스크립트(TypeScript)와 코틀린(Kotlin)을 주요 언어로 사용하지만, Java, C#, Scala, Swift 등 다른 언어에서도 적용할 수 있는 기술과 개념을 다룹니다. 기존 환경과 언어를 유지하면서도 함수형 프로그래밍을 실무에 적용할 수 있도록 돕습니다. 또한 객체 지향 프로그래밍과 함수형 프로그래밍을 혼합해 문제를 해결하는 코드를 제시함으로써, 멀티패러다임 언어를 효과적으로 다루는 기술력과 응용력을 높여 문제 해결 능력을 확장할 수 있도록 돕습니다.

중고급 개발자로 성장하기 위해서는
보다 정통적인 기술과 프로그래밍 언어,
패러다임에 대한 심도 있는 탐구가 필수적입니다.


그리고 이 여정은 정말 흥미롭고 재밌습니다. 이 강의를 통해 멀티패러다임 언어의 다양한 가능성을 실감하고, 고급 프로그래밍 언어 활용 능력은 물론 함수형, 객체 지향, LISP 패러다임이 결합된 소프트웨어 설계 및 구현 능력을 기르며, 무엇보다 컴퓨터 프로그래밍과 소프트웨어 공학의 즐거움을 한층 깊이 누릴 수 있는 계기가 되었으면 좋겠습니다.


이 강의를 통해 TypeScript 개발자는Kotlin을,
Kotlin 개발자는 TypeScript를
멀티패러다임 프로그래밍이라는
같은 관점에서 함께 학습할 수 있습니다.


멀티패러다임 프로그래밍』 강의 시리즈🔎🧑‍💻🚀

멀티패러다임 프로그래밍 도서를 토대로, 폭넓고 심도 있는 강의를 제공합니다.


1편: TS - 반복자 패턴 & LISt Processing (with TypeScript, Kotlin, Clojure)

“이 강의에서는 객체 지향과 함수형 프로그래밍의 교차점인 이터레이터를 중심으로, 멀티패러다임 이터레이션과 리스트 프로세싱 전반을 다룹니다. 주 언어로는 TypeScript를 사용하며, 리스트 프로세싱과 멀티패러다임 이터레이션 개념을 깊이 이해하기 위해 Clojure와 Kotlin도 가볍게 살펴봅니다.”

  • 이터레이터, 제너레이터, 이터레이션 프로토콜, 리스트 프로세싱

  • 함수형, 타입 시스템, 클래스, 제네릭 프로그래밍을 결합한 추상화

  • 코드 : 객체 : 함수 = Generator : Iterator : LISP = IP : OOP : FP

  • 코틀린으로 해보기

  • 함수 합성과 지연 평가 개념 심화

  • 리스트 프로세싱으로 실전형 데이터 다루기


  • 더 많은 문제로 확장하기


2편: TS - 비동기/동시성 프로그래밍 (공개 예정)

“이 강의에서는 비동기 프로그래밍에 대한 언어의 설계와 체계를 알아보고, 비동기 작업의 결과를 값으로 다루는 방법과, 지연 평가와 리스트 프로세싱을 사용하여 비동기/동시성 로직을 작성하는 방법, 비동기 프로그래밍을 타입으로 핸들링 하는 방법을 소개합니다.”

  • 값으로 다루는 비동기 프로그래밍

  • 지연성으로 다루는 동시성 프로그래밍

  • 타입 시스템과 비동기, AsyncIteration 프로토콜


  • 비동기 에러 핸들링

3편: Kotlin - 멀티패러다임 이터레이션 (공개 예정)

“이 강의에서는 Kotlin이 제공하는 이터러블(Iterable), 이터레이터(Iterator), 시퀀스(Sequence)를 학습하고, 이를 통해 Kotlin 특유의 정교한 조합성과 확장성을 살펴보며 리스트 프로세싱 전반을 다룹니다. 또한 이터레이터와 시퀀스를 기반으로 Kotlin의 이터레이션 설계를 깊이 이해하여, 이후 코루틴을 정확하게 이해하고 응용하는 데 도움이 되도록 합니다.”

  • 이터러블(Iterable)과 이터레이터(

    Iterator)

  • 코틀린의 정교한 조합성과 확장성

  • 시퀀스(Sequence)

  • 리스트 프로세싱과 지연 평가

  • 코틀린 확장 함수

  • 리스트 프로세싱으로 실전형 데이터 다루기

  • 더 많은 문제로 확장하기

4편: TS - 백엔드/실무 중심 멀티패러다임 코드와 패턴 (공개 예정)

“백엔드 프로그래밍 실무에 필요한 코드를 중심으로, MSA 환경에서 분리된 서비스 간 데이터 동기화를 맞추기 위한 스케줄러를 리스트 프로세싱 기반으로 구현하고, 병렬성이나 요청 크기 제한 같은 백엔드 필수 기법도 리스트 프로세싱 관점에서 다룹니다. 또한 멀티패러다임 설계와 구현 사례를 살펴보며, 어떤 문제에 클래스(객체 지향)를 적용할지, 어떤 문제에 리스트 프로세싱(함수형)을 도입할지, 어떤 문제에 명령형 방식을 택할지에 대한 기준을 세울 수 있는 예제도 함께 다룹니다.”

  • 달력 그리기


  • 리스트 프로세싱 패턴화

  • 백엔드 비동기 프로그래밍: MSA를 핸들링하는 리스트 프로세싱

  • 해시 기반 최적화, 요청 크기 제한, 병렬성을 활용한 효율 높이기


  • 중첩 데이터와 재귀적 로직을 해결하는 멀티패러다임 기법

  • 객체지향, 명령형, 함수형을 결합한 동시성 핸들링 확장

5편: Kotlin - 멀티패러디임 이터레이션 실전편 (공개 예정)

“코루틴(Coroutine), Flow를 비롯해 Deferred, Channel 등 다양한 동시성 메커니즘을 학습하고, 멀티패러다임 동시성 핸들링 기법을 심도 있게 살펴봅니다. 또한 실전 백엔드 비동기 프로그래밍 시나리오를 통해 이 기능들을 효율적으로 적용하는 방법을 제시합니다.”

  • 코루틴, Flow

  • Deferred, Channel


  • 멀티패러다임 동시성 핸들링

  • 실전 백엔드 비동기 프로그래밍


6편: TS - 멀티패러다임 프론트엔드 프로그래밍 (공개 예정)

“Web API(바닐라) 기반의 프론트엔드 개발을 다루며, 객체 지향 기반의 컴포넌트 설계와 멀티패러다임 구현 기법을 살펴봅니다. 클래스, 인터페이스, 상속, 추상, 이벤트, 상태 관리부터 Headless UI, 제네릭 클래스, 전략 패턴, 상태 패턴, 데코레이터 등을 폭넓게 학습합니다.”

  • Web API(바닐라) 기반 프론트엔드 개발


  • 객체 지향 기반 컴포넌트 설계와 멀티패러다임 구현

  • 클래스, 인터페이스, 상속, 추상, 이벤트, 상태 관리

  • Headless UI, 제네릭 클래스, 전략 패턴, 상태 패턴, 데코레이터

  • 휴리스틱 Diff 알고리즘 및 UI 렌더링 최적화

  • 비동기 UI 핸들링, 컴포넌트간 통신 설계

7편: 멀티패러다임 바이브 코딩 (공개 예정)

강의 특징과 추가 자료 🚀


👨‍🏫 다양한 언어와 기술 경험을 바탕으로한 커리큘럼

  • 강사는 TypeScript, Objective-C, iOS, Java, Android, Node.js, PostgreSQL, Clojure, Kotlin, Ruby on Rails, Web APIs, Canvas 등 다양한 언어·기술 경험을 토대로, 객체 지향·함수형·명령형 패러다임을 효과적으로 조합하는 방법을 제시합니다.

  • 또한 견고한 타입 시스템과 제네릭부터 클래스·인터페이스·디자인 패턴에 이르기까지, 이들의 기반과 설계, 그리고 실전형 코드 구현 과정을 깊이 있게 다룹니다.

🏢 넥슨·네이버·카카오 등 주요 IT 기업 기술 교육

  • 넥슨, 네이버, 카카오, LGU+, SK플래닛 등 주요 IT 기업을 대상으로 진행했던 여러 기술 교육의 모든 내용을 집약했습니다.


🛠 예제 코드 및 환경 설정

  • 예제 코드와 환경 설치 방법은 멀티패러다임 프로그래밍과 타입스크립트 공식 GitHub(링크)에서 확인할 수 있습니다.

🌐 온라인 커뮤니티와 유튜브 채널

  • 온라인 커뮤니티 MDU에서 함께 멀티패러다임 프로그래밍에 대한 추가적인 토론과 학습에 참여해보세요. 📢

  • 유튜브 채널을 구독하고 새로운 소식을 접해보세요. 📺

🧡 수익금 기부 🏥👶🧒

  • 본 강의 수익의 15%와 책의 저자 수익 전액은 서울아산병원 어린이병원에 기부됩니다.

📖멀티패러다임 프로그래밍:

객체 지향, 함수형, 명령형을 결합한
소프트웨어 설계와 구현

  • 본 책에서는 추가적인 이론적 내용과 견해를 담아 본 강의 내용을 더욱 뒷받침합니다. 본 도서와 함께 공부하면 한층 깊이 있는 학습과 탐구가 가능합니다.

  • 해당 도서에는 하스켈, 클로저(Clojure) 등 다른 언어에 대한 교육 자료도 제공됩니다.


  • 추천의 글 보기 |

    1-3장 미리보기

  • 책 보기 - 교보문고, yes24,알라딘


📖 코틀린 멀티패러다임 이터레이션:

멀티패러다임 프로그래밍 부록 무료 공개

  • 멀티패러다임 프로그래밍은 특정 언어에 국한되지 않는 언어 독립적인 개념으로, 현대의 대부분의 프로그래밍 언어에 적용할 수 있는 방법론이자 기술입니다.

  • 『코틀린 멀티패러다임 이터레이션』은 『멀티패러다임 프로그래밍』의 부록으로, 본서의 일부 내용을 코틀린 언어에 특화하여 풀어낸 자료입니다.

  • 무료 공개 자료 보러가기


많은 시니어 개발자들이 이 강의를 추천합니다 (발췌) 🌟

"이 강의는 지연 평가·제너레이터·이터러블 같은 현대적 기법을 통해 비동기 프로그래밍을 한층 단순하고 직관적으로 다루도록 안내하며, 백엔드 병렬 처리나 에러 핸들링 같은 복잡한 부분도 리스트 프로세싱 기법으로 우아하게 해결할 수 있다는 사실을 깨닫게 해줍니다."

"객체지향과 함수형 프로그래밍의 멀티패러다임적 융합을 자연스럽게 익힐 수 있어, 단순히 코드가 ‘동작’하는 것을 넘어 코드의 본질과 설계를 깊이 이해하고, 실전형 패턴을 유연하게 적용할 수 있는 통찰력을 얻게 됩니다."

"중급 개발자에서 고급 개발자로 성장하고자 하는 분이라면, 함수형의 순수성과 불변성부터 객체지향의 캡슐화와 책임 분담까지 폭넓게 활용하여, 한층 더 확장된 시야로 다양한 프로젝트에 능동적으로 대응할 수 있을 것입니다."

"지연 평가로 데이터 흐름을 최적화하고, 제너레이터·이터러블을 활용해 병렬 처리나 오류 처리 같은 까다로운 문제를 직관적으로 해결하는 과정을 따라가다 보면, ‘어떻게 하면 더 적은 코드로 더 많은 가치를 만들 수 있을까’라는 궁극적인 질문에 대한 해답을 찾게 됩니다."

"이 강의는 ‘코드의 본질’을 꿰뚫어보는 눈을 길러주어, 단순한 문법 지식보다도 실무 지향적인 멀티패러다임 설계와 패턴 적용 노하우를 체득하고, 다양한 상황에서 최적의 해법을 제시할 수 있는 프로그래머로 거듭날 기회를 선사합니다."

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 탄탄한 기본기를 갖추고 싶은 개발자

  • 중급 개발자

  • 프론트엔드 개발자

  • 타입스크립트를 사용하는 백엔드 개발자

  • 멀티패러다임 언어의 기반과 활용을 배우고 싶은 Kotlin/Java/Swift 개발자

선수 지식,
필요할까요?

  • 현대 프로그래밍 언어 기본 문법

  • 타입스크립트 기본 문법

안녕하세요
입니다.

22,530

수강생

779

수강평

457

답변

4.9

강의 평점

5

강의

커리큘럼

전체

48개 ∙ (5시간 15분)

강의 게시일: 
마지막 업데이트일: 

수강평

전체

28개

5.0

28개의 수강평

  • 지호손님의 프로필 이미지
    지호손

    수강평 16

    평균 평점 5.0

    5

    100% 수강 후 작성

    정말 오랜만에 단순 기술을 익혀서 하는 성장이 아닌 프로그래밍을 하는 소프트웨어를 다루는 사람 그 자체로 성장을 할 수 있는 경험을 했습니다. 학습을 진행하면서 매순간 인동님의 인사이트에 감탄하면서 지금까지 스스로 내려왔던 프로그래밍 관련 결정들 이외에 다른 선택지들이 많이 있다는 것을 확인할 수 있었습니다. 당연하게 활용해왔던 기술들의 근본적인 설계 의도를 파악할 수 있고, 더 많은 선택지를 가지려면 여러 패러다임을 잘 섞고 적재적소에 잘 활용할 수 있는 능력을 키워야합니다. 그 성장은 이제 시작이지 않을까 싶습니다. 그러한 시작을 하기에 좋은 강의 같습니다. 다른 동료 개발자들도 이 강의를 통해 멀티패러다임 프로그래밍을 온전히 공감하고 즐길 수 있기를 기원합니다.

    • MDU 유인동
      지식공유자

      "소프트웨어를 다루는 사람 그 자체로의 성장" 정말 멋진 표현이고 시각입니다. 강의를 통해 전하고 싶은 이야기가 전달될 것 같아 기쁘네요. 앞으로 지호님께서도 소프트웨어 엔지니어링 분야에서 멋지고 즐거운 일들로 가득하시길 바라겠습니다!

  • devsn님의 프로필 이미지
    devsn

    수강평 3

    평균 평점 4.3

    5

    98% 수강 후 작성

    '멀티' 패러다임을 배울 수 있는 강의. 다년 간 여러 언어와 프레임워크를 다뤄왔지만, 이번 강의만큼 패러다임 자체에 중점을 두고, 프로그래밍을 다뤘던 경험은 정말 오랜만인 거 같네요. 몇년 전 함수형 프로그래밍을 학습하던 때가 떠오르네요. 객체지향/함수형/명령형을 넘나들며 설명하는 방식은 굉장히 인상적이었습니다. 반복자패턴에 대해 구조적 사유를 할 수 있었고, 실질적인 활용법을 함께 배울 수 있어서 유익한 시간이었습니다. 언어 학습이 아니라, 프로그래밍 언어가 어떻게 사고를 확장시키는지를 경험할 수 있었습니다. 현재 내 코딩 방식에 새로운 전환점을 두고 싶은 분들께 강력히 추천드립니다.

    • MDU 유인동
      지식공유자

      반복, 그리고 다양한 순회 전략을 이터레이터라는 값(객체)으로 캡슐화해 다루며, 하나의 반복문 안에서도 여러가지 패러다임으로 전환 할 수 있도록 발전되어온 현대 언어의 설계가 참 멋진 것 같습니다. 감사합니다. :)

  • 배고팡님의 프로필 이미지
    배고팡

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    9년간의 개발 경험을 가진 개발자로서, 저는 객체 지향, 함수형, 절차적 등 다양한 프로그래밍 패러다임을 사용해왔지만, 각 패러다임의 차이나 사용을 충분히 활용하지 못하고 있다는 느낌을 받았습니다. 처음 개발자 컨퍼런스에서 인동님의 발표를 인상 깊게 보고, 인프런의 함수형 프로그래밍 강의와 유튜브를 통해 더 많은 내용을 접하게 되었고 이번에 새로 출시한 멀티패러다임 강의는 단순히 특정 개발 스타일이나 방식에 대한 이야기가 아니었습니다. 패러다임을 바라보는 관점 자체를 변화시켜 주었습니다. 특히 지연 평가(lazy evaluation), iterable, iterator, generator와 같은 개념들을 이론뿐 아니라 실제 활용 관점에서 더 깊이 있게 이해할 수 있었고, 이러한 개념들을 실무에 어떻게 적용할 수 있을지 구체적으로 고민해보는 계기가 되었습니다. 매일 익숙한 패턴으로 개발하며 사고방식이? 갇혀있었는데, 이 강의는 새로운 관점에서 코드를 바라보자 라고 생각이 들게 되었습니다. 이제는 회사 팀원들과 멀티패러다임 프로그래밍에 대해 공유하고, 우리의 실제 업무 코드에 어떻게 적용 및 개선할 수 있을지 이야기 해보고 싶습니다.🔥 part-1부터 part-7까지 이어진다는 강의 계획을 들으니, 앞으로 나올 심화 내용과 응용 사례들도 정말 기대됩니다. 👍

    • MDU 유인동
      지식공유자

      수강해주셔서 감사합니다. 팀원들과 적용까지 생각하신다니 너무 멋지네요. 분명히 도움이 될거라 믿습니다 :) 저도 좋은 컨텐츠로 돕도록 하겠습니다! 함께해요!

  • 길석님의 프로필 이미지
    길석

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    본 편 강의는 Iteration Protocol을 중점적으로 다룹니다. 명령형과 객체지향, 함수형 패러다임을 넘나들며 여러 구현 방식으로 프로토콜을 구현하면서 작동 원리를 탐구하고, 다양한 언어들이 나름의 방식으로 이터레이션을 정의하고 활용하는 방법을 통해, 다양한 시각과 통찰을 전달해줍니다. 학습을 통해 이터레이션 프로토콜이 특정 언어나 패러다임에 구애받지않는 공통 규약임을 알 수 있고. 이러한 특징덕에 다양한 패러다임을 활용하면서도 서로 잘 어우러지게 하는 멀티 패러다임 프로그래밍이 가능해집니다. 이터레이션 프로토콜은 멀티 패러다임이라는 특징 외에도, 연산이나 메모리 효율에도 도움을 줄 수 있고, 람다식을 통한 편리한 타입추론도 가능해지는 등, 기능적인 이점도 있기 때문에 자체적으로도 충분히 매력적인 개념입니다. 주로 사용하는 언어가 제네릭을 지원하기만 한다면, 어디든 적용해볼 수 있으니 활용도도 매우높아 학습할 가치가 있다고 생각합니다. OOP에 익숙하신 분들은 물론 FP를 다뤄오셨던 분들이라도 강의가 설명하는 이터레이션의 특징들을 탐구하다보면 분명 새로운 시각을 장착 하시게 될 것이라고 생각합니다.

    • MDU 유인동
      지식공유자

      상세한 리뷰 감사합니다! 강의를 정말 상세히 학습해주신 것 같아요. 말씀주신대로 대부분의 현대 언어들에서 모두 적용할 수 있는 개념이죠! 즐거운 프로그래밍 여정이 되시길 바래요! 감사합니다 :)

  • 이준호님의 프로필 이미지
    이준호

    수강평 5

    평균 평점 4.8

    수정됨

    5

    100% 수강 후 작성

    여러가지 요소를 결합하여 자신만의 언어로 녹여낸 고수의 강의였습니다. 저는 이 내용을 보다 수학적인 언어인 Iterable Functor -> Fx Monad 이렇게 이해하고 있었는데 보다 실무적인 형태로 풀어낸 것이 좋았습니다. 그리고 저자가 설명하는 list processing은 수학적으로는 adjoint functor를 사용하여 이해하는 틀이 있는데 코드(의미) < - > 데이터 (의미 없음) 을 혼동할 수 있음을 강조한 것도 참 좋습니다. 다만 개인적으로는 거의 모든 설명이 함수형 패러다임 기반인거 같아서 멀티 패러다임이라 보기는 좀 힘들었습니다. 실무와 이론이 잘 조합된 강사의 능력에 도전을 받습니다. 감사합니다. 완강했어요! 좋아요!

    • MDU 유인동
      지식공유자

      수강과 멋진 리뷰 정말 감사합니다. :) 1편에서는 멀티패러다임의 교차점 중 하나인 반복자에 대해 다룬 후, 1편에는 없는 내용인 책의 이후 4,5,6,7 장으로 가면서 멀티패러다임적인 내용이 고도화됩니다. 많은 관심 부탁드립니다 :)

₩55,000

MDU 유인동님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!