Naver에서 추최하는 개발자 컨퍼런스 Deview에 다녀왔다. 이틀에 걸쳐서 진행되었는데, 두번째 날에만 다녀왔다. 내가 들은 것을 좀 정리해본다.

1. Google 검색

  • 구글에서 크롤링할 때, 쿼리 파라메터까지 파싱해서 값에 상관없이 동일한 페이지를 보여주는 것은 무시하고 동일한 링크로 처리한다고 한다.

2. RecoPick

  • 쿠키기반 UID, 행동에 의한 추천
  • 유사한 기호의 사용자를 필터링하기 위해서 Minhash 기반 필터링 사용
  • 추천 가중치 : 레퍼러, 행동(구매 > 장바구니), 시간, 기사 유사도
  • 추천된 키들의 순서로 MD5를 구해서 키로 사용

3. Docker

기타 다른 것들은 Deview 2013 홈페이지에서 확인할 수 있다.

'Etc' 카테고리의 다른 글

DevOn 2013  (0) 2013.10.28
PHPFest 2013  (0) 2013.10.12
Why We Prefer Founding CEOs  (0) 2013.10.08

PHPFest 2013이 있었다. 국내에서는 많이 사용하면서도 기술 공유는 비교적 적은 PHP 개발자들에게는 가뭄에 단비같은 행사가 아닐 수 없다. 2009년에 PHPFest가 있었고, 최근에는 제작년에 있어서 갔던 기억이 있다. 밑에 있는 올해 행사 공지를 봤을때, 관심있는 발표가 꽤 있어서 꼭 가야겠다고 생각했다. 가보니 생각보다 참석한 사람도 많았고, 발표 내용도 좋았다. 각 세션별로 들은 내용을 한번 정리해 본다.

1. PHP 애플리케이션 성능 향상방법

  • 빠른 코드를 만들기 위해서 연구하느라 리소스(시간, 비용)를 투입하는 것 보다는 PHP 최신 버전을 사용하는 것이 효율이 좋다.
  • OpCache 등의 캐시를 사용하라.
  • 리팩토링을 위한 툴을 활용 : xdebug, Jmeter

2. Elastic Beanstalk

  • 비용만 괜찮았다면 회사에서 사용하고 싶을 정도로 편리하게 해놨다. 이제 시작하는 스타트업의 경우는 괜찮은 선택일 수도 있겠다. 자세한 것은 아마존웹서비스 안내를 참고.

3. MySQL - 5.5 이하 버전을 기준으로

  • FROM절 서브쿼리
  • Stored function에서의 Deterministic : NOT인 경우(Default) 인덱스를 사용하지 않아서 성능 이슈
  • IN (서브쿼리) 형태 : 외부 쿼리 결과의 ROW 수 만큼 서브 쿼리가 수행됨. 해결은 JOIN으로 대체하거나 괄호 안의 서브쿼리를 미리 상수화하는 방법, GROUP BY로 해결하는 방법도 있다고 한다.
  • 트랜젝션시에는 외부 작업을 하지 않아야 한다.(외부 작업이 중단되버리면 Lock이 오래 지속됨) 자원이 IDLE인데 쿼리 처리 속도가 느리면 다음과 같이 Lock을 확인해본다.
    > SHOW ENGINE INNODB STATUS;
    ...
    .... TRANSACTION 3F0B, ACTIVE 23sec .... // 1초 이상이면 문제임
    > pager grep ACTIVE; // 유닉스에서 위의 구문만 찾을 수 있도록 해주는 명령
  • 긴 쿼리는 이해하기도 어렵고, 최적화가 어려우므로 피하자.
  • Unique Index가 많으면 Lock
  • memcached 등의 캐쉬를 사용한다면, 없는 데이터에 대한 것도 캐쉬할 필요가 있을 수 있다.
  • 문의는 http://cafe.naver.com/realmysql

4. Javascript

  • 이벤트 핸들러는 버블링을 사용 : Target은 hasClass() 등을 사용해서 판별
  • (이제는) localStorage를 사용
  • 문자열 합칠 때에는 배열을 join한다. 다른 예는 Array(11).join("a") 의 형태.
  • 개체를 추가할때는 append()보다는 html()을 사용
  • 추천 툴 : jsmatch, jsperf, DynaTrace, Yslow

