오늘 팀장님께 열심히 강의들었던 내용임... 조금은 각색해서... 다들 알다시피 프로그래밍을 할 때 이름이 중요하다. 한 눈에 알아보기 쉽고, 읽기 쉽고, 의도를 파악하기 쉽다. 뭐 대충 책에서 이런 내용들이 있고, 다들 알고 있다. 하지만 우리는 비영어권이기 때문에 늘 이름짓기를 힘들어한다. 오늘 한창 디버깅을 하고 있는데, 살짝 멘탈이 붕괴되는 상황에서, 다른 사람들이 마구 추가한 코드를 접했다. 사실 내가 추가한 것도 있겠지. 하지만 내 기억과는 먼 코드들이다. 왜 여기에 이런 코드들이 존재하는가. 팀장님이 이런 얘기를 해줬다. 자꾸 다른 사람들이 이 XXXManager 클래스에 이런저런 코드들을 넣는 이유는 이름이 Manager 이기 때문이다. 클래스 이름을 좀더 특화시켜서, Creator 라고 ..
아는 친구가 만든 프로그램에서 MFC 를 제거하고, x86에서 x64 로 전환하는 과정 중에서 생긴 버그였다. IOCP 에서 WSARecv 를 했는데, 실패하면서 에러코드를 살펴보니 10014 오류가 났다. 한글 번역으로는 '호출에 대한 포인터 인수를 사용하려는 동안 시스템에서 잘못된 포인터 주소를 감지했습니다.' 이고, msdn 에서는 lpbuffers 인자가 잘못되었다고 하고, 이래저래 검색해보면 인자의 생명 주기라든지, 다른 인자가 잘못되었느니라고 적혀있었다. 결론은 winsock2.h 를 include 하기 전에 #pragma pack (1) 코드가 있었다. 제거하니 잘된다. ㅠㅜ 아마 pragma pack 에 의해서 winsock2.h 에서 정의하는 구조체가 pack 되어버렸을 것이고, 그렇게 ..
윈도우에서 제공하는 소프트웨어 레이드1 구축하고 중요한 데이터를 넣어놓았는데 파일 할당 테이블이 갑자기 RAW 로 바뀌었다. testdrive 도 써봤는데 제대로 복구가 안되어서 결국 포기. 원래 하드가 꽤 오래되어서 2개를 새로 사서 다시 레이드1 구성해서 쓰게로 했다. 다행히 클라우드에 백업을 두기적으로 했기에 날아간건 약 일주일 분량의 사진 20장 정도. 그래도 뭔가 궁극의 레이드! 라고 생각했었는데 생각보다 쉽게 데이터가 깨져서 좀 멘붕이다 ㅠㅜ 역시 궁극은 클라우드 백업이다 -_-/
- Total
- Today
- Yesterday