ALB+EC2 to API gateway + LambdaKyuhyun Byun기본적인 웹어플리케이션 아키텍쳐인 ELB와 EC2로 이루어진 환경에서 Serverless Architecture인 API Gateway + Lambda로 전환한 사례 공유입니다.
데모 Git repository는 다음과 같습니다.
https://github.com/novemberde/serverless-webapp-demo
Using CloudFront and S3 at SMARTSTUDYHyun-woo Park아마존코리아 주최 Cloudfront 세미나에서 발표했던 'Using CloudFront with S3 on Mobile App Services at SMARTSTUDY' 자료입니다.
두근두근 ASP.NET 5!SangHoon Han[TechDays 2015]에서 발표한 "두근두근 ASP.NET 5!" 세션의 발표 자료입니다.
ASP.NET의 Reboot이라고까지 불리는 ASP.NET 5를 미리 만나볼 수 있는 시간을 가져봅니다.
무엇이 달라졌고 개선되었는지, 또 어떤 매력을 가졌는지에 대해서 알아볼 수 있는 ASP.NET 5와의 첫 만남!
그 두근거림을 느껴 보시기 바랍니다.
Project TIMAT - infrastructure as codeJesang YoonHB Smith가 인프라를 코드로 관리하여 높은 성과를 어떻게 달성했는지 그 경험을 공유합니다. 본 자료는 AWS KRUG Architecture 소모임에서 2017년 9월 27일 발표 되었습니다.
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!SangHoon Han[TechDays 2014] 에서 발표한 "이제 온라인이다! 브라우저 안으로 들어온 Visual Studio!" 세션의 발표 자료입니다.
Visual Studio Online의 "Monaco"와 "Application Insights"에 대하여 알아봅니다.
ALB+EC2 to API gateway + LambdaKyuhyun Byun기본적인 웹어플리케이션 아키텍쳐인 ELB와 EC2로 이루어진 환경에서 Serverless Architecture인 API Gateway + Lambda로 전환한 사례 공유입니다.
데모 Git repository는 다음과 같습니다.
https://github.com/novemberde/serverless-webapp-demo
Using CloudFront and S3 at SMARTSTUDYHyun-woo Park아마존코리아 주최 Cloudfront 세미나에서 발표했던 'Using CloudFront with S3 on Mobile App Services at SMARTSTUDY' 자료입니다.
두근두근 ASP.NET 5!SangHoon Han[TechDays 2015]에서 발표한 "두근두근 ASP.NET 5!" 세션의 발표 자료입니다.
ASP.NET의 Reboot이라고까지 불리는 ASP.NET 5를 미리 만나볼 수 있는 시간을 가져봅니다.
무엇이 달라졌고 개선되었는지, 또 어떤 매력을 가졌는지에 대해서 알아볼 수 있는 ASP.NET 5와의 첫 만남!
그 두근거림을 느껴 보시기 바랍니다.
Project TIMAT - infrastructure as codeJesang YoonHB Smith가 인프라를 코드로 관리하여 높은 성과를 어떻게 달성했는지 그 경험을 공유합니다. 본 자료는 AWS KRUG Architecture 소모임에서 2017년 9월 27일 발표 되었습니다.
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!SangHoon Han[TechDays 2014] 에서 발표한 "이제 온라인이다! 브라우저 안으로 들어온 Visual Studio!" 세션의 발표 자료입니다.
Visual Studio Online의 "Monaco"와 "Application Insights"에 대하여 알아봅니다.
Py conkr 20150829_docker-pythonEric Ahn1. The document discusses Docker containers, Docker machines, and Docker Compose as tools for building Python development environments and deploying backend services.
2. It provides examples of using Docker to run sample Python/Django applications with MySQL and PostgreSQL databases in containers, and load testing the applications.
3. The examples demonstrate performance testing Python REST APIs with different database backends and caching configurations using Docker containers.
Key-Value Store를 사용한 대용량 게임 통계: WoW 경매장 분석 서비스 wowz.kr를 사례로Seok-ju YunKey-Value Store를 사용한 대용량 게임 통계: WoW 경매장 분석 서비스 wowz.kr를 사례로
#ndc_15 에서 발표한 슬라이드를 공유합니다.
Webkit/chromium contribution processNAVER LABSThis document provides an overview of the contribution process for WebKit/Chromium projects. The process involves downloading the source code, building the code, writing patches with accompanying tests, verifying the coding style and tests, and uploading patches for review on Bugzilla or Rietveld. Maintaining code quality is important, so various tools are used for style checking, running tests, and participating in mailing lists and IRC channels.
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...NAVER LABSISMIR ( International Society for Music Information Retrieval Conference ) 2015 에서 발표된 CNN 딥러닝 방법을 이용하여 음악을 분석하는 내용의 논문입니다.
저자 : Queen Mary University of London 최근우, 네이버랩스 김정희, Queen Mary University of London George Fazekas, Queen Mary University of London Mark Sandler
Android Chromium Rendering PipelineHyungwook LeeThis document discusses the Android Chromium rendering pipeline. It covers topics like the critical rendering path in browsers, Chromium's multi-process architecture, and differences between Chrome, Chromium WebView, and the Android rendering model. The document also looks at how Chromium uses techniques like GPU acceleration, multi-threading, and layers to improve performance. Finally, it examines the current and future states of the Android WebView.
python and databaseKwangyoun JungThis slides shows relationship between python and databases. but this is very short story. not all that python and databases, just part of them. Use your own risk.
CoreOS : 설치부터 컨테이너 배포까지충섭 김CoreOS : 설치부터 컨테이너 배포까지
Docker Seoul Meetup #1에서 발표한 자료입니다.
CoreOS에 대한 개념과 간단한 설명을 볼 수 있습니다.
http://youtu.be/pR5MoWHPtQs
영상과 함께 보시면 더 좋습니다 :)
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례Jeongsang Baek대부분의 중소 모바일 게임 업체는 앱을 잘 만들기에도 시간이 모자라 출시일을 잘 맞추기 급급한 상황이다. 그러다 보니 운영을 위한 툴은 소홀히 개발하는 경우가 대부분이고 운영 캠페인은 날림으로 개발하거나 그때 그때 개발자가 필요한 부분만 개발하기 일쑤다. 그러다보니 마케터는 결국 늘 개발자 눈치만 살피게 된다. 필자는 블루윈드에서 이러한 문제를 절감했고 '모바일 게임 개발사가 앱 개발에만 집중할 수 있게 해주고 싶다'는 IGAworks의 철학에 공감하여 라이브 오퍼레이션 프로젝트를 시작하게 되었다.
라이브 오퍼레이션의 개발 중점과제는 5가지였다. 첫번째, 다수의 개발사가 하나의 큰 클라우드 시스템을 사용하도록 multi-tenant 인프라를 구축해야 한다. 두번째, TCO(Total cost of ownership)를 최소화해야 한다. 세번째, 앱의 핵심유저를 실시간으로 그룹화하여 타게팅 캠페인을 할 수 있어야 한다. 네번째, 캠페인의 성과를 마케터에게 실시간으로 피드백해야 한다. 다섯째, 3개월 안에 정식 서비스가 되어야 한다는 점이었다. (왜 우리에게 주어지는 시간은 늘 3개월인가) 그리고 당연하지만 이 서비스를 혼자 개발해야 했다.
이 다섯가지 이슈를 해결하기 위하여 AWS 클라우드 상에 생산성과 성능이 검증된 node.js 와 mongodb를 이용하여 서비스 백엔드를 구성하였고, multi-tenant를 구성하기 위한 여러가지 고민과 그 해결책을 직접 구현하였다. 필자는 node.js와 mongodb를 사용해 본 경험이 충분하다 생각했지만 대규모 정식 서비스를 진행하며 많은 함정에 빠졌고 결국 해결했다.
이 발표를 통해 청강자는 node.js와 mongodb를 이용하여 multi-tenant 인프라를 구축해야 할 때 고려해야 할 설계 방식과 기술적인 고민, 그것에 대한 현실적인 해법을 얻을 수 있다.
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian HongKGC2013에서 발표한 자료입니다. 모든 사람들의 예상을 뛰어넘는 성공을 거둔 쿠키런, 그 성장을 함께한 서버 개발자의 이야기. AWS의 어떤 서비스를 어떻게 이용하는지, AWS를 대규모 서비스에 적용하며 느낀 AWS의 장점, 아쉬운점, 아팠던점 등을 공유합니다.
서버학개론(백엔드 서버 개발자를 위한)SU BO KIM어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임외부 인프라 도움 없이 단일 호스트 내부에서 무중단 배포를 구현하며, 발생한 유지보수성을저해하는 포인트들을 AWS와 함께 해결한 경험을 이야기합니다.
Ansible introduction & demoYongKi KimThis document is aimed for IT operators and related people to make sense of IT automation. And ansible is just a tool. but engineer can acquire automation skill easily with ansible. no needs to deep dive into tool itself. just use it then your work would be happier.
코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기Seokjae Lee인프콘 2023에서 발표한 <코프링 프로젝트 투입 일주일 전: 주니어 개발자의 코틀린 도입 이야기> 발표 자료입니다.
https://www.inflearn.com/conf/infcon-2023/session-detail?id=765
한국 중소기업 개발자의 AWS 사용방법Hyunmin Kim한국 중소기업에서 개발자가 프로젝트 진행시 Parse.com, Firebase, AWS를 사용해서 개발 및 테스트한 이야기를 전해드립니다.
또한 AWS를 사용하면서 실수로 하게되는 몇가지 사례와, 개발/테스트 비용을 줄이는 내용도 알려드립니다.
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee지난 10월에 연구실에서 진행했던 세미나 자료입니다.
웹개발에 대한 기본적인 개념이나 프레임웤에 대한 내용을 전혀 모르는 학부 학생들과 연세가 있으신 박사과정 학생들을 위해 제작되었습니다.
Codeigniter의 내용보다도 왜 Codeigniter를 쓰면 좋은지, 그리고 웹 개발 방법은 어떻게 바뀌어 왔는지 등을 이곳저곳의 슬라이드(Codeigniter 한국사용자 포럼의 웅파님, 다음커뮤니케이션의 윤석찬님)를 정리하였습니다.
초보자를 대상으로 하는 강의에서 참고하면 좋을 것 같아용~
관련 문의는 Codeigniter 한국사용자 포럼 codeigniter-kr.org 에서 해주세요~
3. 현재 상황
• 2011년 창업 하였습니다.
• 주로 스마트폰 기반의 앱/서비스를 개발하고 있습니다.
• 1명의 개발자로 시작하여 지금까지 3명의 개발자가 있습니다.
• 해야 할 일은 많지만 3명의 개발자로 소화하고 있습니다.
• 급하게 개발자를 채용하고 싶은 생각은 없습니다.
4. 원칙
• 성공적인 소규모 스타트업을 끊임없이 벤치마킹 합니다.
• Keep it very simple.
• Don’t re-invent the wheel.
• Go with proven and solid technologies when you can.
• 아직까지는 성공적입니다. 곧 4번째 개발자도 함께 합니다.
9. Android
• xml layout 은 UI fragmentation problem 을 많이 해결 해 줍니다.
• 다만 Android OS 버전간의 문제는 종종 불편함을 야기할 때가 있습니다.
• GC 는 모든 메모리 오류를 찾아주지 못 합니다.
• eclipse 의 대안을 찾아볼 때가 된 것 같습니다.
11. Hybrid
• 적은 노력 대비 다양한 단말기를 제공할 수 있다는 것은 분명 큰 장점
• 하지만 네이티브 앱보다 느린 것 역시 너무나도 자명한 사실 입니다.
• 단말기 성능이 좋아져 봤자 그만큼 네이티브 앱 역시 더 빨라짐 ㅋ
• 서비스 초기 빠른 오픈을 위해서는 OK, 하지만 그 외에는…?
• 우리는 무조건 네이티브로 개발합니다.
15. Hosting
• IaaS - AWS? uCloud?
• 아니면 PaaS - Google App Engine? Heroku?
• 우리의 선택은 IaaS - NHN NCloud 입니다.
• 빠른 레이턴시, 안정적인 서비스, 적당한 가격
• 인스턴스 종류가 제한적이며, Console API 가 없는 것은 좀…
16. OS
• Ubuntu 12.04 를 이용합니다.
• 작은 규모의 개발팀에게는 이보다 편하고 쓸만한 OS 가 없습니다.
• Advanced Packaging Tool
• PPA/Launchpad
17. Web Server
• 처음에는 Apache 를 사용 했었습니다.
• 손에 익은 서버였고, 뭐 사용하는데 큰 불편함은 없습니다.
• 지금은 Nginx 를 이용하고 있습니다.
• 가볍고 뛰어난 성능, 특히 높은 static file serving performance
• 반드시 Apache 를 써야 할 상황이 아니라면 Nginx 가 짱짱맨입니다.
18. Application Server
• uwsgi 를 이용하고 있습니다.
• 웹 서버와 reverse proxy 로 연결되어 동작합니다.
• 뛰어난 성능을 보여 줍니다.
• 웹 서버와 분리되어 있어 관리의 용이성이 훨씬 좋습니다.
19. Web Application
• Django 를 이용하고 있습니다.
• python 기반의 프레임워크들 중 하나이며, 풀 스택 프레임워크입니다.
• 별 생각없이 빠르게 웹 어플리케이션을 생산할 때 아주 큰 도움이 됩니다.
• 입맛에 맞는 미들웨어를 고를 수 없다는 것은 가끔씩 아쉽습니다만 뭐 그닥…ㅋ
20. Deployment
• Fabric 을 사용하여 앱 어플리케이션을 배포합니다.
• python 기반의 ssh streaming library 입니다.
• parallel execution 을 지원하여 서버 배포를 빠르게 진행할 수 있습니다.
21. Task Queue
• Celery 를 이용하고 있습니다.
• 수행시간이 오래 걸리는 작업을 백그라운드에서 처리하게 하거나
• Push Notification 을 처리할 때 주로 사용합니다.
• 늘 그렇듯이, 잘 설정해 놓고 잊고 있으면 됩니다.
23. SQLite
• Not as a replacement for Oracle but as a replacement for fopen()
• 상용 서비스에 활용하고 싶은 생각이 항상 있지만 몇몇 단점이…
• 프로토타이핑하거나,
• 클라이언트 내장 데이터베이스 용도로 주로 사용합니다.
• django - sqlite 로 웹 서비스를 만들어 데이터 생성 후 sqlite 파일만 추출!
24. MySQL
• 전체적으로 성능은 참 좋습니다.
• Reliability, Concurrency Problem
• 게다가 Oracle 인수 후 뚜렷한 발전사항이 없습니다.
• 정말 MySQL 이 좋다면, MariaDB 를 사용합시다. 지금 바꾸세요.
25. PostgreSQL
• “The world's most advanced open source database”
• 발음하기도 더러운 오픈소스 데이터베이스
• High Reliability, ACID compliance
• 저희가 주력으로 사용하는 데이터베이스입니다.
• PgBouncer - “lightweight connection pooler for PostgreSQL”
26. STATIC FILE Serving
• Amazon S3 같은거!!
• 클라우드 서버 하나에 Nginx 를 올려서 잘 사용하고 있습니다.
• 파일 업로드를 위해 Django RESTful API Server 가 동작 중입니다.
27. Memcached
• 쉽게 사용 가능한 캐시 서버입니다.
• django 는 memcached 를 기본 지원하므로 정말 손쉽게 적용 가능합니다.
• 다만 그 경우 invalidation 이 시간 단위로만 세팅이 되서…
• redis 에 밀려 예전같지 않습니다만 여전히 강력합니다.
28. Redis
• memcached 보다 더 다양한 기능을 제공합니다.
• RDB, AOF 기능은 메모리 캐시의 단점을 잘 극복해 주는 기능입니다.
• 별 생각 없이 캐시서버를 도입하고 싶다면 그냥 redis.io 에 접속하세요.
• 어제 jemalloc 과 함께 적용해 보았습니다. 좋네요 ㅋ