Submit Search
JAVA 개발자가 시작하는 NodeJS
0 likes
1,031 views
Daniel Lim
Java 개발만 10년 이상하다가 NodeJS를 시작하며 느낀 점들
Software
Read more
1 of 29
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
More Related Content
PPTX
좋은 개발자 되기
Sunghyouk Bae
PPT
ecdevday4
Kenu, GwangNam Heo
PDF
Web devmobile 8회열린세미나
Pumsuk Cho
PDF
Web Framework (웹 프레임워크)
Junsu Kim
PDF
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER Engineering
PDF
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
JinKwon Lee
PPTX
[IT교육/IT학원]Develope를 위한 IT실무교육
탑크리에듀(구로디지털단지역3번출구 2분거리)
PPTX
토종 개발자가 바라본 실리콘밸리 개발 트랜드
Justin Park
좋은 개발자 되기
Sunghyouk Bae
ecdevday4
Kenu, GwangNam Heo
Web devmobile 8회열린세미나
Pumsuk Cho
Web Framework (웹 프레임워크)
Junsu Kim
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER Engineering
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
JinKwon Lee
[IT교육/IT학원]Develope를 위한 IT실무교육
탑크리에듀(구로디지털단지역3번출구 2분거리)
토종 개발자가 바라본 실리콘밸리 개발 트랜드
Justin Park
Similar to JAVA 개발자가 시작하는 NodeJS
(20)
PDF
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
시은 김
PPTX
Developing iOS with Rx, MVVM
Wooseong Kim
PDF
Event storming based msa training commerce example add_handson_v3
uEngine Solutions
PPTX
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
승용 윤
PPTX
자바스크립트 개발자가 되기 위한 플랜 강은심
은심 강
PPT
ecdevday5
Kenu, GwangNam Heo
PDF
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
복연 이
PPTX
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
Eunchan Lee
PDF
The platform 2011
NAVER D2
PDF
(OKdevTV) 2024년 12월 5일 개발 이야기
Jay Park
PDF
예비 개발자를 위한 소프트웨어 세상 이야기
SU BO KIM
PPTX
Node.js 살펴보기
명신 김
PDF
Dev team chronicles
Kenu, GwangNam Heo
PDF
GDG Korea campus 새해 밋업 발표자료_플레이윙즈 신호석
Hosuk Shin
PPTX
Spring one참석기 ksug
Sanghyuk Jung
PDF
주니어 개발자의 개인프로젝트 개발기
sung yong jung
PDF
2024년 5월 27일 개발자 이야기 - 2024년 자바 생태계 정리(by 뉴 렐릭) 외
Jay Park
PDF
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
AWSKRUG - AWS한국사용자모임
PDF
Learning Unit Testing with Pair Programming
Jongchan Kim
PDF
모바일 앱 개발을 위한 Agile 적용
Kevin Kim
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
시은 김
Developing iOS with Rx, MVVM
Wooseong Kim
Event storming based msa training commerce example add_handson_v3
uEngine Solutions
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
승용 윤
자바스크립트 개발자가 되기 위한 플랜 강은심
은심 강
ecdevday5
Kenu, GwangNam Heo
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
복연 이
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
Eunchan Lee
The platform 2011
NAVER D2
(OKdevTV) 2024년 12월 5일 개발 이야기
Jay Park
예비 개발자를 위한 소프트웨어 세상 이야기
SU BO KIM
Node.js 살펴보기
명신 김
Dev team chronicles
Kenu, GwangNam Heo
GDG Korea campus 새해 밋업 발표자료_플레이윙즈 신호석
Hosuk Shin
Spring one참석기 ksug
Sanghyuk Jung
주니어 개발자의 개인프로젝트 개발기
sung yong jung
2024년 5월 27일 개발자 이야기 - 2024년 자바 생태계 정리(by 뉴 렐릭) 외
Jay Park
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
AWSKRUG - AWS한국사용자모임
Learning Unit Testing with Pair Programming
Jongchan Kim
모바일 앱 개발을 위한 Agile 적용
Kevin Kim
Ad
More from Daniel Lim
(20)
PDF
내가 생각하는 개발자란?
Daniel Lim
PDF
개발자를 넘어 기술 리더로 가는 길을 읽고
Daniel Lim
PDF
스크럼 101
Daniel Lim
PDF
nodejs_101.pdf
Daniel Lim
PDF
For You
Daniel Lim
PPTX
Nest js 101
Daniel Lim
PPTX
피드백 시스템
Daniel Lim
PDF
13.code split
Daniel Lim
PDF
12.context api
Daniel Lim
PDF
11.react router dom
Daniel Lim
PDF
9.component style
Daniel Lim
PDF
7.component life cycle
Daniel Lim
PDF
8.hooks
Daniel Lim
PDF
6.component repeat
Daniel Lim
PDF
4.event handling
Daniel Lim
PDF
5.ref 101
Daniel Lim
PDF
3.component 101
Daniel Lim
PDF
2.jsx 101
Daniel Lim
PDF
1.react 101
Daniel Lim
PDF
Swagger? OAS? with NodeJS
Daniel Lim
내가 생각하는 개발자란?
Daniel Lim
개발자를 넘어 기술 리더로 가는 길을 읽고
Daniel Lim
스크럼 101
Daniel Lim
nodejs_101.pdf
Daniel Lim
For You
Daniel Lim
Nest js 101
Daniel Lim
피드백 시스템
Daniel Lim
13.code split
Daniel Lim
12.context api
Daniel Lim
11.react router dom
Daniel Lim
9.component style
Daniel Lim
7.component life cycle
Daniel Lim
8.hooks
Daniel Lim
6.component repeat
Daniel Lim
4.event handling
Daniel Lim
5.ref 101
Daniel Lim
3.component 101
Daniel Lim
2.jsx 101
Daniel Lim
1.react 101
Daniel Lim
Swagger? OAS? with NodeJS
Daniel Lim
Ad
JAVA 개발자가 시작하는 NodeJS
1.
Java개발자가시작하는NodeJS 부제:51Scrum은왜NodeJS를사용할까요? GSSHOP51Scrum 2019.10.26임광규 51Scrum 1
2.
저는! 2005년부터Java언어를기반으로2018년까지주로WEB을개발 - 렌트카 관리,
제약회사, 쇼핑몰, 기상청 데이터 센터, 보안 솔루션 등 구축 2018년11월GSSHOP에입사하여NodeJS를사용시작 - 상품360, SRR, 심의포털, 트랜드몬, LMS몬, Q-FIT 등 구축 51Scrum 2
3.
1년동안느낀NodeJS장점 1.개발생산성향상 2.Javascript기반의FullStack개발 3.비동기처리 4.많은모듈제공&쉬운의존성관리 51Scrum 3
4.
1.개발생산성향상 1.Java에비해코드양이33%가량적음 2.40%가량파일수적음 3.JSON데이터기본지원 4.쉬운비동기프로그래밍 51Scrum 4
5.
JavaVSNodejswebservercode 51Scrum 5
6.
2.javascript기반의FullStack개발 Front-end와Back-end를동일한언어인javascript를사용하여언어의변경에따른비용(시 간)최소화할수있다. 51Scrum 6
7.
3.비동기처리 EventLoop가SingleThread이며,workerthread를활용하여작업을처리한다 참고:[NodeJS]nodejs는single-thread가아니다51Scrum 7
8.
JAVAVSNodeJS성능비교 단순한http호출의경우비동기처리가된NodeJS는동기처리되는Javaapplication서버 에비해향상된성능을보여준다. 참고:Node.jsatPayPal51Scrum 8
9.
알아야하는비동기동작 console.log("first"); setTimeout(() => {console.log('second')},
0); //비동기 처리 console.log('third'); --- 결과 first third second 51Scrum 9
10.
비동기처리방안 1.CallBack 2.Promise 3.async&await 51Scrum 10
11.
CallBack http.get('http://www.gsshop.com', function (res)
{ if (res.statusCode === 200) { console.log("first"); http.get('http://www.gsshop.com', function (res) { if (res.statusCode === 200) { console.log("second"); http.get('http://www.gsshop.com', function (res) { if (res.statusCode === 200) { console.log("third"); } }) } }) } }); 51Scrum 11
12.
Promise const promiseExample =
(msg) => { return new Promise((resolve, reject) => { http.get('http://www.gsshop.com', function (res) { if (res.statusCode === 200) { resolve(msg); }else{ reject('fail'); } }) }) } promiseExample('first').then(data => { console.log(data); return promiseExample('second'); }).then(data => { console.log(data); return promiseExample('third'); }).then(data => { console.log(data); }); 51Scrum 12
13.
async&await const main =
async () => { const first = await promiseExample('first'); console.log(first); const second = await promiseExample('second'); console.log(second); const third = await promiseExample('third'); console.log(third); } main(); 51Scrum 13
14.
비동기처리경험담 async&await는<비동기>를<동기>로처리합니다. 따라서,필요에따라적절한형태로구현해야합니다. 51Scrum 14
15.
잘못된사례 # 직렬 처리 const
sample = async (list) => { for (const item of list) { await process(item); } console.log('Done!'); } 51Scrum 15
16.
처리방안 # 병렬 처리 const
sample = async (list) => { const promises = list.map(process); //promise 형식을 리턴 받음 await Promise.all(promises); console.log('Done!'); } 51Scrum 16
17.
지원브라우저 async/awaitispartofECMAScript2017andisnotsupportedinInternetExplorer andolderbrowsers,sousewithcaution. BabelisaJavaScriptcompiler. 51Scrum 17
18.
4.많은모듈제공&쉬운 의존성관리 Module수비교(2019.10.27기준) maven(java)모듈:308,721개 npm(nodejs)모듈:1,113,468개 (maven대비3배이상▲) 51Scrum 18
19.
npm(nodepackagemanager) 자바스크립트패키지매니저 Node.js에서사용할수있는모듈들을패키지화하여모아둔저장소역할과패키지설치및관리 를위한CLI(Commandlineinterface)를제공합니다. 또한자신이작성한패키지를NPM에올리고공유할수있습니다. 51Scrum 19
20.
npm모듈의존성관리 예)axios모듈설치시의존성을가진모듈도함께설치 51Scrum 20
21.
모듈설치 $> npm install
axios 결과 $> find . -type d -maxdepth 1 | sed -e "s/[^-][^/]*// |/g" -e "s/|([^ ])/|-1/" |-node_modules | |-ms | |-follow-redirects | |-is-buffer | |-axios | |-debug axios와의존성관계가있는follow-redirects,is-buffer모듈설치됨 51Scrum 21
22.
그렇지만... NodeJS의단점들... 51Scrum 22
23.
nodejs의일반적인문제점 -JavaScript코드에서catch되지않은예외또는오류이벤트 -메모리사용량이너무많아메모리부족오류가발생가능 -응답이없는응용프로그램,또는중단될수있음 -성능저하 -네이티브코드에서충돌또는중단 51Scrum 23
24.
java와nodejs간의복잡한로직의성능테스트 NodejsversusJavafastestprograms 복잡한처리는java의성능이좋습니다. 51Scrum 24
25.
추가팁 -PM2 -swagger-node 51Scrum 25
26.
마지막으로... Thereisnosilverbullet-은탄환은없다. 울버린,늑대인간,드라큘라와같은괴물들에게은탄환(oneseeksbulletsofsilver)은한번에무력화시킬 수있는최고의도구이다. -FredBrooks,『SilverBullet-EssenceandAccidentsofSoftwareEngineering』 1986년프레드브룩스가쓴소프트웨어공학논문에서은탄환의존재에대해최초로언급하였 습니다.이와동시에소프트웨어개발의복잡성을한번에해소할마법같은솔루션(은탄환)은없 다고선언하였습니다. 51Scrum 26
27.
Q&A 무엇이든물어보셔요! 51Scrum 27
28.
참고자료#1 NODE.JSVSJAVA:CHOOSINGABACK-ENDLANGUAGEFORLARGEAPP DEVELOPMENT 빠르게서비스를개발할수있는Node.js Helloworld/Webserver nodejs.dev UnderstandingEventLoopinNodeJS [NodeJS]nodejs는single-thread가아니다 51Scrum 28
29.
참고자료#2 Node.jsatPayPal ModuleCounts BabelisaJavaScriptcompiler. NodejsversusJavafastestprograms 1986년프레드브룩스가쓴소프트웨어공학논문 6reasonsyourNode.jsappsarefailing PM2 swagger-node 51Scrum 29
Download