본문 바로가기

분류 전체보기

[코딩호러] 삭제의 기쁨 [1][2]에서는 '삭제의 기쁨(The Joy of Deleting)'이란 제목으로 글을 썼다.기쁨까진 모르겠으나, 삭제해야 하는 코드가 있다는 의견에는 전적으로 공감한다.코딩 호러에서도 [3]에서 퍼온 내용으로 아래와 같다. (현재 [3]의 웹사이트는 열리지 않는다, 2014/03/24)더 이상 필요하지 않은 코드가 있다면 그것이 실행되지 않게 만드는 대신 완전히 삭제해야 하는 뚜렷한 이유가 하나 있다.잡음과 불확실성을 제거해야 한다는 것이 그것이다. 개발자가 가질 수 있는 최악의 적은 바로 코드 안에 기거하는 잡음과 불확실성이다.그들은 개발자가 나중에 효율적으로 작업하는 것을 방해하기 때문이다.한덩어리의 코드를 실행되지 않게 만들어두면 불확실성이 야기된다. 그것은 다른 개발자들의 마음에 다음과 같은 .. 더보기
코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기 코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기저자제프 앳우드 지음출판사위키북스 | 2013-11-28 출간카테고리컴퓨터/IT책소개책 소개 코딩 호러 블로그 운영자이자 스택 오버플로우의 공동 창...글쓴이 평점 제프 앳우드는 그 유명한 '스택오버플로우'의 창립자다. 조엘 스폴스키와 함께...조엘의 책을 좋아하듯 이 사람의 책도 꾸준히 찾아 읽을 생각이다.내가 이런 책을 좋아하는 이유가 아래와 같이 이 책의 '저자 서문'에도 나와 있다.소프트웨어 개발의 기술적인 측면은 코드를 학습하는 것만으로는 충족되지 않는다.소프트웨어의 배후에 존재하는 사람을 함께 연구해야 한다. 더보기
[코딩 호러] 보이드의 반복법칙 보이드의 반복 법칙이란 '반복의 속도가 반복의 질보다 우선한다'라는 내용이다.(Boyd's Law of Iteration: speed of iteration beats quality of iteration) [1]에서는 전투기를 예로들어 설명하고 있지만, 이것이 모든 분야에 적용될 수 있다.전투기 조종사이자 항공시 설계사인 '보이드'는 미그15기와 F-86 을 비교하면 미그15기가 더 나은 전투기라 생각했다.전투기는 기동성이 중요한데, 미그15기가 더 나은 기동성을 갖추고 있기 때문이다.여기까지가 소프트웨어 설계자의 입장과 비슷하다.그러나 정작 사용자인 전투기 조종사는 오히려 F-86을 더 선호했다. 왜냐하면 미그15기와 싸우면 F-86이 십중팔구 이기니까.그래서 보이드가 원인을 분석해 보니,미그15기의.. 더보기
[펌] 구글 개발 문화 구글 개발 문화(개인적으로 공감하는 바가 많아서 퍼옴) 코드 리뷰커버리지가 낮으면 커밋할 수도 없다.리뷰에서 팀원간에 의견 충돌 발생시에 매니저가 결정내린다.유닛 테스트가 충분하지 않은 경우 커밋이 불가능.Technical Dept - 꼼수를 쓰면 결국 더 큰 대가로 돌아오게 된다.코딩 스타일이 맞지 않아도 시스템적으로 커밋이 불가능.소스코드 관리구글 모든 제품의 소스코드를 저장소 딱 하나로 관리한다 (그렇게 하면 비효적이지 않냐고 물어보았으나 왜 안되냐고 반문 하셨음)소스코드 관리도구는 Perforce 라는 것을 사용한다. 그러나 개인적으로는 Git 을 사용하고 Git -> Perforce 변환하여 올린다.성능보다 코드의 읽기 쉬움이 중요하다. 코드를 최적화 하여 서버 비용을 100만원 아꼈다고 할지라.. 더보기
Netflix(넷플릭스)의 인사정책 Netflix(넷플릭스)의 인사정책 넷플릭스(Netflix)라는 회사를 아는가? 전통의 비디오 렌탈 회사인 블록버스터를 파산으로 이끈 장본인으로, 최초에 우편으로 최신의 비디오나 DVD를 주고받는 사업을 연간 단위 멤버십으로 시작해서, 현재는 VOD(Video on Demand) 사업과 셋탑박스, 그리고 각종 스마트 TV 사업에 빠지지 않는 단골 협업 파트너로 가장 무섭게 성장하고 있는 혁신기업의 대표주자이다. 이 회사에는 단순히 새롭게 변신한 사업영역에서만 배울 것이 있는 것이 아니다. 회사 자체와 이곳에서 일하는 사람들이 혁신의 DNA로 가득차 있으며, 이런 변화를 이상적이라고 생각했던 내용들을 실제로 과감하게 수행한 경영진들의 생각은 정말 많은 것을 생각하게 만드는 회사이다. 넷플릭스는 회사라는 곳.. 더보기
Mac OS X 은 어떻게 세상에 나왔나 Mac OS X 은 어떻게 세상에 나왔나 아래 링크는 애플 포럼에 게시된 글입니다. http://www.appleforum.com/mac-column/60389-mac-os-x%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%84%B8%EC%83%81%EC%97%90-%EB%82%98%EC%99%94%EB%82%98.html 맥 오에스 텐이 2001년 3월 24일 발표 되었다네요. 올해가 10주년 이네요.애플에서는 버그 투성이인 맥오에스를 버리고, 애플에서 내쫓은 스티브 잡스의 넥스트를 인수합니다.여기서 만든 넥스트스텝이라는 운영체제는 진보되고, 세련되고, 빠르고, 안정적이고, 유지보수도 쉽고,,,,소프트웨어 개발자들이 프로그램 작성하기도 쉽고,,, 한마디로 최고의 OS 였다네요.. 더보기
[inno setup] uninstall 할때 환경변수의 PATH에 세팅해놓은 값 삭제하기 [inno setup] uninstall 할때 환경변수의 PATH에 세팅해놓은 값 삭제하기 Inno Setup의 [Code] 란에 아래를 작성한다. 먼저, uninstall 할 경우 실행될 코드 작성CurUninstallStepChangedprocedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);begin // only run during actual uninstall if CurUninstallStep = usUninstall then begin DeletePath(); end;end; 그리고 아래 코드를 작성한다.아래 코드는 현재 PATH의 value(값)을 얻어와서(oldPath), ‘;’를 구분자로 각각의 path를 읽은 후에삭제하려.. 더보기
[inno setup] non-admin으로 설치파일 만들기 [inno setup] non-admin으로 설치파일 만들기 Creating a Non-Admin Installer with Inno SetupPosted August 4th, 2008 by kyleMost Windows applications require admin rights for installation, which explains why most users run as admin. It also explains why software viruses and spyware are so rampant and why Microsoft invented User Account Control in Windows Vista. Note that even applications that require admin .. 더보기
[inno setup] Visual C++ 2008 sp1 재배포 패키지 설치 확인하기 [inno setup] Visual C++ 2008 sp1 재배포 패키지 설치 확인하기 아래의 함수로 visual c++ 2008 sp1 redistributable package가 이미 설치되어 있는지 확인 할 수 있다.'{9A25302D-30C0-39D9-BD6F-21E6EC160475}' 은 visual c++ 2008 sp1의 GUID 이다. RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9A25302D-30C0-39D9-BD6F-21E6EC160475}') 아래는 Inno Setup Help의 내용입니다.Prototype:function RegKeyExists(const RootKey: .. 더보기
[inno setup] PATH 환경 변수 수정하기 [inno setup] PATH 환경 변수 수정하기 이노셋업에서 [Registry] 섹션에서 환경 변수를 설정할 수 있습니다. 이렇게...[Registry] Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: C:\foo" 그런데 위의 셋업은 단순히 Path에 'C:\foo'를 설정하는 것이라서,다른 환경 변수는 모두 사라지고 C:\foo만 남게 됩니다. 그래서 기존 데이터에 추가하고 싶으면 아래처럼,[Registry] Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\S.. 더보기