후기를 좀 더 보태보면, 원래 계획표에 있는 코드이그나이터 발표는 발표자의 안타까운 개인 사정으로 취소가 되었다는 것을 행사가 시작하면서 미리 공지되었기에 이해하더라도, 마지막 순서로 있는 HipHop 발표는 하지 않고, 갑자기 Q&A 시간을 가지는 바람에 좀 당황했다. 나처럼 HipHop 발표를 기대한 사람들이 분명 있었을텐데 별다른 설명도 없었고, 설명을 듣는다고 달라질 것도 없는 것 같아서 따로 물어보지는 않았지만, 이전의 PHPFest도 그랬듯이 행사진행이 매끄럽지 않다는 느낌을 가지게 했다. 그리고, 사전 등록도 받았는데, 경품 추첨 같은 것도 미리 준비했으면 어땠을까 하는 아쉬움이 남는다.

진행상의 옥의 티는 있을지라도 행사 자체는 유익했다. PHP Korea에서 목표로 하고 있듯이 매년 PHPFest가 열리기를 기대한다.

'Etc' 카테고리의 다른 글

Deview 2013  (0) 2013.10.15
Why We Prefer Founding CEOs  (0) 2013.10.08
기술을 사람에게 적용하는 방법  (0) 2013.06.23

Ben Horowitz가 블로그에 올린 Why We Prefer Founding CEOs를 "우리가 '창업자 CEO'를 선호하는 이유"라는 제목으로 번역한 글이 있어서 읽어보았다.

이 글에서 대부분의 훌륭한 기술 회사들이 창업자 CEO를 통해서 만들어졌다고 이야기하면서, 이러한 이유에는 "혁신"이 자리하고 있다고 주장한다. 이 혁신의 원동력은 뛰어난 혁신가였던 창업자 CEO들의 용기라고 하는데, 이들에게는 세가지 특성이 있다고 한다.

  • 폭넓은 지식 (Comprehensive knowledge)
  • 도덕적 권위 (Moral authority)
  • 장시간의 헌신 (Total commitment to the long-term)

또한 CEO의 자질이 있는지 알아볼 수 있는 특성을 두가지로 설명하고 있다.


'Etc' 카테고리의 다른 글

PHPFest 2013  (0) 2013.10.12
기술을 사람에게 적용하는 방법  (0) 2013.06.23
조엘이 엄선한 소프트웨어 블로그 베스트 29선  (0) 2013.06.16

XenServer 6.2가 오픈소스로 공개되면서, 무료로 사용할 수 있게 되었지만, 중요한 기능 중에 하나인 업데이트 기능이 빠졌다. 물론 라이센스를 구매해서 업데이트 도구를 사용하는 것이 가장 좋겠지만, 무료로 사용하더라도 패치는 Citrix에서 제공하고 있다.

이것을 받아서 수동으로 패치하는 방법을 소개한다.

1. 패치 확인

