엘키의 주절 주절

소소한 개발 이야기

단점 고치기

개요 이직 한지 대략 한달쯤 됐군요. 입사하고 나서 느낀 가장 아이러니 한 것은, 오픈이 얼마 남지 않은 프로젝트인데도, 검증이나 테스트가 의외로 안되어 있더라는 점이죠. 유닛 테스트 자체는 적지 않지만 그 커버리지가 높다고 하기 어려운 상황이고요. 전반적인 자동화를 통한 커버리지를 올리는 작업을 주로 하고 있습니다. 계측/측정에 대한 업무 위...

사고뭉치를 위한 디버깅 방법 03

이번 시간에는 예고한 대로 버그 재발 방지에 대해서 알아보겠습니다. 저를 포함한 대부분의 개발자들은 버그를 만듭니다. 인재들이 모였다는 MS의 IE 베타버전이 얼마나 엉망인지 아시죠? QA와 오류 보고 시스템 등을 통한 검수가 정식 버전을 안정성있게 만드는 것이지 MS가 만든 제품도 버그가 많습니다. 그 들이 극찬하는 IOS나 OSX요? 네 그렇게 ...

사고뭉치를 위한 디버깅 방법 02

지난 포스팅에서도 이야기 했다시피 일반적으로 버그에 대한 보고는 자신이 겪은 증상에 대한 보고 입니다. 아주 행복한 시나리오는 보고 받은 대로 시도하면 100% 재현 되는 버그입니다. 이런 종류의 버그는 너무나 해결하기 쉬워 “훗~ 어떻게 고쳐줄까?” 라고 고민하는 것만 집중하면 되지요. 하지만 대다수의 잡기 힘들었던 버그는 “그냥 뜬금 없...

사고뭉치를 위한 디버깅 방법 01

안녕하세요. 엘키라고 합니다. 이 블로그를 보시는 분들 다들 뛰어나고 다양한 경험을 많이 갖춘 분들이시겠지만, 제 경험담을 바탕으로 디버깅에 대해 알아보는 시간을 가져보고자 이렇게 나섰습니다. ^^ 우리는 모두 사고 뭉치입니다. 사람이란 실수할 수도 있다는 것을 전제로 이 글을 작성 하고자 마음 먹었죠. (정확성이 떨어지는 발로 하는 스포츠인 축구...

애플 신드롬과 MS에 대한 사설

“애플보다 MS가 세상을 바꾼 능력자”… 그 이유는? 나 위 기사와 역시 같은 생각이다. 내 지인들이라면 알겠지만 나는 MS가 만들어준 환경이 고마움을 절실히 느끼는 사람이다. 실제로 Visual Studio, Windows, Office 등 MS 제품군의 완성도면에서 굉장히 만족하는 편이고. 내가 늘 주장하는 바는 이렇다. ‘과연 다른 회사...

윈도우 환경에서의 C++ 프로그램 예외처리

윈도우 예외 처리에 대한 정리 개요 윈도우에서 사용가능한 예외 처리로는 C++ 예외 처리와, SEH (Structured Exception Handling) 이 있습니다. 일반적으로 SEH(Structured Exception Handling)이라고 말하면 Windows 자체적으로 지원하는 구조적 예외 처리를 의미합니다. (관련 키워드 : __try...

프로그래밍 개발시 좋은 습관

Open-Close 원칙 객체는 수정(modification)에는 닫혀있고(Close), 확장(extension)에는 열려있어야(Open) 한다. 중복을 제거하라 같은 기능을 하는 코드를 묶어, 중복을 제거하자는 원칙. 메소드 간소화 메소드는 두가지 일을 하게 만들지 말아라. 메소드의 이름에서 벗어나는 일을 하지 말라. ...

거짓 공유 (false sharing)

캐싱의 기본은 지역성에 근거하는데요, 이는 프로그래밍단의 최적화에서도 유명한 80-20법칙과도 일맥상통하는 이야기죠. 지역성(locality)은 아래 추정에 근거합니다. 지금 읽힌 데이터는 이후에도 자주 사용될 가능성이 높다. 지금 읽힌 데이터와 인접한 데이터는 이어서 사용될 가능성이 높다. 이는 코드 실행시 스택 처리를 통해 얻게 되는...

데이터베이스 이용시 주의 사항

서버 개발시에 DBMS를 사용하지 않는 것은 불가능에 가깝습니다.  특히나 트랜잭션을 C/C++ 레벨에서 구현하기란 보통 어려운게 아닙니다. DBMS에서는 시스템 단에서 지원해주기 때문에 손쉽게 트랜잭션을 사용 할 수 있죠. 데이터를 저장하고 불러 오는 것 역시 파일 시스템보다 DBMS가 훨씬 더 효율이 좋죠. 물론 그것도 잘 만들고, 잘 사용하고...

스티브 잡스의 수퍼 업무력 - 애플의 그리고 잡스의 성공 비결

요새 내 주변에는 모두가 입을 모아 한 기기를 찬양하는 상황이 펼쳐지고 있다. 바로 아이폰이다!  아이팟 터치도 혁신적인 기기였지만, 아이폰은 그 이상이다. 3G망을 이용한 무선 네트웍 기능은 언제 어디서나 원하는 정보를 이라는 컨셉에 매우 잘 부합한다. 과연 이 것을 노린 것일까, 요행일까? 아마도 ‘그’라면 노렸을 지도 모른단 생각이 든다. ...