정리는 비움으로, 그리고 마음부터

마음이 붕. 몸은 여기 있는데, 어디로 가고 있는지조차 모를 정도로 격랑(激浪)에 떠밀려 가는 것처럼. 조각난 지식들은 어딘가에 있겠지만, 약에 쓰려고 하면 개똥도 찾을 수 없는 것 처럼 내 단편의 끄적임을 찾기 힘들 때마다 드는 생각이 있다. 이걸 전부 모아뒀다면. 다짐은 용오름처럼 솟구치지만 이내 잠잠한 바다 속으로 꺼져버린다. 정리할 시간이 없진 않았을 텐데, 하면서. 정리와 분류는 결국 데이터를 다루는 사람, 데이터 소프트웨어를 만드는 개발자 둘 모두에게 있어 경쟁력이자 기본이라고 생각한다. 어떻게 효율적으로 정리를 할 것인지 매번 고민한다.

샷건 웨딩 (Shotgun Wedding)

행렬 미분학 (differential matrix calculus) 에 대한 문서를 읽다가 이런 글귀를 발견했다. you need differential matrix calculus, the shotgun wedding of linear algebra and multivariate calculus. 여러분에겐, 선형 대수와 다변수 미적분의 샷건 웨딩을 치른 행렬 미분이 필요할 겁니다. 진도를 나가야 되는데, 돌연 ‘샷건 웨딩이 뭐지’ 같은 쓸데없는 것에 꽂혀서 조금 알아봤다. ‘원치 않는 상황으로 인한 결혼’ 이라고만 나와 있는데, 그렇다면 샷건은 누가 장전하고 있길래 저런 말이 붙은 걸까?

조직 철학과 고객의 요구사항

회사가 고객에게 제공해야 할 것을 개념적으로 정의할 때 제품의 철학이라는 말을 사용한다. 제품의 시그니처이자 조직 내부를 움직이는 시금석이 되는데, 이걸 등한시하면 발생하는 문제에 대해 이야기하려고 한다. 철학이라면 어떤 것을 말하는 걸까. ‘탐색 속도가 빨라야 한다, 로그인 없이도 정보 제공이 되어야 한다, 고객의 소리에 즉각적으로 귀를 기울인다’ 같은 개념이 철학이지, ‘탐색 속도의 TPS 목표치, 로그인 폼의 형태, 고객이 원하는 것을 나열하는 것’ 자체로 철학이라고 하지 않는다. 이건 요구사항이지, 철학이 아니다. 그런데 후술한 구체적인 것들이 실제로 중요하기 때문에 (특히 고객이 원하는 것) 철학을 도외시하게 된다.

메타인지 – 적을 알기 전에 나를 알자

「완벽한 공부법」 과 「일취월장」 두 책에서 언급되는 ‘메타인지’ 라는 개념이 있다. ‘자신의 생각에 대해 판단하는 능력’ 이라는 것인데, 집단지성의 보고 나무위키에서는 다음과 같이 쪼개놓았다. 선언 지식 – 자신이 학습하는 부분에 대해서 얼마만큼의 지식과 능력을 가지고 있는지 아는 것. 절차 지식 – 어떤 일을 하는 데 얼마만큼의 노력과 시간이 들어갈 지 아는 것. 전략 지식 – 지식을 습득 할 때 어떤 방법을 선택해야 할지 아는 것. 사실 우등생은 다른 학생들보다 기억력이나 연산력이 월등히 좋거나 하진 않지만, 이 ‘메타인지’ 능력에서 월등한 차이를 보인다고 한다.

먼저 다가가 도와주기

맡은 일을 하려면 쭉쭉 할 수 있을 것 같은데, 그럴 의지가 텅 비어버린 것 같다. 이 의지라는 것은 커피나 술 같은 것으로 긴급 보충이 가능하겠지만 그러기도 싫다. 그냥, 삼일절과 토요일 사이의 한가로운 근무일을 몇 가지 단상으로 때우다 보면 고것이 조금 고여있지 않을까? 그걸로 다시 일을 재개하겠노라 다짐하면서 블로그에 글을 하나 더 얹어 본다. 어떻게 살 것인가? 라는 주제에 대해 이야기한 적이 있는데, 주변 사람들에게 긍정적인 영향을 줄 수 있는 사람이 되고 싶구나 라고 문득 생각난 적이 있다.

