강의

멘토링

로드맵

BEST
Hardware

/

Embedded IoT

Cấu trúc và nguyên lý của kiến trúc Arm cho phát triển phần mềm hệ thống - Phần 2 Giảng dạy trực tiếp của tác giả (Phiên bản 2024)

Những kiến thức cơ bản nhất của phần mềm hệ thống, những yếu tố cốt lõi của kiến trúc Arm mới nhất (Armv8-A, Armv7-A) sẽ được chính tác giả của cuốn sách "Cấu trúc và Nguyên lý của Kiến trúc Arm để Phát triển Phần mềm Hệ thống" giúp bạn nắm bắt một cách chuẩn xác!

(5.0) 11 đánh giá

241 học viên

저자 직강
이론 중심
armv8
armv7
Hardware Hacking
Embedded
ARM Architecture
cpu-architecture
cortex-a

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Bạn có thể nắm bắt nguyên lý hoạt động cơ bản của kiến trúc Arm (Armv8-A, Armv7-A).

  • Có thể hiểu sâu sắc nguyên lý hoạt động chi tiết của ngoại lệ trong kiến trúc Arm (Armv8-A, Armv7-A).

  • Có thể hiểu rõ AAPCS được định nghĩa trong Armv7-A/Armv8-A.

  • Có thể hiểu cách debug sự cố memory abort bằng Exception và AAPCS.

📢 Thông tin trước giờ học

Bài giảng này là bài giảng thứ hai sau bài giảng đầu tiên về cấu trúc và nguyên lý của kiến trúc Arm trong phát triển phần mềm hệ thống . Để hiểu rõ hơn, chúng tôi khuyến nghị bạn nên học các bài giảng theo trình tự từ bài giảng đầu tiên.

<Thông báo>

0. Phiếu giảm giá 30% được phát hành khi có 300 học sinh đăng ký

Để chào mừng 300 học viên (Phần 1 và 2), chúng tôi tặng phiếu giảm giá 30%. Xin cảm ơn. Dành cho 100 người đầu tiên.

  • Phiếu giảm giá: 18268-977830e246a0

1. Gia hạn bài giảng mới nhất năm 2024

Chúng tôi đã thêm các bài giảng sau đây để khám phá các tính năng kiến trúc Arm mới nhất và nội dung hữu ích có thể áp dụng trực tiếp vào các dự án thực tế. (Đã thêm 3 giờ 30 phút)

  • Nội dung gỡ lỗi chương trình TRACE32 : Bạn có thể tải xuống chương trình mô phỏng TRACE32 giáo dục từ 'Tài liệu bài giảng Inflearn'. Bạn có thể gỡ lỗi trực tiếp bằng cách làm theo quy trình gỡ lỗi (bao gồm các lệnh lắp ráp) được giải thích trong bài giảng bằng chương trình mô phỏng TRACE32.

  • Bài giảng thực hành gỡ lỗi : Armv7-A Exception (35 phút), Armv8-A Exception (2 giờ), AAPCS (60 phút)

  • Bộ nhớ dump : Cung cấp 3 trường hợp để gỡ lỗi ngoại lệ

Chúng tôi sẽ tiếp tục khám phá nội dung hữu ích cho học sinh và cập nhật chương trình giảng dạy.

2. Lộ trình bài giảng trực tiếp của tác giả về kiến trúc Arm

Bài giảng này <Cấu trúc và nguyên tắc của kiến trúc Arm cho phát triển phần mềm hệ thống - Phần 2 Bài giảng trực tiếp của tác giả> là một lộ trình 'Arm - khóa học cơ bản dành cho nhà phát triển phần mềm hệ thống' Bài giảng này được bao gồm trong .


Nếu bạn muốn tìm hiểu kiến trúc Arm (Armv8-A, Armv7-A) một cách hệ thống , chúng tôi khuyên bạn nên sử dụng lộ trình (giảm giá 30% cho tất cả các bài giảng). Để tham khảo, hãy xem lộ trình kiến trúc Arm (tất cả các bài giảng của tác giả). Khóa học cơ bản Khóa học nâng cao Nó bao gồm hai phần.


Trong phần mềm hệ thống mới nhất
Kiến trúc Arm quan trọng nhất

Bộ xử lý Arm được sử dụng trong điện thoại thông minh, chất bán dẫn hệ thống SoC AI, xe điện (lái xe tự động, thông tin giải trí), máy chủ đám mây và MacBook đều là bộ xử lý Cortex-A 64-bit dựa trên Armv8-A (Cortex-A53, Cortex-A57, Cortex-A72, v.v.). Kiến trúc Armv8-A có thể được coi là kiến thức cơ bản cần thiết nhất trong ngành phần mềm hệ thống hiện nay.

