[Hello world 오픈세미나]spring upgrade


스프링 어플리케이션의 문제해결사례와 안티패턴



Buy me a coffeeBuy me a coffee

Mozilla의 웹 브라우저 Firefox32 버전이 2014년 9월 2일자로 출시되었다고 합니다.

아래 화면은 Firefox 31에서 32로 업그레이드 하는 장면입니다.


Firefox Version 32.0, first offered to Release channel users on September 2, 2014 https://www.mozilla.org/en-US/firefox/32.0/releasenotes/


아래는 Firefox 32로 업그레이드 후의 인증화면입니다.



Buy me a coffeeBuy me a coffee

Firefox OS소개 슬라이드

아래 슬라이드는 모질라 재팬(Mozilla Japan)의 에반젤리스트인 Tomoya Asai(@dynamitter)님이 Firefox OS에 대하여 정리한 슬라이드.


요즘 유행하는 IoT(Internet of Things)을 확장하여 Web of Things에 대하여 설명하고, Firefox OS의 동작, Firefox OS탑재 폰에 대하여 설명을 합니다.




ps. 슬라이드에서 나온바와 같이

Webが超重要!(Web이 엄청 중요!)

Web is the Platform 

Webを進化させよう!(Web을 진화시키자! 또는 Web을 발전시키자!)


Web기술은 앞으로 임베디드까지 확장될거는 전망을 슬라이드에서 표현하고 있습니다.

앞으로도 웹 기술은 어디까지 발전될까요? 현재, 출판, 게임, 모바일 운영체제까지 들어갔으니 어디까지 갈지 이런 생각을 해봅니다.

Buy me a coffeeBuy me a coffee
"웹 서비스 개발 철저공략" 책의 내맘대로 평가 및 정리



웹 서비스 개발 철저공략

저자
카츠마 료 지음
출판사
비제이퍼블릭 | 2014-04-09 출간
카테고리
컴퓨터/IT
책소개
린 스타트업 사고방식 가치 있는 서비스를 어떻게 빨리 출시할 것...
가격비교

일본 원서 이름: Webサービス開発徹底攻略 (WEB+DB PRESS plus)    

勝間 亮 (著), 石田 忠司 (著), 杉谷 保幸 (著), 江口 滋 (著), 上谷 隆宏 (著), 青木 俊介 (著), 久保 達彦 (著), 池邉 智洋 (著), 谷口 公一 (著), 田淵 純一 (著), 伊野 友紀 (著), 西岡 拓人 (著), 吉田 俊明 (著), 古旗 雅史 (著), 木野瀬 友人 (著), かなだ まさかつ (著), 牧本 慎平 (著), 成田 一生 (著), 舘野 祐一 (著), 濱崎 健吾 (著), 鈴木 慎之介 (著), 齊藤 宏多 (著), WEB+DB PRESS編集部 (編集)



출판사의 "웹 서비스 개발 철저 공략" 책 소개 링크 http://bjpublic.tistory.com/191


"웹 서비스 개발 철저공략" 책의 내맘대로 평가 및 정리


내맘대로 평가

이 책은 일본사람들이 주로 사용하는 웹서비스인 "쿡패드(クックパッド)", "니코니코동화(ニコニコ動画)", "pixiv", "라이브도어(ライブドア, 이후 Naver Japan 이였다 현재는 Line Cooperation), 2ch에서 개발 및 운영을 하다 생긴 문제나 해결방법 등을 흥미롭게 작성했습니다.

웹 서비스를 제공하는데 사용하는 회사의 인프라스트럭쳐(Infrastructure), 서버, 웹 기술등의 핵심 내용을 짚어나가며 개발 및 운영하다 생긴 문제 및 이슈, 조직 구축 및 운영 및 그리고 시스템 향상을 어떻게 꽤하는지, 모바일 유행에 따라 서비스가 변화에 어떻게 대응했는지 등을 보여줍니다.


