당연하게도, 유지해야할 문맥의 크기가 작으면 작을수록 우리는 더욱 유연해질 수 있다.
지금 그대의 편집기에 열려져 있는 파일의 개수가 몇개인지 확인해보라. 4개가 넘어가는가? 너무 많다. 2~3개 정도로 유지할 것을 추천한다.
한번에 한 Task만 처리할 수 있게 최소한의 파일만 열어놓도록 하자. 그렇지 않으면 이것도 해야하고 저것도 해야하고.. 자꾸 새로운 시각정보들이 여러분의 뇌에게 잦은 cs를 발생시켜 업무 효율이 떨어질 것이다. 하나의 Task가 끝났으면 Cmd-Shift-W로 열린 모든 파일을 닫아버리자.
요즘 컴퓨터는 무척 뛰어나서 초당 cs가 4,000번씩 발생하더라도 서버 로드가 0.3이 채 안된다. 그러나 당신의 뇌는 기껏해야 초당 100회도 견뎌내지 못한다 (근거는 없습니다. 죄송 -_-). 유지해야할 문맥을 최소한으로 줄이는 것이 상책이다.
사람이 컴퓨터보다 뛰어난 능력이 있다면 추상화 능력이다. 프로세싱 능력이 떨어지는 대신 최소한의 정보만을 가지고 어떤 의미를 도출하는 추상화 능력 말이다. 인간이 잘못된 추상화 과정을 많이 저지르긴 하지만 (편견, 오해 등등) 누구나 특정 수준 이상의 추상화 능력을 발휘하며 살아간다. 아마 인간의 프로세싱 속도가 떨어지는 것을 커버하기 위해 설계된 부분이 아닐까!
내가 생각하기에 인간이 돌리는 thread stack size는 별로 깊지 않은 듯 하다.
한동안 문맥변환 비용을 어떻게 줄여야 하나.. 고민에 고민을 거듭했던 적이 있다. 오랫동안 고민했음에도 불구하고 딱히 만족스런 결과를 얻지 못했다. 왜냐하면 문맥변환에는 빌어먹을 '의지력'이 필요하므로 자동화할 수 없고 결국 예측할 수도 없기 때문이다. 결국 유지해야하는 Context를 줄였다.
머리속에 유지해야하는 Context를 줄일 수 없다면?
데이터의 값을 저장하지 말고, 레퍼런스만 저장하면 된다. 그렇다고 레퍼런스 변수들을 문맥 클래스에 줄줄 선언해놓으면 문맥을 들여다 볼때마다 변수명이 보여서 그대의 정신을 마비시킬지도 모른다. 그러니, 적절히 Set이나 Map에 넣어놓도록 하자. 요즘 세상은 인덱싱 능력이 뛰어난 툴들이 너무나도 많다. 단, 도구들을 사용하기로 결심했다면 완전히 신뢰하도록 하자. 신뢰하지 않으면 peek/check 비용이 높아져서 결국 생산성이 떨어지기 때문이다.
끝.
Comments
4 thoughts shared
영록
파일이 몇 개 열려 있냐는 문제는 그 사람의 습관 문제가 아니라 얼마나 많은 파일을 동시에 봐야 되도록 설계가 되어 있냐는 설계 문제일 가능성이 크지 않을까. 기능 하나 추가하기 위해서 열 개의 파일을 고쳐야 하도록 설계가 되어 있다면 본인 의지와 상관 없이 열 개의 파일을 열어놓을 수 밖에. 그런 면에서 열려 있는 파일 개수를 설계 개선의 신호로 보는 것은 좋지만 가이드라인으로 보는 것은 다소 위험.
그리고, Big enough context의 중요성을 이야기하는 사람도 있는데, 이건 해당 문제를 해결하기 위해 필요한 모든 아이템이 워크스페이스에 올라와 있어야 한다는 것.
요컨대, 컨텍스트의 크기는 문제를 해결할 수 있을 만큼 충분히 커야 하지만 그 크기가 지나치게 크다면 설계 문제로 보고 개선하는 것이 바람직하다.. 정도?
@영록 기능 하나를 고치는데 10개의 파일을 고치도록 설계가 되어있다면 정말 위험하겠다. 설계 개선의 신호로 볼 수 있다는 점이 신선하다. 좋은 코멘트 감사.
나같은 경우는 한번에 하나의 기능만 딱 수정하는 경우가 많지 않거든. 이 기능 고치다보면 더 좋은 아이디어(많은 경우 실제로는 그렇지 않지만 -_-)가 떠올라서 저것도 좀 고쳐보고.. 복잡도를 높여서 위험도가 높이지긴 하는데 취향이라 어쩔 수 없더군. 그래서 결국 지금 당장 하고 있지 않는 파일들이 많이 열려 있는 경우가 많이 생겨.
어찌보면 설계가 잘못되어 생기는 일일 수도 있겠다. 한 파일에 여러 기능이 있다보니, 파일명이나 파일 내용이 보일 때마다 자꾸 다른 짓(?)이 하고 싶은 마음이 생기는 게 원인이거든. 나같은 경우는 기능 하나를 고치기 위해 10개의 파일을 고쳐야한다기보다, 1개의 파일에 10개의 기능이 있어서 주의력이 분산되는 게 더 치명적..
영록
@Jang-Ho Hwang 더 좋은 아이디어 때문에 그렇게 되는 거라면 본인 의지가 맞긴 하군-_-a 발산적 취향... 너도 MBTI 마지막 글자는 P일 테니 당연한 거겠지 ㅎㅎ
그런 경우에는 maskable interrupt라는 개념을 써보라고 하더군.
Continue Reading
Discover more thoughts and insights
매달 5일만 일하기
최대한 미루다 막판에 시작하는 습관을 어려서부터 꾸준히 유지하고 있다. 프로젝트 기간이 2주라면 사흘 정도 남았을 때부터 조금씩 불안이 찾아와 실제로 그 일을 하지는 않고 그 일과 관련된 다른 짓을 하는 자기기만을
Attention 관리 미션 1호 - Facebook apps
주의력을 한 곳으로 몰기의 첫번째 미션. 상단의 이미지는 인기있는 Facebook 애플리케이션인 Parking Wars 와 Mob Wars 에서의 내 상태를 2분마다 긁어 표시해주는 어플리케이션의
사람들은 픽션을 좋아한다.
마케터는 거짓말을 하지만, 마켓은 거짓말을 하지 않는다. 나는 사람들이 왜 그렇게 픽션을 좋아하는지 모르겠다. 그래서 20대후반이 되기 전까지 소설을 읽은 기억이 거의 없다. 좋아하는 친구들과 지내다보면 그들이