이런 걸
배워요!
CPU, Cache
Process와 Thread
Multi-Thread Programming
C# Multithread Part 일부
Mysql, Redis, Kafka 분석능력
‘잘하는 개발자’로 거듭나기 위한 한끗,
멀티쓰레드 프로그래밍의 모든 것
🤔
개발 실력이 정체된 것처럼 느껴져요. 혹시 뒤처지는 건 아닐까요?
🥲
비전공자 출신 프로그래머인데, 원리나 기반 지식이 빈약한 것 같아 늘 아쉬워요.
😥
시니어 프로그래머로 성장하기 위해 어떤 걸 더 공부하면 도움이 될까요?
과거에는 오픈소스 프로젝트들이 잘 관리되지 않거나, 사용상 불편함 또는 오작동이 있었습니다.
그래서 대부분의 시니어 프로그래머들은 캐시 서버나 메시지 브로커 등을 직접 만들어 사용했습니다.
그런데 최근 개발 트렌드는 이러한 것들을 직접 만들기보다, 잘 만들어진 오픈 소스를 사용하는 방식으로 바뀌어가고 있습니다. 직접 서버를 만들고, 멀티쓰레드(Multi-Thread) 프로그래밍을 하지 않게 되면서 잘 만들어진 오픈 소스를 제대로 분석하는 것도 쉽지 않은 일이 되었죠.
대부분의 시니어 프로그래머들은 멀티쓰레드 프로그래밍에 대한 이해도가 높지만, 직접 경험하지 않았던 주니어 개발자 입장에서는 이 간극을 메우기 어렵습니다.
그렇기 때문에 저는 프로그래머로서 성장하는 과정 중 빠지게 된 멀티쓰레드 프로그래밍에 대한 지식을 여러분께 전해드리려 합니다.
여러분은 세상에 있는 많은 오픈소스 코드를 분석하면서 무엇을 얼마나 얻어가실 수 있나요?
영어를 잘 모르는 상태라면 영어로 된 영화나 드라마를 본다고 영어 회화 실력이 늘진 않죠. 반면 듣기와 이해가 어느 정도 되는 분들이라면 영화나 드라마만 봐도 실력을 키울 수 있습니다.
백엔드 개발도 마찬가지입니다.
멀티쓰레드 개념을 이해하고 잘 만들어진 오픈소스를 분석하게 되면, 기존과는 다른 시각으로 ‘음 이렇게 만들어져 있구나’가 아닌 ‘그래서 이렇게 만들었겠구나’ 하는 깊은 통찰력을 키울 수 있습니다.
💡 강의 실습 부분은 VSCode와 C#을 사용했습니다. 내가 사용하지 않는 언어라 거리감이 느껴지실 수도 있지만, 코드는 멀티쓰레드 프로그래밍을 소개하기 위한 도구일 뿐 어떤 복잡한 코드도 들어있지 않습니다. 누구나 한 가지 언어의 아주 기초적인 문법(변수 생성, 분기문, 반복문)만 아셔도 강의를 보시는데 문제가 없습니다.
VSCode를 몰라도, C#을 몰라도, 코드를 실행시킬 줄 모르셔도 강의 안에서 다 알려드립니다.
기본적인 프로그래밍 언어 문법 정도만 알면 이해할 수 있는 내용! 멀티쓰레드 프로그래밍 실습을 하기 전 기본적인 이론을 배웁니다. (Thread, Process)
이론만으로 끝나선 안되겠죠? 멀티쓰레드 프로그래밍 코드를 직접 만들어보고 그 특징과 성격을 파악해봅니다. Github Copilot(코파일럿)을 이용해 직접 코딩을 합니다. 이 과정에서 멀티쓰레드가 무엇인지 몸으로 체감할 수 있습니다. 직접 코딩도 함께 하시죠!
멀티쓰레드에 대해 배운 지식으로, 우리의 통찰력은 달라졌습니다. 달라진 통찰력으로 Redis(레디스), MySQL 그리고 Kafka(카프카)를 분석해 봅니다. 그리고 MSA(마이크로서비스 아키텍처) 및 Scale-out까지도 살펴봅시다. 이것으로 세상에 있는 수많은 오픈소스 그리고 아키텍처가 나의 스승이 됩니다.
Q. 비전공자도 들을 수 있는 강의인가요?
네, 그렇습니다. 기초적인 수준의 프로그래밍 언어 경험만 있다면 별도의 사전 지식은 필요 없습니다.
Q. 강의를 듣기 전 준비할 게 있을까요?
없습니다. 강의에서 사용하는 C# 코드는 거의 Pseudocode(의사코드)나 다름이 없습니다.
Q. 왜 멀티쓰레드를 배워야 하나요?
잘하는 개발자 중, 멀티쓰레드를 모르는 분들은 거의 없습니다.
이 강의는 멀티쓰레드에 대한 부족한 이해를 채움으로써 더 나아간 백엔드 개발자로서의 기틀을 마련할 수 있는 것을 목표로 합니다.
📢 수강 전 확인해주세요
학습 대상은
누구일까요?
프로그래밍 실력이 정체되어 있는 분
비전공자 출신 프로그래머 분
시니어 프로그래머가 되고 싶은 분
선수 지식,
필요할까요?
프로그래밍 일반 (한 가지 프로그래밍 언어의 기본적인 문법을 경험해 본 정도면 충분합니다.)
안녕하세요~
Game Client, Game Server, Embedded, Blockchain 개발 등등..
다양한 경험이 있는 20년차 서버 프로그래머입니다.
현재 멘티스코에서 서버1팀 팀장으로 재직중입니다.
전체
21개 ∙ (3시간 28분)