1 / 8

2007 기년회

2007 기년회. xeraph yang@xeraph.com. 교훈. 남을 위한 프로그래밍도 중요하지만 , 나를 위한 프로그래밍 도 중요하다 ! CC 인증 베이스라인 문서 자동 생성기 100 줄도 안 되는 스크립트가 231 만원 짜리 (7 명 x 11 만원 x 3 일 ) 1000 개가 넘는 소스 파일의 버전 관리 이력 평균 근로일 수 278 일 잡고 , 연봉 평균 3000 만 잡으면 하루 11 만원 7 명의 개발자가 초기 베이스라인 문서 작업으로 3 일 정도 소요

Download Presentation

2007 기년회

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2007 기년회 xeraph yang@xeraph.com

  2. 교훈 • 남을 위한 프로그래밍도 중요하지만,나를 위한 프로그래밍도 중요하다! • CC 인증 베이스라인 문서 자동 생성기 • 100줄도 안 되는 스크립트가 231만원 짜리 (7명 x 11만원 x 3일) • 1000 개가 넘는 소스 파일의 버전 관리 이력 • 평균 근로일 수 278일 잡고, 연봉 평균 3000만 잡으면 하루 11만원 • 7명의 개발자가 초기 베이스라인 문서 작업으로 3일 정도 소요 • 개발자는 노가다 하지 않아서 좋고, 인증 담당자는 오류 없는 문서를 받아서 좋고~ • 수상쩍은 두더지 • 방화벽 정책 상 특정 서버에서만 접속 가능 • 원격 데스크탑 접속 수 제한으로 여러 명이 작업하기 매우 불편한 상황 • 간단한 포워드 프록시 프로그램을 작성하여 해결

  3. 깨달음 1 • STOP the Line! • 로그인이 30초 이상 걸리는 상황인데 바쁘기도 하고 아무도 신경 안 씀 • 가져올 데이터가 많으니 부하가 걸려서 원래 느릴 수 밖에 없나보다. • 쿼리 프로파일링해서 특정 쿼리가 인덱스 안 타는 것을 발견하고 튜닝 • 3000배 성능 개선 (0.01초 내 응답) • 이상 징후를 보면 끝까지 추적해서 원인을 밝혀내고 정상화 할 것! • 같은 문제가 다른 곳에도 존재할 수 있다. • 코드 스스로 자신을 드러내도록 만들기 • 메뉴 컨트롤 코드가 어떻게 동작하는지 알아보기 힘든 상황 • 단계적 리팩토링 • Instance Variable 참조를 모두 매개변수로 뽑아내고, • 각 메소드가 최소한의 정보만 요구하도록 리팩토링 • 메뉴 목록과 활성화 된 메뉴 식별자만 필요한 것이 분명하게 드러남

  4. 깨달음 2 • 계층 단위보다 기능 단위로 작업을 나누는 것이 좋다! • 매번 레이어 인터페이스를 어떻게 할지 논의하지 않아도 된다. • 하위 계층의 코드가 완성되지 않아서 기다리는 일이 없다. • 누가 아프거나 휴가 가더라도 쉽게 다른 사람이 대체할 수 있다. • 인수인계도 따로 며칠씩 걸려서 어렵게 할 필요가 없다. • 너무 의사소통이 줄어드는 문제는 10분 회의로 막을 수 있다. • 절차보다 표현이 문제의 답을 더 잘 드러낸다! • Diff 알고리즘은 벡터 그래프 한 장 보면 직관적으로 이해할 수 있다. • 브랜치 지옥 • 일관된 브랜치 정책이 없으면 나중에 수습 불가능한 사태가 온다. • 브랜치에서 개발하더라도 빨리 Trunk로 돌아오는 것이 편하다. • 코드 브랜치를 낸다면 테스트 데이터베이스도 브랜치를 낼 것.

  5. 성공의 경험 • 완결된 닷넷 개발 사이클 • Trac : 개발 문서 공동 작성 및 이슈 추적 • Subversion : 코드 및 쿼리 버전 관리 • NUnit : 유닛 테스트 • CruiseControl.net : 자동 빌드, 테스트 실행, 사이트 배포 • 강력한 프레임워크와 라이브러리 도입 • WCF • NHibernate • ASP.NET AJAX

  6. 통찰 • 파인만 학습법의 응용 • 어떻게? • 몇 가지 문제를 늘 머릿 속에 지니고 다닌다. • 현재 내 수준에서 생각해 낼 수 있는 모든 풀이를 찾는다. • 새로운 것을 배울 때마다 문제에 적용시켜본다. • 실제 사례 • The Goal과 Lean Software Development • 제조업의 아이디어를 소프트웨어 개발 현장으로! • Bloom Filter를 이용한 이벤트 연관 • GPU를 이용한 패턴 매칭 • 검색 엔진 기술의 접목

  7. 학습 주제 • Architecture • 4 + 1 View Model • Very Large System Architecture Issues • Microsoft Cluster Server • Language • Erlang • Algorithm • Bloom Filter • O(ND) Diff Algorithm • Statistical Spam Filtering • Efficient Computation of Frequent and Top-k Elements in Data Streams • Foundation of Information Retrieval

  8. 2008년은? • Security 2.0 with Open Security! • 참여와 공유의 오픈소스 보안 플랫폼 구현 • http://opensecurity.kr

More Related