Nhưng bạn có thấy kiến trúc Arm mới nhất, Armv8-A và Armv7-A, quá khó không?


Gửi các nhà phát triển phần mềm hệ thống, lập trình viên hệ thống nhúng (BSP)! 🙋‍♂

Nhà phát triển cấp cơ sở trong lĩnh vực phần mềm hệ thống, bao gồm hệ thống bán dẫn và xe điện (lái xe tự động, thông tin giải trí)

Người tìm việc muốn làm việc trong lĩnh vực phát triển phần mềm hệ thống, chẳng hạn như hệ thống bán dẫn và xe điện

Ứng viên học sau đại học chuyên ngành phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)

Các nhà phát triển từ các lĩnh vực khác muốn chuyển đổi nghề nghiệp sang phần mềm hệ thống

Nhiều nhà phát triển Linux nhúng học về kiến trúc máy tính và hệ điều hành. Họ cũng nghiên cứu lý thuyết hệ thống máy tính ở một mức độ nào đó. Gần đây, các nhà phát triển phần mềm hệ thống bán dẫn và xe điện đang nổi lên đã phân tích trình điều khiển thiết bị Linux, RTOS hoặc bộ nạp khởi động. Tuy nhiên, họ cảm thấy còn thiếu sót điều gì đó . Họ biết rằng mình phải nắm vững kiến trúc ARM để trở thành một nhà phát triển phần mềm hệ thống chuyên nghiệp, nhưng khi thực sự mở tài liệu đặc tả ARM, họ nhận ra rằng đó không phải là một con đường dễ dàng và việc tự học rất khó khăn.

Cốt lõi của kiến trúc Arm
Hãy để tôi giải thích cho bạn một cách dễ hiểu!

  • 1⃣ Bạn có thể hiểu được lý thuyết cốt lõi về ngoại lệ và AAPCS, đây là cốt lõi của kiến trúc Arm.

  • 2⃣ Bạn sẽ được trải nghiệm lại nội dung chính của kiến trúc Arm ở cấp độ mã và mức độ hiểu biết của bạn về kiến trúc Arm sẽ tăng lên đáng kể.

  • 3⃣ Bằng cách chủ động sử dụng nhiều chức năng khác nhau được kiến trúc Arm hỗ trợ, bạn có thể phát triển các chương trình hệ thống (trình điều khiển, bộ nạp khởi động) được đảm bảo tính ổn định và hiệu suất cao.

  • 4⃣ Bạn có thể tự mình hiểu được nhiều lý thuyết và trường hợp khác nhau cần thiết để phát triển các dự án thực tế.

Không ngoa khi nói rằng cốt lõi của phát triển phần mềm hệ thống chính là CPU và kiến trúc máy tính. Chúng tôi đã giải thích một cách dễ dàng lý thuyết cốt lõi của kiến trúc ARM mới nhất (Armv8-A, Armv7-A) , bộ xử lý CPU được ưa chuộng nhất trong ngành CNTT!

Lý do khiến kiến trúc ARM trở nên khó khăn là vì nó chỉ được học từ góc nhìn của bộ xử lý phần cứng. Bài giảng này giải thích cách nội dung của kiến trúc ARM thực sự được sử dụng thông qua phân tích mã và giới thiệu trường hợp cụ thể. Bài giảng này sẽ đóng vai trò then chốt trong việc giúp bạn trở thành một nhà phát triển phần mềm hệ thống có năng lực.

Bài giảng trực tiếp từ tác giả! Ngay cả những nội dung không có trong sách
Để tôi giải thích chi tiết nhé.

Ngoài nội dung của cuốn sách 『Cấu trúc và nguyên lý của kiến trúc Arm』 ( được chọn cho Giải thưởng Sách xuất sắc của Viện Hàn lâm Khoa học và Công nghệ Hàn Quốc năm 2024 ) , cuốn sách còn giải thích cụ thể về các phương pháp gỡ lỗi và nhiều trường hợp khác nhau của kiến trúc Arm không được đề cập trong sách.

  • 40%: Nội dung cốt lõi của cuốn sách

  • 40%: Các nghiên cứu điển hình và đánh giá mã quan trọng liên quan đến kiến trúc Arm

  • 20%: Thực hành gỡ lỗi - TRACE32

Nội dung bài giảng 📕

Giới thiệu về các ngoại lệ trong kiến trúc CPU và giải thích hành vi cơ bản của ngoại lệ khi xem xét thông số kỹ thuật Arm.

