슬라이드 원본
http://hatemogi.github.com/netty-startup/3.html
프로젝트 소스
https://github.com/hatemogi/netty-startup/
Netty는 JAVA환경에서 고성능 네트워크 서버를 개발할 수 있는 매우 유용한 프레임워크입니다만, 비동기(asynchronous) 이벤트 기반 (event-driven) 처리에 익숙하지 않은 개발자에게는 처음 접근하기 어려운 점이 있습니다. 이 과정에서는 기존 멀티쓰레드와 동기식(synchronous) I/O처리에만 익숙했던 개발자도 차근차근 따라해보며 비동기 I/O처리의 기본 개념을 이해하고, Netty를 본격적으로 활용해 볼 수 있도록 예제 개발을 함께 해보려 합니다.
슬라이드 원본
http://hatemogi.github.com/netty-startup/3.html
프로젝트 소스
https://github.com/hatemogi/netty-startup/
Netty는 JAVA환경에서 고성능 네트워크 서버를 개발할 수 있는 매우 유용한 프레임워크입니다만, 비동기(asynchronous) 이벤트 기반 (event-driven) 처리에 익숙하지 않은 개발자에게는 처음 접근하기 어려운 점이 있습니다. 이 과정에서는 기존 멀티쓰레드와 동기식(synchronous) I/O처리에만 익숙했던 개발자도 차근차근 따라해보며 비동기 I/O처리의 기본 개념을 이해하고, Netty를 본격적으로 활용해 볼 수 있도록 예제 개발을 함께 해보려 합니다.
Clojure development environment
The 3rd Lisp Seminar in Korea
제 3회 리스프 세미나 발표자료.
ppt, pdf, 소스코드, 세미나용 셋팅 자료는 다음 dropbox링크를 열어두었습니다.
https://www.dropbox.com/sh/bt2ij5ucrr8vgj5/oH7seofBKk
상기 링크는 언제든지 지워질 수 있습니다.
저의 vim설정과, emacs설정은 다음과 같습니다.
- https://github.com/netpyoung/netpyoung.vim
- https://github.com/netpyoung/netpyoung.emacs.d
Obfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
Clojure development environment
The 3rd Lisp Seminar in Korea
제 3회 리스프 세미나 발표자료.
ppt, pdf, 소스코드, 세미나용 셋팅 자료는 다음 dropbox링크를 열어두었습니다.
https://www.dropbox.com/sh/bt2ij5ucrr8vgj5/oH7seofBKk
상기 링크는 언제든지 지워질 수 있습니다.
저의 vim설정과, emacs설정은 다음과 같습니다.
- https://github.com/netpyoung/netpyoung.vim
- https://github.com/netpyoung/netpyoung.emacs.d
Obfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
JS Event Loop (Kitworks Team Study 김동현 발표)Wonjun Hwang
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Java Optional (Kitworks Team Study 김성호 발표)Wonjun Hwang
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help boost feelings of calmness, happiness and focus.
10. 2. Rust 마이크로소프트
메모리 참조 결함, null로부터 해방
https://ichi.pro/ko/maikeulo-sopeuteuga-rustleul-chaetaeghaneun-bangbeob-247357927417530
Rust에서 영감 받은 새로운 언어 개발 중
https://zdnet.co.kr/view/?no=20200119172404#imadnews
19. Heap의 자원을 해제하기위해서
1. 메모리를 직접 관리 (Malloc/free)
C/C++ 컴파일 언어
[문제점] 개발자가 일일이 메모리를 추적/관리해야함
2. GC 가비지 컬렉터 이용한다.
Java, js, python 등 VM/ 인터프리터 언어
[문제점] 런타임 시점에 메모리 관리 비용이 들어감
20. Rust는 컴파일 완료되면 메모리 안전
Rust는 컴파일 완료 시,
메모리 안정성을 확보하기위해
Null이란 걸 없앰, 소유권,
라이프타임이라는 개념 있음
29. Rust Option
null 이 아닌 값을 갖는다는 가정을 놓치는 경우에 대해 걱정할 필요가 없게 되면, 코드에 더 확신을
갖게 됩니다.
null 일 수 있는 값을 사용하기 위해서, 명시적으로 값의 타입을 Option<T> 로 만들어 줘야 합니다.
그다음엔 값을 사용할 때 명시적으로 null 인 경우를 처리해야 합니다.
30. Rust 프로그래밍 시 이점
1. 변수
2. 객체 (struct/destruct) , spread
3. 제네릭
4. 네이밍 규칙
31. Rust엔 상속 키워드가 없다.
class A {...}
class B extends A {...}
트레잇(trait) - 인터페이스와 비슷한 개념이나 더욱 강력함
[Effective Java] 16. 상속 대신 구성하라
35. Rust 문서 규칙
Panics: 문서화된 기능이 패닉을 일으킬 수 있는 시나리오입니다. 함수를 호출하는 사람들에게 "프
로그램이 패닉을 일으키지 않게 하려면 이러한 상황에서는 이 함수를 호출하지 않아야 합니다" 라
는 내용을 알려줍니다.
Errors: 해당 함수가 Result 를 반환할 경우에는 발생할 수 있는 에러의 종류와 해당 에러들이 발생하
는 조건을 설명해 주어서 호출하는 사람이 여러 에러를 여러 방법으로 처리할 수 있도록 해야합니
다.
Safety: 함수가 안전하지 않을(unsafe) 경우에 (19장에서 다루는 내용입니다) 왜 이 함수가 안전하지
않은지와 이 함수가 호출하는 사람에게 지키길 기대하는 불변성에 대해 알려주는 구절이 있어야 합
니다.
36. 추가설명 및 LiveCoding
웹 프레임워크 비교: https://github.com/flosse/rust-web-framework-comparison