초급 수준
Node.js 기본 개념
- Node.js 소개와 역사
- Non-blocking I/O 모델
- 이벤트 기반 아키텍처 이해
Node.js 설치와 환경 구성
- Node.js 설치 방법 (운영체제별)
- NPM(Node Package Manager) 소개와 사용법
- 개발 환경 설정 (에디터, 디버깅 등)
기본 문법과 자바스크립트 ES6+
- 변수, 데이터 타입, 연산자
- 조건문과 반복문
- 함수, 객체, 배열
- 비동기 프로그래밍과 콜백 함수
내장 모듈 사용하기
- 파일 시스템 모듈 (fs)
- HTTP 모듈을 이용한 웹 서버 생성
- URL과 쿼리스트링 모듈
중급 수준
모듈 시스템과 패키지 관리
- CommonJS와 ES6 모듈 시스템 비교
- 외부 패키지 설치 및 관리 (npm)
- 패키지 버전 관리 (Semantic Versioning)
Express 프레임워크
- Express 소개와 기본 구성
- 미들웨어 이해와 사용법
- 라우팅과 컨트롤러
데이터베이스 연동
- MySQL, MongoDB, 또는 PostgreSQL 등과의 연동
- ORM(Object-Relational Mapping) 사용법
RESTful API 개발
- REST 개념 이해
- RESTful API 설계 원칙
- Express를 이용한 RESTful API 개발
고급 수준
비동기 제어와 Promise
- 콜백 헬 이슈와 비동기 제어 방법
- Promise와 Async/Await 활용
실시간 통신과 웹 소켓
- 웹 소켓 개념과 동작 방식
- Socket.IO를 이용한 실시간 데이터 전송
보안
- Node.js 보안 이슈와 대응 방법
- 인증과 인가 처리
클러스터링과 로드 밸런싱
- Node.js 클러스터링 개념과 설정
- 로드 밸런싱을 위한 프록시 서버 구성
테스트와 디버깅
- 테스트 자동화 (유닛 테스트, 통합 테스트 등)
- 디버깅 방법과 도구 활용
성능 최적화와 스케일링
메모리 관리와 성능 튜닝
- 메모리 누수와 메모리 관리 기법
- 프로파일링 도구를 이용한 성능 분석
캐싱과 클러스터링
- 캐시 개념과 Redis 활용
- 멀티 서버 환경에서의 데이터 동기화
마이크로서비스 아키텍처
- 마이크로서비스 아키텍처 이해
- Node.js로 구현한 마이크로서비스 시스템
실전 프로젝트와 활용 사례
웹 애플리케이션 구축
- Express와 데이터베이스를 이용한 웹 애플리케이션 구축
- 세션 및 쿠키 관리
RESTful API 서버 구축
- 데이터베이스와 연동한 RESTful API 서버 구축
- API 문서 자동화 (Swagger 등)
실시간 앱과 채팅 서버
- Socket.IO를 이용한 실시간 채팅 서버 개발
- 실시간 앱과 웹 소켓 통신
마이크로서비스 기반 애플리케이션
- 여러 마이크로서비스로 구성된 애플리케이션 구축
- 서비스 디스커버리와 로드 밸런싱
성능 최적화와 스케일링 프로젝트
- Node.js 애플리케이션의 성능 튜닝 프로젝트
- 클러스터링을 통한 스케일 아웃 구성