Giải thích chi tiết lý do tại sao bạn cần biết các ngoại lệ trong kiến trúc Arm cho các dự án thực tế.

Chúng tôi sẽ giải thích từng bước về luồng thực thi ngoại lệ của kiến trúc Armv7 và phân tích chi tiết cách phần mềm xử lý ngoại lệ.

Mô tả chi tiết cách xử lý Memory Abort - Prefetch hoặc Data Abort trong kiến trúc Armv7. Mô tả luồng thực thi để xử lý các ngoại lệ ngắt IRQ.

Mô tả luồng thực thi của ngoại lệ lệnh gọi giám sát (ngắt phần mềm) xảy ra khi thực thi lệnh SVC trên kiến trúc Armv7. Tóm tắt toàn bộ luồng thực thi của ngoại lệ.

Nó cung cấp lời giải thích chi tiết, tổng quan về hành vi thực sự gây ra ngoại lệ Data Abort và Undefined Instruction.

Giới thiệu các đặc điểm của ngoại lệ được định nghĩa trong kiến trúc Armv8. Mô tả các loại và hệ thống phân loại ngoại lệ trong kiến trúc Armv8.

Mô tả luồng xử lý các ngoại lệ Đồng bộ trong kiến trúc Armv8.

Cung cấp tổng quan cấp cao về luồng thực thi trong đó các ngắt được xử lý ở mỗi giai đoạn trong kiến trúc Armv8. Tài liệu này mô tả các thanh ghi và trình xử lý ngoại lệ được cập nhật trong quá trình này.

Giới thiệu bộ điều khiển ngắt và giải thích cấu trúc tổng thể của GIC.

Tài liệu này cung cấp lời giải thích tổng quan về cấu trúc chung của GIC và giải thích các chức năng chính của từng phiên bản GIC.

Mô tả các nguồn và loại ngắt được xác định trong GIC và giải thích cách xử lý ngắt trong SMP (hệ thống đa lõi).

Chúng tôi mô tả mô hình lập trình viên của GIC được thiết kế theo góc độ phát triển phần mềm và giải thích cấu trúc vật lý của GIC.

Mô tả cấu trúc của bộ phân phối và các thanh ghi hệ thống được sử dụng để điều khiển bộ phân phối. Mô tả cấu trúc của giao diện CPU và các thanh ghi hệ thống được sử dụng để điều khiển giao diện CPU.

Giải thích các khái niệm cốt lõi của IRQ và FIQ và giải thích chi tiết về quy trình thực hiện.

Mô tả các trình xử lý GIC (nhân Linux, trình quản lý siêu giám sát XEN) kiểm soát GIC thông qua phần mềm.

Giới thiệu các quy ước gọi hàm và các tính năng chính tạo nên AAPCS trong kiến trúc CPU.

Kiến trúc Armv7-A: Mô tả chi tiết cách thức hoạt động của các lệnh PUSH và POP, cốt lõi của AAPCS.

Kiến trúc Armv7-A: Mô tả chi tiết luồng thực thi của lệnh BL, cốt lõi của AAPCS, và các lệnh lắp ráp liên quan.

Kiến trúc Armv8-A: Giải thích chi tiết về cách hoạt động của lệnh STP, cốt lõi của AAPCS, và cách hoạt động của cụm BL.

Armv8-A: Cách sử dụng kiến thức về AAPCS để giải quyết vấn đề trong các dự án thực tế. Mô tả chi tiết các kỹ năng ngăn ngừa tràn ngăn xếp và ô nhiễm ngăn xếp.



Một lối tắt để hiểu các nguyên tắc của Arm là
Hãy tự mình đọc và hiểu tài liệu kỹ thuật!

Đối với người mới bắt đầu, Arm chưa bao giờ là dễ dàng. Dù nội dung có hữu ích đến đâu, nó vẫn rất khó hiểu. Khóa học này được thiết kế để giúp bạn tiếp cận lý thuyết kiến trúc Arm khó nhằn một cách dễ dàng hơn.


Dựa trên kinh nghiệm viết sách và giảng bài của tôi
Sâu sắc và chi tiết hơn bất kỳ ai khác!


