SlideShare une entreprise Scribd logo
1  sur  15
1st node.js Korea conference




Node.js & Web Service
                    @beejei 김범짂




                                   2012.11.20
Intro

김범진       @beejei
  – Lisn.me의 front 웹 서비스를 Node.js(v0.4.8)로 제작
    (2011.6~2012.3, 현재 v0.6.18)

        Link:




                                            Page 2
Intro

Directmedia
 – 음원 제작사 > 음원 권리사 > 음원 제공사 > 음원 서비스
    제작         투자/육성   권리사들과    멜롞
                       조율을 통해   벅스
                       음원을 확보   다음뮤직
                                …

                                +




                                       Page 3
Index

시작하기 전에 before start
왜 Node.js인가 why Node.js
도입결과 acquire result
리슨미 아키텍쳐 lisn.me architecture
기본기능구현 implement basic functions
문제해결 troubleshooting
팁 tips
의견 my opinion

                                    Page 4
Before start

서비스 작성의 조건

  – Single-Page Application Style
     • Music Player가 멈추지 말아야 하므로…


  – Heavy client-side Javascript

  – Support IE(>6)
     • 보수적으로 작성


  – 시갂이 많지 않음(6개월 내에 베타 서비스 목표)

                                    Page 5
Why Node.js?

 – 빠르다?

 – [from Setup to Dev.] 의 시갂이 짧아서

 – 웹 개발이었기 때문에

 – 지원되는 패키지가 Javascript이었기 때문에

 – 안되면 부분적으로 C로 만들자…



                                    Page 6
Acquire result
각종 난관
  –   연속적인 Async. Programming의 어려움
  –   각종 API들의 버그
  –   UTF8만 지원
  –   SNS 연계상의 문제


결과적으로
  –   6개월 내에 서비스 완성
  –   서비스 피크시기에도 CPU사용률은 10% 전후
  –   약 1년 동안 이유 없이 서비스 다운된 적 없음
  –   어떠한 방식의 해킹 시도가 통했던 적 없음




                                     Page 7
lisn.me architecture

        Nginx                                   Node.js                 Mail
                                                 Application
         Gateway                                                        SendMail
                                                   Server 1
         (lisn.me)                                                       Server
                                             Redis Session Server



                                                Node.js             MySQL
                                                 Application
                                                                        DataBase
                         Storage                  Server 2

                          static file
                      / media file / image
                                                Node.js
                                                    SNS
                                                   Server




        Nginx                                   Node.js
                                             Service Management
        Gateway
                                                     Server
      (img.lisn.me)
                                                                    …

       Wowza
     Media Streaming
         Server


                                                                                   Page 8
Implement basic functions

Starting Express.js
  – # express <test>


Enc./Decrypt Funcs
  – AES 256 Algorithm : openSSL  php 호홖
  – Bcrypt Hash Algorithm : password


File Upload(Progress support)
  – AjaxUpload


http://nodeconf.beejei.com

                                           Page 9
Implement basic functions

multipart.js – custom middleware




                                    Page 10
Troubleshooting
euc-kr problem
  – PG사(Payment Gateway) 모듈은 모두 EUC-KR
  – request : connect.js의 middleware customize로 해결
  – exec : C프로그램으로 해결


Heavy index page
  – Single-Page Application Style의 최대 단점




                                                     Page 11
Troubleshooting
UTFConv - Custom C Program
  – utf-8 input -> euc-kr input / euc-kr output -> utf-8 output




                                                                  Page 12
Tips
Jade 운영
  – Template file I/O를 최소화 – express 3.0에서는 caching이 구현되어
    있음
  – Template Precompile


API 작성 및 운영
  – API 호출시에는 req의 인자로 넘겨서 받도록
       • 웹 호출과 내부 호출이 둘 가 가능함
  – 문서는 최소한의 사양만 정리
       • http://nodeconf.beejei.com/api


서비스 운영 팁
  – 오류 발생시
  – Multicore 사용 – cluster?
                                                       Page 13
My opinion
Node.js의 적재적소
  – 비즈니스 로직이 단순한 다중 커넥션 서비스
  – 일반 웹 서비스의 빠른 prototyping에 최적
    • Static 언어로의 구현이 반드시 필요하다면 spec이 고정된 이후에
      컨버팅


배울점
  – Static언어와 dynamic언어의 절묘한 경계
  – 자주 바뀌고 빠른 prototyping이 필요한
    곳에는 스크립트를 사용하자




                        http://blog.zenika.com/index.php?post/2011/04/10/NodeJS
                                                                                  Page 14
