트위터 Storm 소개 - 등록일 - 2013.09.06 - | - 코멘트 - 39858 Storm은 트위터에서 사용하는 실시간 분석 분산 시스템입니다. 오픈 소스 진영에서 사용하고 있는 Hadoop과 비슷합니다. Hadoop은 빅데이터 분석의 주류이지만 배치 처리에 초점이 맞추어져 있…
[TECH@NHN] 웹 기획자가 알아야 할 서비스 글쓰기의 모든 것 책 출간 - 등록일 - 2013.08.28 - | - 코멘트 - 22385 TECH@NHN 시리즈 일곱 번째 책인 <NHN은 이렇게 한다! 웹 기획자가 알아야 할 서비스 글쓰기의 모든 것>이 2013년 7월 25일에 출…
CUBRID Internals: 드라이버 커넥션 관리 - 등록일 - 2013.08.19 - | - 코멘트 - 23690 응용 프로그램에서 DBMS(database management system)에 연결하여 질의를 처리할 때 꼭 필요한 것이 각 벤더에서 제공하는 드라이버입니다. Java…
Android의 이미지로딩 라이브러리 - 등록일 - 2013.07.12 - | - 코멘트 - 127658 이미지 로딩은 Android 개발에서 가장 뜨거운 지점입니다. 네트워크로 읽어온 여러 이미지를 동시에 보여 주는 화면은 Android의 전형적인 UI입니다. 그런 화면은 SNS의 최…
Percona Live MySQL Conference and Expo 2013 참관기 - 등록일 - 2013.06.11 - | - 코멘트 - 20218 Percona Live MySQL Conference and Expo는 MySQL 커뮤니티와 생태계 구성원의 다양한 기술, 경험, 트렌…
클라우드 네트워크 관리 기술, OpenFlow - 등록일 - 2013.05.31 - | - 코멘트 - 61913 클라우드 환경에서는 간단한 사용자 조작으로 네트워크 부하를 분산하고 트래픽을 모니터링하며 서로 다른 데이터 센터나 서로 다른 지역 또는 서로 다른 국가에서 운영 중인 서버에…
Android의 HTTP 클라이언트 라이브러리 - 등록일 - 2013.05.22 - | - 코멘트 - 119436 Android 애플리케이션에서는 HTTP 통신을 다루는 부분의 비중이 크다. 데이터를 조회하거나 저장하기 위해 서버와 통신하는 모듈은 대부분 HTTP API를 사용하고 있기…
Varnish 이야기 - 등록일 - 2013.04.24 - | - 코멘트 - 60026 웹 서비스에서는 사회적 이슈나 각종 이벤트, DDoS(Distributed Denial of Service) 공격 등으로 인해 트래픽이 갑자기 폭주하는 경우가 있습니다. 이러한 트래픽 폭주로 발생하는…
Java Reference와 GC - 등록일 - 2013.04.02 - | - 코멘트 - 110004 Java의 가비지 컬렉터(Garbage Collector)는 그 동작 방식에 따라 매우 다양한 종류가 있지만 공통적으로 크게 다음 2가지 작업을 수행한다고 볼 수 있습니다. - 힙(he…
안전한 패스워드 저장 - 등록일 - 2013.03.25 - | - 코멘트 - 228197 "보안 시스템은 가장 약한 연결 고리만큼만 강하다." 보안 시스템은 여러 부분으로 이뤄집니다. 공격자(attacker)는 이 중에서 가장 취약한 부분을 공격할 것이라고 가정해야 합니다. 보안 시스템…
웹 사이트 성능 최적화 분석 자동화: YSlow와 CI 서버 연동 - 등록일 - 2013.03.06 - | - 코멘트 - 48732 2007년 Yahoo!에서 웹 사이트 성능 최적화를 위한 내부 노하우를 14개 법칙(현재는 35개 법칙, http://developer.yahoo.com/…
ZooKeeper를 활용한 Redis Cluster 관리 - 등록일 - 2013.02.26 - | - 코멘트 - 93029 지속적으로 늘어나는 푸시 사용자를 MySQL 샤딩으로만 감당하기에는 버거웠습니다. 그래서 다양하게 검토한 끝에 MySQL을 대체할 데이타베이스로 Redis를 선택하…
L4/L7 스위치의 대안, 오픈 소스 로드 밸런서 HAProxy - 등록일 - 2013.02.14 - | - 코멘트 - 220446 Ncloud에서 하드웨어로 구성된 기존의 로드 밸런서(load balancer)를 대체할 수 있는 솔루션을 찾던 중 소프트웨어 로드 밸런서인 HAProxy…
elasticsearch로 로그 검색 시스템 만들기 - 등록일 - 2013.02.01 - | - 코멘트 - 191602 elasticsearch는 Shay Banon이 Lucene을 바탕으로 개발한 분산 검색엔진입니다. 설치와 서버 확장이 매우 편리하기 때문에 개발하고 있는 시스템에 검…
TimingWheel을 이용한 타이머 구현 - 등록일 - 2013.01.25 - | - 코멘트 - 38017 애플리케이션을 개발할 때 타이머를 사용해야 하는 일이 자주 있습니다. 특히 세션에 대한 타임아웃 처리를 하는 것과 같은 작업에서 말이지요. 일반적인 타이머의 구현은 타임아웃 작업…
어떤 분산 파일 시스템을 사용해야 하는가? - 등록일 - 2013.01.17 - | - 코멘트 - 90569 우리는 하나의 데이터를 여러 서버가 공유할 때 분산 파일 시스템을 사용합니다. 최근에는 NFS나 CIFS와 같은 분산 파일 시스템 이외에도 비용이나 성능면 에서 경쟁력이 있는 많…
Node.js로 CUBRID를 - 등록일 - 2013.01.11 - | - 코멘트 - 30842 최근, 이벤트 기반의 Non-Blocking I/O 프로그래밍 모델이라는 점과 JavaScript로 서버 프로그램을 작성할 수 있다는 점에서 Node.js가 많은 주목을 받고 있습니다. No…
Hadoop에서의 실시간 SQL 질의: Impala - 등록일 - 2013.01.04 - | - 코멘트 - 86775 Impala는 HDFS에 저장돼 있는 데이터를 SQL을 이용해 실시간으로 분석할 수 있는 시스템입니다. MapReduce 프레임워크를 이용하지 않고 분산 질의 엔진을 이…
글로벌 분산 데이터베이스 Spanner - 등록일 - 2012.11.29 - | - 코멘트 - 45870 Spanner는 Google이 만든 NewSQL로, 전 세계의 데이터센터에 데이터를 분산 저장합니다. Spanner는 RDBMS 만큼의 정합성을 제공하면서도 하나의 데이터 센터 규모…
확장성 있는 웹 아키텍처와 분산 시스템 - 등록일 - 2012.11.19 - | - 코멘트 - 102226 이 글은 The Architecture of Open Source Applications(이하 aosabook)의 "Scalable Web Architecture And Distr…
JCA로 이해하는 암호화와 보안 - 등록일 - 2012.11.09 - | - 코멘트 - 51294 Java는 오래전부터 자체적인 보안 관련 기능을 제공하고 있습니다. 보안 관련 기능 중에서 JCA(Java Cryptography Architecture)는 가장 핵심이라고 할 수 있습니다…
NGINX 모듈 제작하기 - 등록일 - 2012.11.06 - | - 코멘트 - 54336 사용자에게 더 빠른 체감 성능을 제공하기 위해 NHN에서도 NGINX 사용을 확대하고 있습니다. NGINX 사용의 확대에 따라 기존에 Apache로 제작한 모듈을 NGINX용으로 다시 개발할 필요…
SSD는 소프트웨어 아키텍처를 어떻게 바꾸고 있는가? - 등록일 - 2012.09.26 - | - 코멘트 - 62477 Amazon은 2012년 7월 High I/O Quadruple Extra Large라는 새 클라우드 상품을 발표했습니다. 이 상품은 2TB SSD를 사용합니다. 클라…
Memcached의 확장성 개선 - 등록일 - 2012.09.12 - | - 코멘트 - 55696 이 글은 INTEL사에서 작성한 Enhancing the Scalability of Memcached를 번역한 기사입니다. 본 내용은 2012년도 9월17일(월)에 개최되는 개발자 컨퍼런스…
Apache MaxClients와 Tomcat의 Full GC - 등록일 - 2012.08.17 - | - 코멘트 - 49844 Java 기반의 시스템은 메모리를 JVM(Java Virtual Machine)에서 관리하기 때문에 Full GC 발생으로 인한 STW(Stop The Wor…
3G 모바일 네트워크의 이해 - 등록일 - 2012.07.24 - | - 코멘트 - 128327 모바일 환경에서 모바일 네트워크는 쌀이나 공기와 같습니다. 언제 어디서나 인터넷에 연결될 수 있기 위해서는 3G나 LTE 같은 모바일 네트워크가 필요하기 때문입니다. 3G나 LTE는 자주 듣…
이제 필요한 것은 In Memory Data Grid - 등록일 - 2012.07.18 - | - 코멘트 - 72396 더 빠른 결과를 제공하기 위해 여러 시스템의 메모리에 데이터를 분산시켜 저장하는 사례가 늘고 있습니다. 이런 제품을 IMDG라고 합니다. 현재 IMDG가 어디까지 발전…
Welcome to the Jungle - 등록일 - 2012.05.31 - | - 코멘트 - 29683 이 글은 Herb Shutter의 "Welcome to the Jungle"을 번역한 것입니다. Herb Shutter는 "Exceptional C++"와 "C++ Coding St…
브라우저는 어떻게 동작하는가? - 등록일 - 2012.05.17 - | - 코멘트 - 442043 이 글은 이스라엘 개발자 탈리 가르시엘(Tali Garsiel)이 html5rocks.com에 게시한 "How Browsers Work: Behind the scenes of modern…
TCP/IP 네트워크 스택 이해하기 - 등록일 - 2012.04.26 - | - 코멘트 - 322825 TCP/IP 없는 인터넷 서비스는 상상할 수 없습니다. 우리가 개발하고 사용하는 모든 인터넷 서비스는 TCP/IP라는 튼튼한 토대에 기반하고 있습니다. 어떻게 네트워크를 통해 데이터가…
Android 프로세스의 통신 메커니즘: 바인더 - 등록일 - 2012.04.26 - | - 코멘트 - 75027 손안의 PC라고 부르는 스마트폰의 하드웨어 성능이 높아지면서 스마트폰이 점점 PC의 역할을 대체하고 있습니다. 그러다 보니 자연스럽게 멀티코어 CPU에서 멀티태스킹을 지원하…
4월 3주 Tech Sensing: Twitter의 MySQL 소스코드 공개 - 등록일 - 2012.04.20 - | - 코멘트 - 23838 2010년 분산 데이터 storage framework인 Gizzard를 오픈소스로 공개했던 Twitter가 이번에는 그동안 작업해온 MySQL…
NHN의 안과 밖: Jindo와 jQuery - 등록일 - 2012.04.20 - | - 코멘트 - 61599 Ajax 프레임워크의 도움 없이 웹 서비스의 UI를 개발하는 것은 이제 매우 곤혹스러운 일이 되었습니다. 다양한 브라우저를 지원하고 눈높이가 높아진 사용자의 기대도 빠른 시간에…
3월 4주 Tech Sensing: Google, 시맨틱 검색 기술 적용 계획 공개 - 등록일 - 2012.04.05 - | - 코멘트 - 18413 3월 4주에는 Google이 Wolfram Alpha 방식의 시맨틱 검색 결과를 제공할 예정이라고 밝혔습니다. 그러나, 구체적인 일정은…
빅데이터를 위한 플랫폼들 - 등록일 - 2012.03.22 - | - 코멘트 - 108299 빅데이터 기술이란, 많은 양의 데이터를 저장할 수 있으면서 그 안에서 의미 있는 데이터를 검색하여 시각화하고 이를 바탕으로 예측/분석하는 기술과 비즈니스 프로세스에 내재화하여 적용하는 기술을 말…
OAuth와 춤을 - 등록일 - 2012.03.14 - | - 코멘트 - 200311 최근의 인터넷 서비스는 그 자체가 SaaS(Software as a Service)의 형태입니다. 서비스 중에서 사용자가 일부 필요한 것만 사용할 수 있게 한다는 것입니다. Facebook이나 트위터가…
FFmpeg을 이용한 Android 동영상 플레이어 개발 - 등록일 - 2012.01.27 - | - 코멘트 - 157664 Android는 오픈 플랫폼이어서 단말기가 제공하는 동영상 플레이어의 기능과 지원하는 포맷이 제조사마다 다릅니다. 그래서 더 효율적으로 동영상 서비스를 제공하려면…
PhoneGap을 이용한 앱 개발 - 등록일 - 2012.01.26 - | - 코멘트 - 173094 가장 많은 스마트폰 플랫폼을 지원하는 하이브리드 앱 개발용 크로스 플랫폼인 PhoneGap. PhoneGap의 특징은 무엇이고 애플리케이션 개발에 어떻게 사용할 수 있는지 간략하게 살펴…
HTTP Live Streaming - 등록일 - 2012.01.19 - | - 코멘트 - 148731 라이브 스트리밍을 위한 전통적인 프로토콜로인 RTSP는 도입 비용이 높고 방화벽 환경에서 서비스가 원활하게 이루어지지 않는 단점이 있습니다. 이러한 단점을 해결하는 방법으로 HTTP를…
Garbage Collection 모니터링 방법 - 등록일 - 2012.01.12 - | - 코멘트 - 120599 이전 글인 "Java Garbage Collection"에서는 여러 GC(Garbage Collection) 알고리즘의 동작 과정을 알아보았습니다. 이번 글에서는 JVM에…
Facebook 메신저와 MQTT - 등록일 - 2011.12.28 - | - 코멘트 - 90015 Facebook은 2011년 3월 그룹 메시징 앱을 개발한 Beluga를 인수하여 같은 해 8월 Facebook Messenger 앱을 출시하였습니다. Messenger 앱을 출시하며 자…
Social Analytics 소개 및 관련 서비스 - 등록일 - 2011.12.28 - | - 코멘트 - 44015 최근 스마트폰의 보급으로 트위터나 Facebook, 미투데이 등의 소셜 네트워크 서비스가 모바일 환경과 접목되면서 급성장했습니다. 지금 이 순간에도 엄청난 양의 데이터를…
네이버 소셜앱스 어떻게 만들어야 하나? – 못다 한 이야기 - 등록일 - 2011.12.28 - | - 코멘트 - 18885 DEVIEW 2011에서 '네이버 소셜앱스 어떻게 만들어야 하나?'에 대해서 발표하면서 많은 분들과 이야기할 수 있어서 무척 반갑고 즐거웠습니다. 발표를 준비할…
Android에서 기본 카메라 앱 연동 - 등록일 - 2011.12.28 - | - 코멘트 - 36040 Android 기본(Built-in) 카메라 앱으로 사진을 촬영하면, Goggles와 연동해서 사진을 분석하는 기능이 Google Goggles v1.6에 추가(링크)되었습니다. G…
JDBC Internal - 타임아웃의 이해 - 등록일 - 2011.12.23 - | - 코멘트 - 151466 성능 문제나 장애가 발생할 때 중요하게 살펴보는 부분(tier)은 WAS(Web Application Server)와 DBMS입니다. 대부분의 경우에 WAS를 담당하는 조직과…
네이버 건강 서비스, MFO를 적용한 대용량 데이터 처리 사례 - 등록일 - 2011.12.23 - | - 코멘트 - 23591 네이버 건강 서비스(http://health.naver.com) 는 2011년 6월 오픈한 서비스로, 정확한 종합 건강 정보를 한 곳에서 찾고 사용자의 건강…
MQ를 이용한 SNS 글쓰기 성능 개선 - 등록일 - 2011.12.23 - | - 코멘트 - 24364 네이버 재팬의 PICK은 트위터나 페이스북, 미투데이와 유사한 형태의 SNS 서비스입니다. PICK은 "메인보드"라고 하는 개인화된 타임라인을 중심으로 본인이 팔로잉하는 사용자의 포…
메이븐을 이용한 정적 파일 배포 - 등록일 - 2011.12.23 - | - 코멘트 - 28770 웹 애플리케이션을 잘 개발하는 것 못지 않게 잘 배포하는 것도 중요합니다. 어떻게 배포하느냐에 따라 장애를 줄일 수도 있으며, 사용자가 성능 향상을 체감하게 할 수도 있습니다. 이 글에서는…
JVM Internal - 등록일 - 2011.12.23 - | - 코멘트 - 93191 자바를 이용하여 개발하는 개발자라면 누구나 자바 바이트코드가 JRE 위에서 동작한다는 사실을 잘 알고 있습니다. 이 JRE에서 가장 중요한 요소는 자바 바이트코드를 해석하고 실행하는 JVM(Java…
JDK 7 - 등록일 - 2011.12.23 - | - 코멘트 - 45787 2011년 7월 말 JDK 7이 정식으로 릴리스되었습니다. 비록 Lambda나 Jigsaw 같이 화제가 되었던 프로젝트는 JDK 8로 연기되어 김이 새긴 했지만, 무려 5년 만에 나오는 새 버전인 만큼 전세계…
ffmpeg을 이용한 iOS 동영상 플레이어 - 등록일 - 2011.12.23 - | - 코멘트 - 58756 모바일에서 동영상을 시청하는 사용자가 늘고 있습니다. 단순히 동영상 파일을 재생하는 용도라면 기기에 기본적으로 내장된 플레이어를 사용하는 것으로 충분하겠지만, 애플리케이션의 성…
CUBRID, 브로커 이야기 - 등록일 - 2011.12.23 - | - 코멘트 - 29023 CUBRID는 JDBC 드라이버-브로커-데이터베이스 서버의 3계층(3-tier) 구조를 사용합니다. CUBRID를 처음 접하는 사람들이 많이 궁금해 하는 것 중 하나가 3계층 구조를 사용하는…
야구9단 아키텍처 - 등록일 - 2011.12.23 - | - 코멘트 - 29070 최근 야구의 인기가 치솟고 있는 가운데 한게임에서 웹 시뮬레이션 야구 게임인 야구9단을 출시했습니다. 이 글에서는 야구9단의 서비스 콘셉트와 주요 시스템 아키텍처를 소개합니다. 야구9단 이미 야구9단이…
모바일 Push와 nPush - 등록일 - 2011.12.23 - | - 코멘트 - 78602 대표적인 모바일 Push 서비스는 SMS, MMS입니다. 이 SMS와 MMS의 단점은 발송할 때마다 비용을 지불해야 한다는 것이고, 스마트폰에 설치한 특정 앱을 대상으로 메시지를 발송할 수 없…
구르믈 버서난 달처럼 - 등록일 - 2011.12.23 - | - 코멘트 - 26661 지난 한두 해 동안 '클라우드'(정확히는 '클라우드 컴퓨팅'이라는 용어가 맞습니다)에 관심을 두고 살펴보면서 든 느낌은 "아! 이거, 말 그대로 '뜬구름 잡는 이야기'구나."였습니다. 클라우드가 구름…
uMon의 이해 - 등록일 - 2011.12.22 - | - 코멘트 - 24994 '각종 광고 글, 불법 복제 음원, 보고 싶지 않은 동영상......' 이와 같은 사용자가 원치 않는 정보로부터 네이버 서비스를 지킬 수 있는 것은 uMon이 있기 때문입니다. 모니터링의 필요 아무리 잘…
RTCS 실시간 웹 서비스를 위한 도전 - 등록일 - 2011.12.22 - | - 코멘트 - 50478 HTML, CSS, 자바스크립트만으로 실시간으로 대전할 수 있는 게임을 만들 수 있을까요? RTCS는 HTML과 자바스크립트, CSS, Comet 기술을 활용하여 실시간 웹 서비스를…
분산 고속 저장소 nStore - 등록일 - 2011.12.22 - | - 코멘트 - 26449 최근 NoSQL에 대한 개발자의 반응이 뜨겁습니다. 이는 개발자들 사이에서 RDBMS 외의 다른 저장소에 대한 요구사항이 발생하고 있기 때문이라고 해석할 수 있습니다. 이와 같은 개발자의 요…
NoSQL 가용성과 운영 안정성 - 등록일 - 2011.12.22 - | - 코멘트 - 38856 NoSQL은 RDBMS에 비해 어떤 장점을 가지고 있을까요? NoSQL 제품은 저마다 고성능, 확장성, 가용성 등 RDBMS가 제공하기 어려웠던 부분을 강조합니다. 하지만 모든 면에서 완벽…
iOS 플랫폼 소개 - 등록일 - 2011.12.22 - | - 코멘트 - 23296 iOS는 2007년에 애플(Apple)에서 출시하여 스마트폰의 방향을 바꾼 아이폰의 운영체제입니다. iOS는 키패드나 스타일러스를 사용하지 않고 손가락을 이용하는 멀티터치 인터페이스, Wi-Fi 및 G…
Hadoop과 MongoDB를 이용한 로그분석시스템 - 등록일 - 2011.12.22 - | - 코멘트 - 80742 기하급수적으로 증가하는 서비스의 로그를 어떻게 하면 낮은 비용으로 빠르게 처리할 수 있을지 고민했습니다. 모니터링시스템개발팀에서 지난 몇 개월간 로그 분석을 위한 좋은…
Git vs. Mercurial - 등록일 - 2011.12.22 - | - 코멘트 - 47252 기존의 버전 관리 시스템(Version Control System)에서는 애자일(Agile) 스타일의 개발 방법론으로 개발을 진행할 때 잦은 충돌로 인해 브랜치를 병합하는 과정에서 예상보다…
Spring-Test-MVC 프로젝트 소개 - 등록일 - 2011.12.22 - | - 코멘트 - 52994 NHN 표준 웹개발 프레임워크로 사용하고 있는 Spring MVC, 좀 더 멋지고 짜임있게 테스트를 하고 싶었다면 이 Spring-Test-MVC 프로젝트에 관심을 가져야 합니다…
WebSocket과 Socket.io - 등록일 - 2011.12.22 - | - 코멘트 - 219760 웹 페이지의 한계에서 벗어나 실시간으로 상호작용하는 웹 서비스를 만드는 표준 기술인 WebSocket. 그리고 다양한 방식의 실시간 웹 기술을 손쉽게 사용할 수 있는 Socket.i…