이 책에서는 애자일(Agile) 개발 방법론 이야기를 서론에 두고, 일본에서 유명한 웹 서비스들이 어떤식으로 애자일을 적용하여 서비스의 문제점을 개선하여 시스템을 향상시켰는지에 대한 초점을 맞춰서 서술하고 있습니다.

여기서는 기술뿐만 아니라 조직 운영에 대해서도 소개를 하여 개발을 하는데에 협업이 중요하다는 것도 보여줍니다.

(뭐 개발이 혼자서 개발하는 것이 아니라 여러 사람들이 모여서 개발하니깐 협업 중요함)


이 책에서 특이한 사항으로는 제가 모르는 라이브러리(오픈소스 라이브러리이든 상용 라이브러리이든)가 너무 많다는 것이다. 역시 "세상은 넓고 라이브러리는 넘쳐다더라"란 생각을 했습니다.

책에 나오는 라이브러리들을 보면 Perl, Ruby on Rails, PHP쪽 라이브러리가 많이 나오던데, 일본에서는 한국과 다르게 Ruby on Rails, Perl, PHP를 주로 쓰는 경향이 있는 것 같다는 생각을 하였다.


이 책이 좋은 점은 바다 건너 이웃나라인 일본에서 어떻게 웹서비스를 운영하고 개선 향상시키는지에 대한 귀중한 정보들을 얻을 수 있다는 점?


책에 나오는 내용들을 보면 Slideshare등 슬라이드 공유 사이트에서 얼핏 보거나 컨퍼런스 영상에서 들었던 내용들이 나오긴 한데, 이 내용들을 책으로 기술하다보니 정리가 잘 된 느낌이 든다.

만약에, 대형 웹 서비스를 접하고, 운영해본다면 어떻게 운영하겠다는 가이드라인(Guideline)을 제시해주는거라 보면 된다.


책의 단점이라면, 내용이 옛 기술이다보니 완벽하게 이해하는 것보단 어떻게 해결했다 정도 가이드 정도로 봐야한다고 생각합니다, (그래도 웹 서비스의 구축 및 운영 방향제시를 해주는 귀중한 정보를 출판한 것이라 흐름을 관심있게 봐야한다고 생각합니다)


저는 단순 SI(System integration)업을 하는 사람이라 보니 웹서비스들은 어떻게 구축되는지에 대한 호기심을 자극하네요.

SI(System integration)업 특성상, 고객의 필요로 인해 발주받은 내용을 토대로 시스템을 구축을 해주지만, 이후의 운영은 SM(System Management)업 또는 현행부서에서 하다보니 운영에 대한 지식이 거의 전무한데다, 시스템 구축도 주먹구구식 납기일에 맞춰 납기를 하다보니 기술이 딱히 좋은 것도 아니고 -_-;;

SI(System integration)업을 하는 본인으로서는 웹서비스들이 어떻게 구축되고 운영하여 돌아가는지에 대한 지식을 어느정도 알려주는 좋은 책이라고 생각한다.
그리고 SI업 추세가 웹+모바일이기때문에 웹 서비스 구축에 대하여 관심있게 봐야하기때문에 이 책을 꼭 봐야한다고 생각한다고 보는 1인.


여담으로 책을 보다 느끼는 것인데, 일본의 스타트업(startup)기업에서 웹서비스를 처음부터 만들고 대형 웹서비스를 운영하기까지 어떤 과정을 경험했더라는 경험담을 책으로 정리하여 출판하니, 부럽다 정도?

자세한 기술정보를 잡지와 책으로 냈다는 것 자체가 자부심이 있다는 것 같단 생각을 해봄.

일본사람들이 문서화 하는 걸 중요하게 여기는 문화 및 장인정신의 때문에, 일본 업체들의 서비스 문제 및 개선사항에 대한 내용을 일본 잡지나 책에 내놓는 생각을 한다. 그러나 한국에선 이런 서비스 문제 및 개선사항에 대한 내용을 잡지나 책에 낼 수 있을까?