Powerpoint 에서 방향키 이동이 너무 느릴 때

방향키 이동이 너무 느리다기 보다는, 방향키 한 번 누를 때마다 개체가 1픽셀씩 이동하는 것 처럼 답답한 상황일 때 해결 방법이다. 보기 탭으로 표시 항목에서 ‘확장 아이콘'이 아주 작게 보인다. ‘눈금 및 안내선’ 이란 제목의 창이 뜨며, 여기서 ‘개체를 눈금에 맞춰 이동’ 을 클릭한다. 끝이다. 참고로 개체 이동 간격을 제어하려면 (3) 번에서 눈금 간격을 조정하면 된다!

gdb commands 이용하기

gdb/ddd 에서 commands 를 사용하면 간편하게 breakpoint 의 상태를 출력할 수 있다. 물론 다양하게 응용이 가능하겠지만, 매뉴얼에서 제시한 케이스가 굉장히 편해서 따로 정리한다. 참고 : 매뉴얼 Breakpoint 상황을 출력하기 위 코드에서 if 문에 breakpoint 를 걸고, 할당받은 시작 주소와 그 크기를 보고자 한다. 한두번 발생하는 거라면 breakpoint 를 걸어 둔 다음 print 나 graph display (ddd 전용) 으로 띄워서 관찰하면 된다. 그런데 이게 100번 200번이면 하염없이 엔터를 치게 된다. 이럴 때 다음과 같이 입력한다.

Intel VTune Memory Bandwidth 분석하기

Intel VTune 으로 Memory Bandwidth 를 분석하려면, 분석할 수 있는 커널 드라이버를 로딩시켜야 한다. (참고로 메모리 분석은 리눅스에서만 가능하다.) 해당 작업을 하지 않고 ‘General Exploration > Analyze memory bandwidth’ 를 체크하면 엄한 경고창이 반길 것이다. 이 문서를 참고해도 좋지만, VTune 이 설치된 경로에서 sepdk/src/README.txt 를 보는 게 더 쉽다. 이 내용을 요약하면, 커널 환경변수를 체크한다. 프로파일링이 가능하고 모듈 로딩이 가능해야 한다. CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_PROFILING=y 커널 드라이버를 컴파일시킬 헤더파일이 필요하다.

Office 2016 커서 애니메이션 끄기

Office 2016 부터인지 모르겠지만, 커서가 부드럽게 움직이는 애니메이션이 추가되었다. 실제 입력 속도는 같을지 모르겠는데, 문서 작업을 하고 있자니 조금 답답한 느낌이 들었다. 조금 느리게 입력되는 느낌? 그래서 이걸 끌 수 있는 방법을 두 가지 찾았는데, 하나는 레지스트리를 수정하는 것이라 귀찮았다. 다른 하나는 그 것보단 간단하다. 아래 스크린샷 순서대로 따라가 체크를 해제하면 된다. 제어판 > 시스템으로 들어간 다음, 고급 시스템 설정으로 들어간다. 고급 탭에서, 성능 항목에 ‘설정…’ 을 클릭한다. ‘시각 효과’ 탭에서, 창의 제어 및 요소에 애니메이션 효과 추가 항목의 체크를 해제한다.

Java Web Application 입문 (1) 준비운동

Java? 전통의 APM, Node.js 모두 한 걸음 정도는 자신있게 뗄 수 있는 (?) 수준이라고 생각하지만, 갑작스런 Java Web Application 도전이라니. 바깥 세상(?) 에선 아직도 Java 개발자를 찾는 것이 현실이다. 이제 그것을 대비하는 차원이다. Java 하나만 가지고 대부분의 어플리케이션 개발에 비빌 수 있기 때문이기도 하다. (개인적으로, 이런 대중성이 Java 개발자의 가치를 떨어뜨린다고 전혀 생각하지 않는다. Java 개발자는 많지만, 좋은 Java 개발자를 찾는 것은 전혀 다른 문제라고 생각하니까.) 입문서 구입 단순히 ‘Spring 기반으로 웹 어플리케이션을 만들어요’ 라는 말만 듣고 Spring 입문서!