1st node.js Korea conference




              Thank you
                     Q&A?




                               2012.11.20

Contenu connexe

Tendances

Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료shanka2
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_shareRhea Strike
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래JeongHun Byeon
 
Node.js
Node.jsNode.js
Node.jsymtech
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs근호 최
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장Woo Yeong Choi
 
Python server-101
Python server-101Python server-101
Python server-101Huey Park
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010devCAT Studio, NEXON
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.SeungWoo Lee
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드Jeongsang Baek
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 SuHyun Jeon
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자KyeongWon Koo
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기JeongHun Byeon
 

Tendances (20)

Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Rhea mmo node_for_share
Rhea mmo node_for_shareRhea mmo node_for_share
Rhea mmo node_for_share
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래
 
Node.js
Node.jsNode.js
Node.js
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장아꿈사 발표 Node JS 프로그래밍 8장
아꿈사 발표 Node JS 프로그래밍 8장
 
Python server-101
Python server-101Python server-101
Python server-101
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Inside node.js
Inside node.jsInside node.js
Inside node.js
 
Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기Node.js 자바스크립트로 서버사이드 개발하기
Node.js 자바스크립트로 서버사이드 개발하기
 

En vedette

IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3Park Jonggun
 
노드js 기초
노드js 기초 노드js 기초
노드js 기초 경륜 이
 
Nodejs Production 적용기
Nodejs Production 적용기Nodejs Production 적용기
Nodejs Production 적용기JeongHun Byeon
 