일단 책이라는 것도 수요가 있어야 출판하는것일텐데, 일본은 그래도 수요가 있으니 책을 내겠다만, 한국에선 수요가 한정되어 있다보니 책을 낼수 있을까란 생각을 해본다.


ps. 한국의 대형 포털 2개 업체 중 하나인 NHN에서 "Hello World"(http://helloworld.naver.com/)라는 블로그를 통해서 기술 내용을 소개하고 있고, 다음(Daum)에선 DNA개발자네트워크(http://dna.daum.net/)라는 사이트에서 기술 내용 소개를 하고 있습니다.

ps2. 책을 보다보니 운영체제(Operating System)과 네트워크(Network), 데이터베이스 관리 시스템(DBMS, DataBase Management System)에 대한 지식이 너무 얇음을 느꼈고, 컴퓨터공학과에서 배웠던 위의 내용을 다시 보고 기본기를 쌓을려는 목표를 세웠습니다.




책에서 인상깊은 구절을 적은 내용 정리

린스타트업에 대한 소개

린스타트업에 대한 소개는 아래의 글에 정리를 함.

2014/07/03 - [독서(讀書)] - 린 스타트업(lean startup) 정리



일본에서 유명한 요리 제조 알려주는 웹서비스인 쿡패드

쿡패드는 일본 최대의 요리법 공유 사이트인 동시에 Ruby on Rails로 구축된 일본 최대의 웹 서비스이기도 하다. (생략) 200밀리초 이내에 사용자에게 응답하는 인프라부터, 대규모 서비스임에도 불구하고 단시간에 많은 서비스를 출시할 수 있는 개발 기반, 철저한 사용자 중심 서비스 개발, 효율적인 스마트폰 개발, 울타리를 넘어선 팀 구축 등 모두 놓쳐선 안 될 것들이다.

"DevOps 자체는 Dev와 Ops관계에 대해 이야기 하고 있지만, 그 내용을 비약해 생각해보면 엔지니어에 국한된 것이 아니라 입장이나 전문성이 다른 멤버 간 협력을 위한 연습을 이야기한다고 할 수 있다."

"쿡패드는 엔지니어 수도 늘었고 기술 기반도 향상돼서 수많은 새 기능과 새 서비스를 개발할 수 있었다. 그렇다고 효율적인 서비스 개발의 모든 장벽이 제거된 것은 아니다. 개발 속도는, 단순히 개인의 기술력이나 툴 문제가 아닌, 조직 차원에서 해결해야 할 문제다."


니코니코 동화(ニコニコ動画)

사용자가 동영상 위에 쉽게 댓글을 달 수 있는 서비스 '니코니코 동영상'은 매일같이 애용되고 있는 일본의 웹서비스중 하나다. 2006년에 서비스를 출시한 후 7년 동안 폭발적으로 증가한 사용자 수, 우수한 가용성, 독특한 커뮤니티, 기술력 등 내세울 자랑거리는 많지만, 서비스 출시 당시에는 많은 장애물이 있었다.

애자일 개발 방식과 니코니코 개발

  • 프로세스나 툴보다 사람 간의 상호작용을 중시한다
  • 포괄적인 문서보다 동작하는 소프트웨어를 중시한다
  • 계획상의 협상보다 고객과의 협력을 중시한다
  • 계획을 따르기보다 변화에 대응하는 것을 중시한다


소프트웨어 장인 기질

 장인(匠人)기질 : 장인 사회에 존재하는 특유의 기질. 자신의 기술에 자신이 있고, 완고하지만 근면하고 정직한 성질 - 일본 『코우지엔 5판』(1998, 2004)

職人気質: 職人社会に特有の気質。自分の技術に自信を持ち、頑固だが実直であるというような性質。 - 日本 「広辞苑」(1998, 2004)

장인 기질을 지닌 엔지니어는 자신의 경험이나 주변에서 얻은 정보를 사용해서, 짧은 기간에 실현 가능한 문제 해결법을, DRY원칙(Don't Repeat Yourself)이나 KISS 원칙(Keep It Simple and Small)을 사용해서 빠르게 결정하고, 이를 바탕으로 개발하고, 평가(테스트)한다.

개발해보고 실패해보고 실패하면, 그것을 버리고 다른 방법(평가)으로 도전해본다. 얼핏 시간 낭비로 보일 수 있지만, 실패한 경험은 나중에 유익한 경험으로 선용할 수 있다.

이런 식의 개발 방식은 심플하고 변화에 강하기 때문에 요구 변화에 비교적 빠르게 대응할 수 있다.


pixiv

pixiv는 사용자가 그림을 등록하고 그림과 관련된 다양한 커뮤니케이션을 하는 SNS이다. pixiv서비스 출시부터 주목을 받았고, 사용자 수가 점점 증가해서 결국 서비스를 확장해야했다. 제한된 리소스를 사용해서 나날이 증가하는 트래픽을 제어하기 위해 사용했던 튜닝이나 스케일업/아웃 방법 등 현장에서 일했던 엔지니어들의 노하우를 공개.


"그로부터 5년이 지나 정신을 차려보니 일러스트레이터가 아닌 프로그래머가 돼있었다."

"그림을 하나의 장소에 모아 플랫폼을 만들고 싶다는 열정에 사로잡혀 매일 개발에 몰두한 결과 탄생한 것이 바로 pixiv이다."

시작 당시의 pixiv는 매우 작은 시스템으로 운영됐지만, 사용자 경향이나 의견을 반영해가면서 개발을 통해 사용자 요구를 지원하는 형식으로 많은 기능을 추가했다. 겨로가적으로 대규모 서비스로 발전했다. 튜닝이나 기능 확장 면에서도 많은 고민을 통해 기술 축적을 이루었으며, 낮은 비용으로 서비스 안정화를 도모했다.


라이브도어(Livedoor→Naver Japan→ 현재는 Line Cooperation) 시스템 구축 노하우

라이브도어(Livedoor)는 오픈 소스 소프트웨어를 주로 사용해서 확장 가능한 시스템을 구축하고 있는, 일본 유수의 포털 사이트다.


"새로운 기술을 빠르게 적용하는 것은 엔지니어로서 중요한 임무지만, 한편 오래됐더라도 안정되게 시스템을 운영해 가면서 사업적 요소를 늘려가는 것도 중요한 일이라 생각한다."

"현재 사이트 규모가 작더라도, 몇 주 후 또는 몇 달 후에는 대규모 사이트로 성장할 가능성이 있는 사이트가 많을 것이다."


Yahoo! Japan 메일

PC용으로 개발되서 플래시UI를 가지고 있는 2008년도 당시의 Yahoo!메일(코드명: Hikari)을 살펴보고, 지금까지 진행 중인 개발 뒷단의 숨겨진 이야기를 소개함.

"소프트웨어 고속화에 있어서 중요한 것은 '실측 시간에 기반해야 한다'는 것이다. "

"이렇게 하면 빨라지는 게 아닐까? 이 계산은 의미가 없어 하고 추측만 하지 말고, 해당 코드 처리에 걸리는 시간을 꼭 실측해 보도록 하자. 의외로 1/1000초밖에 걸리치 않는 부분을 고속화하려고 고생하는 경우도 있고, 그 옆에 아무 생각 없이 쓴 코드 한 줄이 몇 초씩 프로그램을 지연시키는 경우도 있다."

"소프트웨어 개발에 있어서 고속화 기법은 누군가에겐 지루할 수 있지만, 쾌적하게 프로그램을 사용할 수 있도록 하는 것은 개발자가 생각하는 것 이상으로 중요하다"


2ch 전송량 줄이기

'2채널'(http://2ch.net)이란 니시무라 씨가 운영하고 있는 일본 최대 규모 커뮤니티 사이트(BBS)(공식적으로 '거대 게시판 집팝')이다.

"현재 광대역 시대가 도래했다고 하지만, 대역 부족은 언제나 고민거리로 이후로도 대역이 콘텐츠를 쫓아갈 수 없는 상태가 계속되리라 생각한다. 막대한 대역 사용료로 날마다 고민하고 있는 사이트 운영자들은 도입을 꼭 검토해보기 바란다."

편집부: "곤란할 때는 전문가를 화나게 화면 되는 거군요.(웃음)"

카나타: "(기술자 중에는) 승부욕이 강한 사람이 많으니까요.(웃음)"



ps. 니코니코(ニコニコ)란 한국어의 '싱글벙글'과 비슷한 의미로, 웃는 모습을 나타내는 일본어라고 하는군요. 새롭게 안 사실.

ps2. 일본 대형 웹서비스 업체의 사례를 보고 들으니, 나도 대형 웹서비스를 구축 및 운영해보고 싶단 생각이 든다. 단순 SI업무만 하다보니 계속 정체되는 느낌이랄까? 뜻과 목표는 높은데, SI업 특성상 단순 서비스 구축에만 신경쓰기 때문에 그런지 쓰던 기술만 계속 쓰는 느낌이 든다. 책을 보고 자극 받아서 계속 발전하고 싶다.

ps3. 나름 책을 읽고 정리하였으니, 책을 읽고 느낀 점을 마구잡이로 쓴거라 책을 다시 읽고 정리해야겠음.

Buy me a coffeeBuy me a coffee

일본 모질라재단의 에반젤리스트이신 dynamis (でゅなみす@もじら) @dynamitter 님이 작성하신 슬라이드 "Fox Trot"

Firefox의 역사와 Firefox OS를 소개하는 슬라이드입니다. (일본어,日本語,Japanese 로 작성됨.)


Firefox의 역사와 Firefox OS 기능 및 탑재 모델에 대한 소개를 하고 있음.


출처: dynamis (でゅなみす@もじら) @dynamitter 님 트위터



Buy me a coffeeBuy me a coffee


어거스타 에이다 킹, 러브레이스 백작부인(Augusta Ada King, Countess of Lovelace)의 탄생 197주년. Ada Lovelace는 12월 10일 생일입니다.


저의 생일날 - 12월 10일


12월 10일은 영국 시인의 딸이며, 최초의 프로그래머, 그리고 미국방부에서 사용하는 프로그래밍언어의 이름 Ada를 내놓게 한 어거스타 에이다 킹, 러브레이스 백작부인(Augusta Ada King, Countess of Lovelace)의 탄생 197주년이며 그리고 저의 생일입니다.

그리고 12월 10일은 국제연합(연합국,United Nation)에서 발표한 "세계 인권 선언일" 또는 "국제 인권 기념일"이기도 합니다.


생일날에 구글 두들이 2개씩이나 뜨니 정신 없네요. 하나는 제 생일을 축하하는 두들, 그리고 또 하나는 에이다 러브레이스 탄생 197주년 두들입니다.


에이다 러브레이스에 대한 위키페디아 소개(영어): http://en.wikipedia.org/wiki/Ada_Lovelace 

[컴퓨팅 역사의 이정표] 최초의 프로그래머, 러브레이스 백작부인  http://www.linxus.co.kr/main/view_post.asp?post_seq_no=6863


최초의 프로그래머인 에이다 백작부인을 기념하게 위해서 미국과 영국에서 아래와 같은 일을 했습니다.


에이다 러브에이스 백작 소개와는 상관없지만, 컴퓨터 프로그래머들이 애인이 없는 이유는 "에이다의 저주"때문이라는 우스개글이 있네요. -ㅁ-


그리고 제가 사용하고 있는 Android 4.2.1 Jellybean이 설치된 갤럭시 넥서스 휴대폰에 있는 구글 나우(Google Now)앱이 제 생일날을 어찌 알았는지 생일 축하해주는군요.

구글 나우 앱 한국에서 쓰기 불편하긴하지만, 생일 축하를 해주니 급 괜찮은 앱같아보이네요.




구글님, 제 생일을 축하해주셔서 정말 고맙습니다.



Buy me a coffeeBuy me a coffee

JSP에서 성능을 높이기 위한 팁

  1. 문자열 사용을 자제한다.
  2. 정적인 내용은 초기에 생성한다
  3. println()메소드 대신 print()메소드를 사용한다
  4. 출력을 위한 버퍼 크기를 적당한 크기로 조절한다.
  5. 데이터들은 적당한 크기로 중간에 플러시한다.
  6. synchronized를 사용하는 영역을 최소화한다
  7. JSP에서 필요하지 않은 경우에는 세션을 사용하지 않도록 한다.
  8. 정적인 내용을 포함시킬 때는 include 지시어를 사용하고 jsp:include 액션 태그는 사용하지 않는다.
  9. useBean의 스코프를 적절히 지정한다
  10. 적절한 캐쉬 기능을 사용한다
  11. 웹 컨테이너에서 자동적인 리로딩 기능을 제거한다.


Buy me a coffeeBuy me a coffee

Introducing the new Google bar


A new Google bar helps you navigate quickly between products, and share the right stuff with the right people easily on Google+.


새로운 Google Bar 소개

新Google Bar 介紹

Buy me a coffeeBuy me a coffee





일본 굴지의 통신회사인 KDDI는 10월 12 일, 글로벌 콘텐츠 딜리버리 네트워크 (CDN - Content Delivery Networks) 서비스를 제공하는 한국 CDNetworks를 자회사화하고, CDN 사업에 진출한다고 발표했다. 10 월 중 CDNetworks가 발행하는 보통주의 85.5 %를 약 1억 6700만 달러 (약 128 억엔, 한화 약 1882 억원)으로 취득한다고 함.


KDDI가 자체적으로 CDN서비스를 하기 위해서 세계적으로 CDN서비스로 유명한 한국 기업인 CDNetworks를 인수를 하였습니다.

KDDI가 늘어나는 트래픽 용량 처리 및 클라우드 컴퓨팅 환경에 대비하기 위해서 한국 기업인 CDNetworks를 인수하였다던데, KDDI의 자본력으로 자체적으로 CDN서비스 구축을 못하지 않은데, 왜 인수 했을지 궁금하긴 하군요.

일본 회사 자체적으로 글로벌 한 기술을 갖기 힘들어서 글로벌 기술을 갖고 있는 회사 인수하는 것이 속편했을까요?

Buy me a coffeeBuy me a coffee

웹의 진화를 그래프로 잘 설명한 사이트를 소개하겠습니다.

The Evolution of the Web(http://evolutionofweb.appspot.com/) 이라는 사이트입니다.

The Evolution of the Web

The Evolution of the Web - http://evolutionofweb.appspot.com/


위의 사이트에서는 1990년, 팀 버너스리가 웹(HyperText Transfer Protocol)을 창시한 것을 시작하여 웹브라우저들의 생성부터 소멸, 그리고 생성후 발달 과정, 그리고 웹 기술(Web Technology)들을 일목요연하게 설명합니다.


웹에 관심 많은 사람이면 꼭 들어가서 Web의 역사를 꼭 봐야합니다. 이런 웹의 역사 및 진화를 볼때마다 재미있게 보여요. 그러나 기술은 너무 많이 발전되어서 저도 따라가기가 힘드네요.


아래는 웹의 발전을 소개하는 영어 글귀입니다.

The web today is a growing universe of interlinked web pages and web apps, teeming with videos, photos, and interactive content. What the average user doesn't see is the interplay of web technologies and browsers that makes all this possible.

Over time web technologies have evolved to give web developers the ability to create new generations of useful and immersive web experiences. Today's web is a result of the ongoing efforts of an open web community that helps define these web technologies, like HTML5, CSS3 and WebGL and ensure that they're supported in all web browsers.


Buy me a coffeeBuy me a coffee

+ Recent posts