• Stars
    star
    206
  • Rank 184,849 (Top 4 %)
  • Language
    Java
  • License
    Other
  • Created about 9 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Netty 기초 프로그래밍 튜터리얼

Netty 시작하기 강의 자료

고성능 네트워크 애플리케이션 프레임워크 Netty 시작해보기

이 프로젝트 소스와 슬라이드 자료는, Netty 기초 프로그래밍 학습을 위한 교육자료로 만들었으며, 4시간동안 설명과 실습을 함께 진행하도록 구성했습니다.

과정과 목표

JAVA로 고성능 네트워크 클라이언트/서버를 편리하게 개발할 수 있는 프레임워크인 Netty의 기본 개념을 이해하고 예제를 통해 연습합니다.

학습 내용과 대상자

Netty는 JAVA환경에서 고성능 네트워크 서버를 개발할 수 있는 매우 유용한 프레임워크입니다만, 비동기(asynchronous) 이벤트 기반 (event-driven) 처리에 익숙하지 않은 개발자에게는 처음 접근하기 어려운 점이 있습니다. 이 과정에서는 기존 멀티쓰레드와 동기식(synchronous) I/O처리에만 익숙했던 개발자도 차근차근 따라해보며 비동기 I/O처리의 기본 개념을 이해하고, Netty를 본격적으로 활용해 볼 수 있도록 예제 개발을 함께 해보려 합니다.

4시간 발표 슬라이드

  1. 비동기 개념, 기본 인터페이스(Channel) 정리
  2. 고성능 메모리 모델과 유연한 파이프라인
  3. 깔끔한 스레드 모델, Future/Promise 활용
  4. 풍부한 코덱과 WebSocket

위 슬라이드는 웹브라우저에서 바로 볼 수 있습니다.

예제와 실습 프로젝트

  1. EchoServer, DiscardServer
  2. HTTP 웹서버
  3. 텍스트 기반 채팅서버
  4. 웹소켓 기반 웹 채팅

실습 프로젝트는 거의 모든 소스가 작성되어있고, 교육자료를 다 이해한 뒤에 한 두 줄 작성하는 것으로 완성할 수 있도록 중요 부분이 비어있습니다. 작성해야할 부분은 TO DO로 주석 표시가 돼 있어서 IntelliJ에서 Cmd+6을 눌러 TO DO 뷰를 열면 쉽게 찾아갈 수 있습니다. 짧게 몇줄 작성하는 것이지만, 교육자료와 나머지 소스를 어느정도 이해해야만 쉽게 작성할 수 있습니다. 잘 작성했다면, 유닛테스트를 통과하는지 확인하고, 각 실습 예제의 main() 메소드를 실행해서 확인하도록 합니다.

준비사항

무료 IDE인 IntelliJ 커뮤니티 버전으로 실습을 따라할 수 있습니다. Java8기준으로 실습 프로젝트를 작성했으므로, JDK1.8을 준비하도록 합니다.

프로젝트 클론

git clone https://github.com/hatemogi/netty-startup

인텔리J로 프로젝트 열기

netty-startup

  • 클론받은 디렉토리를 인텔리J로 열고 [CMD+1]을 누르면 프로젝트 윈도가 보입니다.
  • [CMD+6]를 누르면 실습 문제용 코드를 작성할 부분들이 보입니다.
  • SDK가 JDK1.8로 잘 설정되었는지 확인합니다.
  • master 브랜치를 받은 상태에서는 유닛테스트 여러개가 실패하며, 실습문제를 다 풀면 모두 통과하게끔 준비돼 있습니다.

강습후기

라이선스

이 프로젝트의 슬라이드와 실습용 소스코드는 MIT라이선스를 따릅니다.

More Repositories

1

github-ko-ext

깃헙 한글화 확장 프로그램
TypeScript
93
star
2

misaeng

클로저 한국어 확장
Clojure
41
star
3

hangul-coding.org

한글로 코딩
JavaScript
30
star
4

AewolInput

애월 한글 입력기 for OSX
Objective-C
24
star
5

hallatype

한라타자
TypeScript
21
star
6

colorlog

로그파일 색칠러
Go
14
star
7

xkobo

Xkobo is a single player action game.
C
10
star
8

scala-for-java-developers

자바 개발자를 위한 스칼라 맛보기 예제
Scala
9
star
9

clojure-quick-intro

Clojure
8
star
10

rust-course

Rust 실용 강의 소스코드
Rust
8
star
11

holiday-project

JavaScript
5
star
12

2018.hatemogi.com

개인홈 2018년 버전
Elm
5
star
13

msgpacker

a rubygem that converts a JSON stream to MessagePack and vice versa
Ruby
4
star
14

personal-note

개인 성장 노트
4
star
15

gvdoodle

Try Graphviz Online
JavaScript
4
star
16

git-internals

an experimental clojure library to study git-internals
Clojure
4
star
17

rurucube

루루큐브
TypeScript
3
star
18

tufdown

CSS
3
star
19

scala-backend

스칼라로 도전하는 직업적 백엔드 프로그래밍
Scala
3
star
20

functional-coding-test

코딩 테스트를 위한 연습과 공부
Scala
3
star
21

kotlin-example-src

예제로 격파하는 코틀린 소스코드
Kotlin
2
star
22

test-check-sample

클로저 test.check 샘플 프로젝트
Clojure
2
star
23

aj-compojure

yet another compojure leiningen template
Clojure
2
star
24

resume.hatemogi.com

이력서 웹페이지
Clojure
2
star
25

hareguu

하레구우 연습중
Clojure
1
star
26

deeplearning-scratch

Python
1
star
27

hangul-coding-pitching

Clojure
1
star
28

fpjava

자바 개발자를 위한 함수형 프로그래밍
Java
1
star
29

aewoljordan

애월조단의 안전라이딩
Clojure
1
star
30

crypto-examples

Clojure
1
star
31

remotesync

원격지간 파일동기화 라이브러리
Java
1
star
32

hallatype-elm

한라타자 Elm 버전
1
star
33

git-kickstart

Git 기초와 실습
CSS
1
star
34

hatemogi-scala-seed.g8

a scala template using http4s + circe + doobie
Scala
1
star
35

starworks.com

스타웍스 웹사이트
Clojure
1
star
36

sicp-clj

studying SICP in clojure
Clojure
1
star
37

pbkdf2

Clojure
1
star
38

git-kickstart-jeju

제주 Git 기초 강좌
CSS
1
star
39

ring-study

클로저 Ring 학습
Clojure
1
star
40

git-intro-2024

Git 버전 관리 기초
HTML
1
star