[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장sung ki choi
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구ByungJoon Lee
 
[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwonNAVER D2
 
[Hello world]git internal
[Hello world]git internal[Hello world]git internal
[Hello world]git internalNAVER D2
 
[Hello world]n forge
[Hello world]n forge[Hello world]n forge
[Hello world]n forgeNAVER D2
 
[Hello world]play framework소개
[Hello world]play framework소개[Hello world]play framework소개
[Hello world]play framework소개NAVER D2
 
Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12
Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12
Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12Keith Resar
 
Building a keyboard from scratch
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratchJesse Vincent
 

En vedette (11)

IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3IoT with Raspberry Pi + Node JS - Chapter 3
IoT with Raspberry Pi + Node JS - Chapter 3
 
노드js 기초
노드js 기초 노드js 기초
노드js 기초
 
Nodejs Production 적용기
Nodejs Production 적용기Nodejs Production 적용기
Nodejs Production 적용기
 
[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
 
[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon[Hello world]nodejs helloworld chaesuwon
[Hello world]nodejs helloworld chaesuwon
 
[Hello world]git internal
[Hello world]git internal[Hello world]git internal
[Hello world]git internal
 
[Hello world]n forge
[Hello world]n forge[Hello world]n forge
[Hello world]n forge
 
[Hello world]play framework소개
[Hello world]play framework소개[Hello world]play framework소개
[Hello world]play framework소개
 
Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12
Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12
Hosting For Your Startup, Side Project, or Big Dollar App - Minnebar 12
 
Building a keyboard from scratch
Building a keyboard from scratchBuilding a keyboard from scratch
Building a keyboard from scratch
 

Similaire à Beejei node.js & web service

JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈NAVER D2
 
요즘 웹 배포
요즘 웹 배포요즘 웹 배포
요즘 웹 배포명호 박
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview민태 김
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty ServerJungWoon Lee
 
Multithread pattern 소개
Multithread pattern 소개Multithread pattern 소개
Multithread pattern 소개Sunghyouk Bae
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
2012 07 28_cloud_reference_architecture_openplatform
2012 07 28_cloud_reference_architecture_openplatform2012 07 28_cloud_reference_architecture_openplatform
2012 07 28_cloud_reference_architecture_openplatformYousun Jeong
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea Strike
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015Goonoo Kim
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로Amazon Web Services Korea
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트Dong-Jin Park
 
Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)류 영수
 

Similaire à Beejei node.js & web service (20)

JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈[D2 오픈세미나]3.자바스크립트mean스택 김태훈
[D2 오픈세미나]3.자바스크립트mean스택 김태훈
 
요즘 웹 배포
요즘 웹 배포요즘 웹 배포
요즘 웹 배포
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
 
Electron
ElectronElectron
Electron
 
hexa core
hexa corehexa core
hexa core
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server
 
Multithread pattern 소개
Multithread pattern 소개Multithread pattern 소개
Multithread pattern 소개
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
2012 07 28_cloud_reference_architecture_openplatform
2012 07 28_cloud_reference_architecture_openplatform2012 07 28_cloud_reference_architecture_openplatform
2012 07 28_cloud_reference_architecture_openplatform
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_Architecture
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
 
J2 Ee
J2 EeJ2 Ee
J2 Ee
 
Fastboot
FastbootFastboot
Fastboot
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)Java (spring) vs javascript (node.js)
Java (spring) vs javascript (node.js)
 

Dernier

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Dernier (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

Beejei node.js & web service

  • 1. 1st node.js Korea conference Node.js & Web Service @beejei 김범짂 2012.11.20
  • 2. Intro 김범진 @beejei – Lisn.me의 front 웹 서비스를 Node.js(v0.4.8)로 제작 (2011.6~2012.3, 현재 v0.6.18) Link: Page 2
  • 3. Intro Directmedia – 음원 제작사 > 음원 권리사 > 음원 제공사 > 음원 서비스 제작 투자/육성 권리사들과 멜롞 조율을 통해 벅스 음원을 확보 다음뮤직 … + Page 3
  • 4. Index 시작하기 전에 before start 왜 Node.js인가 why Node.js 도입결과 acquire result 리슨미 아키텍쳐 lisn.me architecture 기본기능구현 implement basic functions 문제해결 troubleshooting 팁 tips 의견 my opinion Page 4
  • 5. Before start 서비스 작성의 조건 – Single-Page Application Style • Music Player가 멈추지 말아야 하므로… – Heavy client-side Javascript – Support IE(>6) • 보수적으로 작성 – 시갂이 많지 않음(6개월 내에 베타 서비스 목표) Page 5
  • 6. Why Node.js? – 빠르다? – [from Setup to Dev.] 의 시갂이 짧아서 – 웹 개발이었기 때문에 – 지원되는 패키지가 Javascript이었기 때문에 – 안되면 부분적으로 C로 만들자… Page 6
  • 7. Acquire result 각종 난관 – 연속적인 Async. Programming의 어려움 – 각종 API들의 버그 – UTF8만 지원 – SNS 연계상의 문제 결과적으로 – 6개월 내에 서비스 완성 – 서비스 피크시기에도 CPU사용률은 10% 전후 – 약 1년 동안 이유 없이 서비스 다운된 적 없음 – 어떠한 방식의 해킹 시도가 통했던 적 없음 Page 7
  • 8. lisn.me architecture Nginx Node.js Mail Application Gateway SendMail Server 1 (lisn.me) Server Redis Session Server Node.js MySQL Application DataBase Storage Server 2 static file / media file / image Node.js SNS Server Nginx Node.js Service Management Gateway Server (img.lisn.me) … Wowza Media Streaming Server Page 8
  • 9. Implement basic functions Starting Express.js – # express <test> Enc./Decrypt Funcs – AES 256 Algorithm : openSSL  php 호홖 – Bcrypt Hash Algorithm : password File Upload(Progress support) – AjaxUpload http://nodeconf.beejei.com Page 9
  • 10. Implement basic functions multipart.js – custom middleware Page 10
  • 11. Troubleshooting euc-kr problem – PG사(Payment Gateway) 모듈은 모두 EUC-KR – request : connect.js의 middleware customize로 해결 – exec : C프로그램으로 해결 Heavy index page – Single-Page Application Style의 최대 단점 Page 11
  • 12. Troubleshooting UTFConv - Custom C Program – utf-8 input -> euc-kr input / euc-kr output -> utf-8 output Page 12
  • 13. Tips Jade 운영 – Template file I/O를 최소화 – express 3.0에서는 caching이 구현되어 있음 – Template Precompile API 작성 및 운영 – API 호출시에는 req의 인자로 넘겨서 받도록 • 웹 호출과 내부 호출이 둘 가 가능함 – 문서는 최소한의 사양만 정리 • http://nodeconf.beejei.com/api 서비스 운영 팁 – 오류 발생시 – Multicore 사용 – cluster? Page 13
  • 14. My opinion Node.js의 적재적소 – 비즈니스 로직이 단순한 다중 커넥션 서비스 – 일반 웹 서비스의 빠른 prototyping에 최적 • Static 언어로의 구현이 반드시 필요하다면 spec이 고정된 이후에 컨버팅 배울점 – Static언어와 dynamic언어의 절묘한 경계 – 자주 바뀌고 빠른 prototyping이 필요한 곳에는 스크립트를 사용하자 http://blog.zenika.com/index.php?post/2011/04/10/NodeJS Page 14
  • 15. 1st node.js Korea conference Thank you Q&A? 2012.11.20