Vô song trong lĩnh vực phần mềm hệ thống nội địa! Tác giả của 'Arm Architecture (Armv8-A, Armv7-A)' và 'Linux Kernel' ( cả hai đều được Viện Hàn lâm Khoa học Hàn Quốc bình chọn là sách xuất sắc )là tác giả toàn cầu, người đã viết cuốn sách "Reverse Engineering Armv8-A Systems" (tiếng Anh) thông qua một nhà xuất bản nước ngoài (Packt) lần đầu tiên tại Hàn Quốc . Trên hết, ông là một nhà phát triển đang làm việc, am hiểu nhất về các xu hướng phần mềm hệ thống mới nhất (xe điện, chất bán dẫn hệ thống - phần mềm hệ thống). Ông cũng là một nhà giáo dục tích cực nhất trong việc phổ biến kiến thức trong lĩnh vực phần mềm hệ thống.

  • Tác giả của cuốn sách 'Kỹ thuật đảo ngược hệ thống Armv8-A: Hướng dẫn thực tế về phân tích Kernel, Firmware và TrustZone' (Nhà xuất bản Packt) - 2025

  • Tác giả của 'Cấu trúc và nguyên tắc của kiến trúc Arm cho phát triển phần mềm hệ thống' ( Giải thưởng sách xuất sắc của Viện Hàn lâm Khoa học Hàn Quốc năm 2024 )

  • Tác giả của 'Tìm hiểu cấu trúc và nguyên tắc của hạt nhân Linux thông qua gỡ lỗi' ( Giải thưởng Sách xuất sắc của Viện Hàn lâm Khoa học Hàn Quốc năm 2021 )

  • 'Khóa học dành cho lập trình viên: Chuyên gia về hệ thống và hạt nhân Linux' Giảng viên chính

  • Tháng 6 năm 2022, Hội nghị Máy tính Hàn Quốc (KCC2022) - Bài thuyết trình hướng dẫn [Chinh phục Nhân Linux bằng ftrace]

  • Giảng viên nội bộ về 'Linux Kernel' và 'Armv8 Architecture' của LG Electronics ( bao gồm các nhà phát triển trong và ngoài nước ) - (2020~2024)


Tôi có thể tự tin khẳng định rằng tôi là nhà giáo dục có thể giải thích các tính năng chính của kiến trúc Arm (Armv8-A, Armv7-A) tốt hơn bất kỳ ai khác ở Hàn Quốc.

Đánh giá khóa học sống động được để lại bởi học viên

<Cấu trúc và nguyên lý của kiến trúc Arm cho phát triển phần mềm hệ thống - Phần 1/2 Bài giảng của tác giả>


Hỏi & Đáp 💬

H. Có cần thiết phải học kiến trúc Arm để trở thành nhà phát triển phần mềm hệ thống không?

Vâng, bạn chắc chắn nên học nó. CPU được sử dụng rộng rãi nhất trong ngành CNTT là bộ xử lý ARM. Các nhà phát triển phần mềm hệ thống lập trình để điều khiển phần cứng thường cần hiểu rõ về kiến trúc ARM để giải quyết vấn đề. Nếu bạn không hiểu rõ về kiến trúc ARM, có thể bạn chỉ có thể thực hiện công việc cấu hình hệ thống đơn giản.

H. Tôi không phải là sinh viên chuyên ngành này. Tôi có thể học kiến trúc Arm không?

Ngay cả những người không chuyên ngành cũng có thể hiểu đầy đủ các nguyên tắc cơ bản của kiến trúc Arm bằng cách lắng nghe kỹ nội dung bài giảng này. Trong số những người đọc thử cuốn sách "Cấu trúc và Nguyên lý Kiến trúc Arm cho Phát triển Phần mềm Hệ thống", có rất nhiều người không chuyên ngành. Ban đầu, việc đọc và hiểu nội dung kiến trúc Arm khá khó khăn, nhưng sau khi đọc sách 2-3 lần, hầu hết đều đã hiểu kiến trúc Arm. Bài giảng này giải thích nội dung của cuốn sách chi tiết và cụ thể hơn, vì vậy ngay cả những người không chuyên ngành cũng có thể hiểu rõ kiến trúc Arm bằng cách lắng nghe bài giảng này .

H. Tôi có cần phải học khóa học này để trở thành nhà phát triển phần mềm bảo mật không?

Nếu bạn muốn phát triển phần mềm như V3, lý thuyết về kiến trúc CPU là điều cần thiết. Sau khi chuyển sang phát triển trình điều khiển kernel, bạn phải biết kiến trúc CPU như kiến trúc ARM. Nếu bạn muốn tìm hiểu cốt lõi của các kỹ thuật tấn công/phòng thủ khác nhau, bao gồm cả kỹ thuật đảo ngược, sẽ rất khó để thử nếu không nắm vững lý thuyết về kiến trúc ARM.

H. Tôi chỉ học ngôn ngữ C và cấu trúc dữ liệu. Tôi có thể học khóa học này không?

Có chứ. Hơn nữa, nếu bạn biết về hệ điều hành hoặc RTOS, bài giảng này có thể giúp bạn học bài nhanh hơn. Tuy nhiên, bài giảng này sẽ hướng dẫn bạn từng bước để bạn có thể tiếp thu bài giảng mà không cần kiến thức nền.