패치가 나온 것을 확인해야하는데, 이것은 XenCenter를 사용하면, 알림으로 새로운 패치가 나왔음을 알려주기 때문에 쉽게 알 수 있다. 이 알림 메시지에서 중요한 것은 패치 번호이다. (예: XS62E001) 이 번호를 Citrix의 고객지원 페이지(http://support.citrix.com/)에서 검색하면, 패치 안내 페이지를 찾을 수 있다.

예를 들면, XS62E001을 사이트 검색폼에 넣고 검색하면 "Hotfix XS62E001 - For XenServer 6.2.0" 이란 제목의 글이 검색 결과로 나오고, 다운로드 링크를 통해서 패치를 다운로드 받을 수 있다.

2. 패치 적용

패치를 다운로드하는 페이지에 설치 방법에 대한 안내가 나와있기 때문에 그대로 따라하면 된다. 적용할때에는 XenCenter에 포함되어있는 xe.exe 프로그램을 사용한다.


참고


'Operating' 카테고리의 다른 글

Ubuntu에 Solr 최신버전 설치  (1) 2013.11.27
은전한닢 프로젝트 설치  (0) 2013.03.15
Windows 업데이트 문제 - 오류 80070003, 0x80240022  (1) 2013.02.26
  1. 기술을 개발해서 시장에 내놓습니다. 그리고 그 기술이 사람들의 삶에 들어맞는지를 알아봅니다. 기술이 사람들의 요구에 맞지 않더라도 그냥 밀어붙여서 강매해 버립니다. 쉽게 말하자면 사람들이 필요로 하는 것과 같이 묶어서 판매함으로써 사람들이 어쩔 수 없이 구매할 수밖에 없게 만들라는 것입니다. 개인적으로 이 방법은 정말 혐오스럽다고 생각합니다. 비록 우리 업계에 종사하는 대다수 업체가 이 방법을 사용하긴 하지만 말이죠.
  2. 기술을 개발해서 사람들에게 던져놓고 어떤 것이 인기가 있는지 알아봅니다. 그리고 이 기술을 사용하는 사람을 계속 주시하면서 그들을 이해하려 노력하는 겁니다. 그들이 하는 일을 이해하고 왜 그리고 어떻게 이 기술이 그들의 삶에 맞아 들어가는지를 이해하세요. 그리고 이 기술을 좋아하는 사람들의 필요와 요구사항에 더 잘 들어맞게 기술을 발전시키는 겁니다.
  3. 일단의 사람들과 그들의 요구사항을 이해한 다음, 이 사람들의 일상에 자연스럽게 녹아들 수 있는 기술을 개발합니다. 즉 사람들이 어디서든지 사용할 수 있는 기술을 만드는 거죠.

from "조엘이 엄선한 소프트웨어 블로그 29선" 중 "6. 환상 속에 고립된 소셜 소프트웨어" 중에서

조엘 온 소프트웨어를 출간한 조엘 스폴스키가 자신의 블로그 말고, 다른사람들이 쓴 유용한 블로그 글들을 엮어서 낸 책이다. 몇몇 건은 공개 문서가 아니기도 하고, 현재는 찾을 수 없는 링크도 있지만, 대부분 온라인으로 아직까지 조회가 가능했다. 재미있는 글도 있고, 아직 유용한 글도 있어서 읽어볼만 했다.

책에 수록된 글은 아래와 같다.

  1. 스타일은 언어 요소다(Style is Substance) - 켄 아놀드
  2. 멍청한 사용자 인터페이스 부문 최우수상, 윈도우 검색(Award for the Silliest User Interface: Windows Search) - 레온 뱀브릭
  3. 프로그래머 아웃소싱의 단점(The Pitfalls of Outsourcing Programmers) - 마이클 빈
  4. 엑셀은 데이터베이스가 아니라구요! - 로리 블라이스
  5. ICSOC04 강연 한 토막 - 애덤 보스워드
  6. 환상 속에 고립된 소셜 소프트웨어(Autistic Social Software) - 다나 보이드
  7. 비정상적으로 행동하는 애플리케이션을 막지 않는 이유는?(Why not just block the apps that rely on undocumented behavior?) - 레이먼드 첸
  8. 환상적인 사용자 인터페이스(Kicking the Llama) - 케빈 쳉, 톰 치
  9. 캐나다 인터넷을 WIPO의 손아귀에서 구출하라(Save Canada's Internet from WIPO) - 코리 닥터로우
  10. EA: 휴먼 스토리 - ea_spouse
  11. 타입검사와 테스트 - 브루스 에켈
  12. 프로세싱(Processing Processing) - 폴 포드
  13. 위대한 해커(Great Hackers) - 폴 그레이엄
  14. 도스창을 날려 버린 주소창(The Location Field Is the New Command Line) - 존 그루버
  15. 스타벅스에서 2단계 커밋을 사용하지 않는 이유(Starbucks Does Not Use Two-Phase Commit) - 그레고르 호페
  16. 열정(Passion) - 론 제프리즈
  17. C++, 잊혀진 트로이의 목마(C++ - The Forgotten Trojan Horse) - 에릭 존슨
  18. 전구 하나 바꾸는 데 마이크로소프트 직원 몇 명이 필요할까?(How many Microsoft employees does it take to change a lightbulb?) - 에릭 립퍼드
  19. 엉망진창 꼬여버린 상황 돌파하기(What To Do When You're Screwed) - 마이클 "랜즈" 롭
  20. 래리의 소프트웨어공학 법칙 제2조: 테스터를 단순한 잣대로 평가하지 마십시오(Larry's rules of software engineering #2: Measuring testers by test metrics doesn't) - 래리 오스터만
  21. 팀 보상 제도 - 메리 포펜딕
  22. 맥 워드 6.0(Mac Word 6.0) - 릭 샤트
  23. 소셜 소프트웨어, 내부의 적을 경계하라! - 클레이 셔키
  24. 사용자로서의 집단 분석: 플레이밍을 방지하는 소셜 소프트웨어 설계(Group as User: Flaming and the Design of Social Software) - 애런 스워츠
  25. 간격 좁히기, 제1부(Closing the Gap, Part 1) - 에릭 싱크
  26. 간격 좁히기, 제2부(Closing the Gap, Part 2) - 에릭 싱크
  27. 직원 채용에 대한 제언(Hazards of Hiring) - 에릭 싱크
  28. 파워포인트 재구성(PowerPoint Remix) - 애런 스워츠
  29. (여우 캐릭터와 함께하는) 빠르고 쉬운 루비 강좌(A Quick (and Hopefully Painless) Ride Through Ruby (with Cartoon Foxes)) - 억세게 운 좋은 녀석



소프트웨어 블로그 베스트 29선

저자
조엘 스폴스키 지음
출판사
에이콘출판 | 2006-02-01 출간
카테고리
컴퓨터/IT
책소개
『조엘 온 소프트웨어-유쾌한 오프라인 블로그』의 저자 조엘 스폴...
가격비교 글쓴이 평점  


유명 블로거인 조엘 스폴스키의 블로그의 글을 엮어서 만들었던 책의 후속편이다. 전작처럼 블로그에 공개되어있는 글이라서 블로그에서 읽어도 되겠지만, 아무래도 책이 한국어로 잘 번역되어있기 때문에 책을 보는게 더 편한 것 같다.

36개의 글을 9개의 주제로 나누어 실어놓았는데, 인력관리부터 프로그래밍, 디자인, 프로젝트 관리, 사업에 관한 이야기까지 다루고 있다.

기억에 남는 것 몇가지를 적어보면,

인력/프로젝트 관리 :

  • 개발자를 다루는데 있어서 명령/통제 방법이나 금전적 보상은 별 도움이 되지 않으며, 결속력을 강화하여 일체감을 느끼게 하는 것이 동기 부여에 효과적이다.
  • 구현 문제는 해당 분야의 전문가/담당자가 결정하게 하는 것이 좋다.

고객 서비스 :

  • 모든 문제를 두가지(닥친문제 해결, 원인 분석 해결)로 해결하라.
  • 고객에게 먼지를 불어버리라는 식의 지시를 해보라
  • 고객을 팬으로 만들어라
  • 비난을 받아들여라
  • 불편한 문구를 기억하라
  • 꼭두각시 놀이를 연습하라
  • 욕심을 내지마라(포그크릭의 환불 정책 관련)

이 외에 큰 소프트웨어 회사(예를 들면 MS)에서 큰 프로젝트(예를 들면 Windows)를 진행하는 것이 왜 그렇게 어려운지에 대한 설명이나 포그버그즈에 포함되어있다는 일정 계획 기법인 Evidence-based Scheduling 소개, SNS와 같은 인터넷 커뮤니티 관리에 대한 색다른 생각도 흥미로웠다.

글이 작성된지 오래되었고, 한국어판이 출간된지도 시간이 꽤 흘렀지만, 아직 볼만한 책인 것 같다.



MORE JOEL ON SOFTWARE(조엘 온 소프트웨어를 넘어서)

저자
조엘 스폴스키 지음
출판사
지앤선 | 2009-10-23 출간
카테고리
컴퓨터/IT
책소개
소프트웨어를 창조하는 방법에 대한 특별한 생각을 엿보다!세계적인...
가격비교 글쓴이 평점  


'Etc' 카테고리의 다른 글

조엘이 엄선한 소프트웨어 블로그 베스트 29선  (0) 2013.06.16
루씬 한글분석기 기술 세미나 소식  (0) 2013.03.20
PHP Fest 2009  (0) 2009.09.24

"평생 개발자로 먹고 살 수 있다"는 부제를 가진 이 책은 정말 제목대로 유지보수하기 어렵게 코드를 작성하는 방법이 나와있다. 그렇다고 부제처럼 자기만 알아볼 수 있는 코드를 작성해서 평생 짤리지 않도록 하는 방법을 다뤘다기 보다는, 나쁜 예를 보여서 이렇게는 하지 말자고 반성하게 하는 거울과 같은 역할을 하는 책이다.

읽다보니 정말 별의별 상황이 다 있는데, 어찌보면 내가 겪어본 것도 있고, (의도적이 아니었더라도) 내가 하고 있어서 반성하게 하는 부분도 있었다. 몇가지를 옮겨보면 아래와 같다.

"언어의 규칙이 허용하는 범위 내에서 클래스, 생성자, 메소드, 멤버 변수, 파라미터, 지역 변수에 같은 이름을 사용하자. 이에 안주하지 말고 더 나아가서 {} 블록 내에서 이미 사용되고 있는 지역 변수명을 재사용할 수 있는지 고민하자."

"이유는 빼고 어떻게에 대해서만 문서화하라"

"피트, 미터, 통과 같은 측정 단위를 변수, 입력, 출력, 매개변수에 문서화는 절대 하지 않는다."

"에러나, 기기 크래쉬, OS 결함을 처리하는 코드는 절대 테스트 하지 않는다. OS가 반환하는 코드도 검사하지 않는다. OS가 반환하는 코드는 실행에 아무 도움이 되지 않으며 우리 테스트 시간만 오래 걸리게 한다. 게다가 우리 코드가 디스크 에러, 파일 읽기 에러, OS 크래쉬와 같은 모든 경우를 적절하게 처리하는지 어떻게 일일이 테스트 할 수 있겠는가? 도대체 왜 컴퓨터 시스템을 신뢰할 수 없는 것처럼 생각하고 교수대 같은 것이 제대로 동작하지 않는지 테스트해야 하는지 이해할 수가 없다. 최신 하드웨어에서는 에러가 발생하지 않는다."

"프로그램이 좀 느리다고? 고객에게 더 빠른 컴퓨터를 사라고 말하자. 성능 테스트를 수행했다면, 문제가 일어나는 지점을 찾았을 것이다. 아마 문제를 해결하려면 알고리즘을 변경해야 할 것이고 제품 전체를 완전히 다시 설계해야 하는 경우도 생길 수 있다."

"개발 도구에 포함된 라이브러리를 모른척해야 한다. 비주얼 C++을 사용한다면 MFC나 STL의 존재를 무시하고 문자열이나 배열을 손수 작정할 수 있다. 이렇게 하면서 자신도 모르게 포인터 기술이 좋아지고 동시에 코드를 확장하려는 시도를 좌절시킬 수 있다."

이 책은 무료 e-book으로 공개되어 다운로드도 가능하고, 웹사이트에서 기사 형식으로도 공개되어있다.

e-Book


O'Reilly에서 개최하는 웹 기술 컨퍼런스인 Fluent 2013이 미국 샌프란시스코에서 5월말에 열린다. 거기를 내가 갈 수 있는 것은 아니지만, 온라인으로 맛보기 컨퍼런스, 이른바 Fluent 2013 Preview를 하기에 잠도 안자고 들어봤는데, 꽤 들을만한 주제들이었다.

발표한 주제와 발표자들은 아래와 같다.

  • "this" in JavaScript: How It Really Works - Martha Girdler
  • Hardware Access and Device APIs with JavaScript & HTML5 - Wes Bos
  • Prototyping à la Node with Express – Pam Selle
  • Principles of AngularJS – Brad Green & Shyam Seshadri

Martha의 발표는 자바스크립트가 어렵게 느껴지는 사람에게 꼭 필요한 내용이었고, Wes의 Device API소개는 이런 것도 된다는 데모 위주의 발표였다. Pam의 발표는 node.js와 express를 사용하면 쉽게 프로토타입을 만들 수 있다는 그냥 뻔하게 느껴지는 발표여서 좀 실망했지만, 그래도 (발표의 의도와는 동떨어졌지만) JustinmindMixture.io라는 프로토타이핑 툴을 알게된 것은 소득이었다. 마지막 AngularJS 발표는 뭔가 문제가 있는지 진행 중에 슬라이드가 제대로 넘어가지 않아서 내용에 집중하기 어려웠고, 시간이 짧다보니 몇몇 특징들만 소개하는 것으로 끝났다. 발표 슬라이드는 O'Reilly에서 배포한 아래 링크에서 PDF로 다운로드 가능하다.

Device API는 발표 내용을 바탕으로 한번 시험해보면 재미있을 것 같고, AngularJS는 실제로 사용할만한지는 아직도 의문이긴 하지만, 제대로 살펴봐야겠다.

루씬 한글분석기 커뮤니티에서 기술 세미나를 개최한다. 이곳에서 만든 분석기는 예전부터 공개되고 있는데, Sourceforge.net에서 받을 수 있다.

세미나는 코엑스에서 4월 12일에 열리고, 아르고넷과 정보통신산업진흥원에서 후원한다. 현재 신청페이지에서 참가신청을 받고 있고, 참가 확인도 가능하다.

'Etc' 카테고리의 다른 글

More Joel on Software 조엘 온 소프트웨어를 넘어서  (0) 2013.06.16
PHP Fest 2009  (0) 2009.09.24
네이버의 오픈 소스 공개  (0) 2008.11.22

+ Recent posts