Quan trọng hơn kiến thức của người chơi là thái độ sau:

  • Cố gắng tham dự các bài giảng một cách nhất quán

  • Rèn luyện khả năng suy nghĩ và cân nhắc khi nghe điều gì đó mà bạn chưa hiểu rõ

  • Thói quen xem xét liên tục

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Lập trình viên junior muốn phát triển năng lực trong lĩnh vực phần mềm hệ thống, bao gồm bán dẫn hệ thống (fabless) và lĩnh vực xe điện (lái tự động, thông tin giải trí).

  • Nhà phát triển từ lĩnh vực khác muốn chuyển nghề sang mảng phần mềm hệ thống.

  • Người tìm việc muốn phát triển phần mềm hệ thống cho bán dẫn hệ thống (fabless), ô tô điện.

  • Sinh viên đại học mong muốn học cao học về phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)

  • Nhà phát triển phần mềm hệ thống (bán dẫn hệ thống, ô tô điện) quan tâm đến cách debug trong thực tế bằng cách khai thác các tính năng của kiến trúc Arm.

Cần biết trước khi bắt đầu?

  • Kiến trúc máy tính

  • Hệ điều hành

  • ngôn ngữ C

  • Nhúng

  • CPU

  • Bộ vi xử lý

Xin chào
Đây là

5,753

Học viên

167

Đánh giá

89

Trả lời

4.9

Xếp hạng

22

Các khóa học

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (Arm, RISC-V 아키텍처)

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 국내 최초로 해외 출판사(Packt)를 통해 "Reverse Engineering Armv8-A Systems" 책(영어)을 집필한 글로벌 저자입니다. 무엇보다 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

강의문의 : austindh.kim@gmail.com

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

Chương trình giảng dạy

Tất cả

130 bài giảng ∙ (20giờ 37phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

11 đánh giá

5.0

11 đánh giá

  • 간절한개발자님의 프로필 이미지
    간절한개발자

    Đánh giá 4

    Đánh giá trung bình 5.0

    5

    51% đã tham gia

    시스템 소프트웨어 개발자로 ARM 프로세서를 알아야 해서 스펙 문서를 보고 구글링을 했습니다. 생소한 용어가 이해가지 않고, ARM 프로세서가 너무 어려워 배우기를 몇 번이나 포기했습니다. 그런데 이 강의를 듣고 나니 완전 다른 세상을 만난 느낌입니다. 설명을 쉽게 해서 몰랐던 모든 용어나 흐름이 이해가고 꽉막힌 부분이 정리됐습니다. ARM을 배우려는 개발자분들께 이 강의 강추합니다!

    • 김동현 (Austin Kim)
      Giảng viên

      좋은 평가 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요.

  • mikeseohyungjin님의 프로필 이미지
    mikeseohyungjin

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    5% đã tham gia

    1. ARM 아키텍쳐에 관해 놀랍도록 깊은 지식에 감명 받았습니다. 2. ARM 스펙가 굉장히 난해하고 어려운데, 강의에 나오는 대로 linux kernel 코드를 보면서 익히니 이해가 잘 가네요. 전체적으로 개발자에 대한 애정이 느껴져서 좋았습니다.. 강추합니다.

    • 좋은 평가와 격려 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.

  • 토끼야놀자님의 프로필 이미지
    토끼야놀자

    Đánh giá 4

    Đánh giá trung bình 5.0

    5

    82% đã tham gia

    단순히 이론을 주입하는 것이 아니라, 이론이 적용된 실제 커널 코드 예시와 강사님께서 실무에서 겪으신 사례를 통해 강의해주셔서 이해도 잘되고 머리에도 지식들이 오래 남았습니다. 좋은 강의를 통해 많은 임베디드 개발자가 생겨날 수 있도록 힘써주셔서 감사합니다.

    • 좋은 평가 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.

  • dlrbcnvk님의 프로필 이미지
    dlrbcnvk

    Đánh giá 19

    Đánh giá trung bình 4.9

    5

    100% đã tham gia

    • 김건우님의 프로필 이미지
      김건우

      Đánh giá 5

      Đánh giá trung bình 5.0

      5

      60% đã tham gia

      Ưu đãi có thời hạn, kết thúc sau 19:22:24 ngày

      99.000 ₫

      25%

      2.775.419 ₫

      Khóa học khác của austinkim

      Hãy khám phá các khóa học khác của giảng viên!

      Khóa học tương tự

      Khám phá các khóa học khác trong cùng lĩnh vực!