최선을 다하겠습니다!

최선을 다해서 뭘 할건데? 어떻게 할건데?
다른 직업도 그럴 수 있겠지만 개발자인 나로서는 ‘최선을 다한다’는 말이 그닥 와닿지 않는다.

개발자가 최선을 다한다는 것은 뭘 어떻게 하겠다는 것일까? 열심히 검색하기? 열심히 생각하기? 열심히 야근하기? 뭔가를 열심히 한다고 해서 그렇게 효율이 좋을 것 같진 않다.

내가 생각하는 “개발자가 최선을 다한다는 것”은 적당한 선에서 만족하지 않는 것이다. 적당한 선에서 타협은 할 수 있겠지. 원래 생각하고 있던 건 아니고 오늘 “최선을 다하겠습니다”란 말에 대해 비판적인 생각을 하다가 그렇게 결정했다.

개발자들 중에는 원하는 아웃풋을 만들어 낸 시점이 바로 끝인 사람도 있고, 그 시점에서 한번 더 생각해보는 사람도 있다. “이 변수가 마음에 안들어” “이 루틴은 따로 뺄 수 있을 것 같아” “이 부분은 구조를 바꾸면 더 사용하기 쉽겠어” “이건 내가 사용자라면 불편할 것 같아 등. (여러 의미에서. 가독성이 될 수도 있고, 재활용성, 최적화, 아니면 그 언어의 철학에 맞게 코딩했는지 등) 당연한 말이지만 후자가 더 개발자에 어울리는 사람이다.

더 길게 생각해보면 다른 답이 나올 수도 있겠는데 여기서 끊어야겠다. 사실 얼마전에 Java로 작성된 코드를 구조변경 없이 Swift로 구현해달라고 해서 개발해준 적이 있었다. 그 때 너무 짜증나서 어쩔 수 없는 부분을 제외하고는 클래스명, 함수명까지 그대로 만들어주고 탈출한 적이 있었다. 물론 전~혀 Swifty하지 않게! 그런데 이런 환경에서도 짜증내지 않고 묵묵히 개발하면서 수정할 수 있는 부분이라도 수정하며 개발하는 것이 “최선을 다한다”는 말에 어울리는 것 같기도 하다. 아마 관리자들도 이런 개발자들을 더욱 좋아할 듯 하고.

하지만 나의 최선은 그렇게 참아내는 것이 아니라 즐기는 것이었으면 한다.

최근에 릴리즈 되고 있는 개발버전으로 플레이했더니 자꾸 데이터들이 변경되고 깨지는 것이, 어디서 오버플로우가 나는 것 같다.

오버플로우! 하면 64비트! 개발자 본능!


32비트 쓰면 문제가 안 생길 것 같은 개발자스러운 번뜩임으로 32비트 릴리즈를 찾았는데, 개발버전에는 없네? (32비트 사용자 버리냐!)

그래서 안정화 버전의 32비트를 받아서 플레이했더니 소리가 약 0.5~1초 정도 밀려서 난다.

직접 빌드해서 쓰려고 소스를 받아보니 프로젝트 설정에는 32비트가 없다.


그래서 결론은 이거다.

직접 빌드는 안되고, 마지막으로 빌드된 32 비트 버전을 쓴다!

마지막 32비트 릴리즈 : http://dl.dolphin-emu.org/builds/dolphin-master-4.0-1609-x86.7z


1분정도 사용해 본 결과 일단은 문제가 안 생기는 듯.

이미 아이템 문제가 발생한 세이브 파일도 다시 로드 후 저장하면 아이템이 제대로 돌아온다.

한번 연성이 풀린 아이템은 노말템 그대로...


============================

좀 더 해봤더니, 그래도 죽는다.



간단한 텍스트를 기반으로 Sequence Diagram 을 만들어낼 수 있다.

접속해보면 사용 방법을 바로 알 수 있음.


https://www.websequencediagrams.com/

부트캠프 지원을 실행하니 외장하드만 자꾸 나오고 USB가 인식이 되지 않는다. (iMac, 2012 Late)

물론 파인더에서는 둘 다 접근이 가능하다.

그래서 이것저것 방법을 찾아보다가 iMac 초기화까지 해버렸는데 그래도 똑같다.


그런데 불현듯 두 USB의 차이점이 생각났다.

외장하드는 아이맥에 바로 연결되어 있고, USB는 USB 허브에 물려 있었던 것.

외장하드 떼고, 거기에 바로 연결하니 인식이 잘되네?

난 이것 때문에 뭔 짓을 한겨...


이번엔 EFI가 어쩌고, GPT가 어쩌고 하면서 Windows 설치할 때 오류 뜨는데, 이거 해결하려고 또 어떤 삽질을 할지...

예전에 한과장님 '에라토스테네스의 체'를 설명할 때는 수학에 '체'가 무슨 말인가? 했었는데, 이 Animated GIF를 보고 한번에 이해됐다.


1부터 120 사이에 있는 소수를 구하는 방식인데, 소수인지 판별하는 부분이 아니라 이미 소수로 판정이 된 수의 배수를 걸러내는 방식이다.



샘플에 나눔고딕을 적용했는데, 실제로 배포해야 하는 것이 귀찮...

그래서 방법을 찾다가 심플하게 구현하는 방법이 있길래 알려드립니다.


구글웹폰트를 활용하는 방법이고요, 상업적인 용도로도 무료라고 하네요.


사용방법은 매우 간단합니다.

구글에서 작성해둔 css파일을 import 한 뒤에 폰트를 사용하면 끝입니다.


사용방법 : ex) css에서 p 태그에 폰트 설정하는 경우

@import url(http://fonts.googleapis.com/earlyaccess/nanumgothic.css);

@import url(http://fonts.googleapis.com/earlyaccess/nanumgothiccoding.css);


....

/* 나눔고딕 */

p { font-family:'Nanum Gothic'; }

...

/* 나눔고딕코딩 */

p { font-family:'Nanum Gothic Coding'; }


해당 CSS 링크로 가 보면 실제 코드를 볼 수 있습니다.

어쨌든 로딩시간이 있다는 웹폰트의 단점은 그대로.


구글웹폰트 : http://www.google.com/fonts/earlyaccess

위 링크에서 Nanum을 검색하면 사용방법과 지원하는 폰트를 확인할 수 있으니 참고하세요.


몇년전에 Doxygen 주석으로 PDF를 생성하려다 포기했었는데, 월요일에 도전했다가 우연찮게 성공했습니다. ^^;


현재 Doxygen 주석은 다 작성되어 있고, html API 문서를 생성할 수 있는 상태라고 생각하고 그 이후부터 설명하겠습니다.

모르면 이건 검색해보면 자료가 많아요 ^^;


일단 필요한 건 다음과 같습니다.

1. kotexlive2012-full-20130309.exe (http://faq.ktug.org/faq/KoTeXLive)

2. Ghostscript 9.07 for Windows (http://www.ghostscript.com/download/gsdnld.html)


그리고 GhostScript 명령어를 콘솔에서 찾을 수 있도록 환경변수의 Path에 등록해줍니다.

- C:\Program Files\gs\gs9.07\bin


Doxywizard를 실행하여 Wizard 탭의 Output에서 LaTex를 체크합니다. 그 아래 세부 옵션은 취향대로 선택하세요.

 - 사용하기에는 링크 기능이 있는 첫번째가 편하지만 링크때문에 컴퓨터로 보면 좀 지저분합니다. 편하기로 따지자면 html이 훨씬 좋으니 전 2번째를 추천합니다.


사용이 더 편리하고 이쁜 HTML을 놔두고 굳이 PDF를 만드는 이유는 외부 배포를 위해서입니다. 그런데 수정해야 할 점이나 버그 목록, 이런 것들을 꼭 추가해야 할 필요는 없겠죠.

Expert 탭의 Build에서 다음 4가지의 체크를 해제합니다.

GENERATE_DEPRECATEDLIST 같은 경우는 필요하다고 생각하지만 번역이 마음에 안 들어서 제외했습니다.


제가 해결한 부분이 바로 이 옵션인데요, 항상 make 할 때 오류가 발생했었는데 다음의 옵션을 설정한 후 오류가 발생하지 않게 되었습니다.

뭐... LaTex에 batchmode 옵션을 추가해준다는 것 같네요. 설명에 if errors occur 보고 혹시? 하는 마음에 체크 해봤는데 되더라구요 ^^;


그 다음 Doxygen을 실행하면 출력 디렉토리에 latex가 생기는데요, 여기서 refman.tex 파일을 텍스트 편집기로 열어서 다음 부분을 수정합니다.

 - \usepackage{hfont} => \usepackage{kotex}

수정이 끝났으면 저장하고, make.bat 파일을 실행하면 refman.pdf 파일이 생성됩니다.


제 개인적인 생각으로는 html이 훨~씬 더 좋으네요.

가끔 무조건 PDF 형식으로 만들어달라고 요구하는 업체가 있어서... 이럴땐 유용할 거 같습니다.


경고 : 레지스트리 조작에는 백업이 필수입니다! 다음 사례를 참고

 1. 오늘 TabProcGrowth를 삭제할 경우 IE가 시작과 동시에 죽는 현상이 발견되었다.

 2. SysInternals의 ProcMon.exe 로 TabProcGrowth 레지스트리를 확인해보니 IE가 다음 2곳의 레지스트리에도 접근하는 것을 확인하였다.

  2.1. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main

  2.2. HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main

 3. 위의 레지스트리도 삭제한 후에 정상동작을 확인했다.

 4. 위의 레지스트리 값이 있으면 삭제하도록 수정된 레지스트리 파일과, IE가 안 뜰 경우를 대비해 TabProcGrowth를 0으로 설정하는 레지스트리를 추가했다.


요즘 기술지원을 하다보니, ActiveX가 정상동작하지 않는다는 연락을 많이 받는다.

계속 설치해도 또 설치하라고 뜨는 현상이 대부분.

원인이야 여러가지 있겠지만, 결과적으로 IE가 64비트로 실행되기 때문이다.


Internet Explorer 9

이 경우는 먼저 IE 바로가기의 경로를 먼저 확인해봐야 한다.

IE 바로가기의 속성에서 "대상"이 "C:\Program Files\Internet Explorer\iexplore.exe" 로 되어 있으면 "C:\Program Files (x86)\Internet Explorer\iexplore.exe" 으로 수정하여 32비트 IE를 실행하도록 한다.

이것은 64비트 윈도우에서 IE9를 사용할 경우에만 적용된다.


Internet Explorer 9 & 10

또 한가지는 LCIE(Loosely Coupled Internet Explorer)가 제대로 동작하지 않아서 발생하는 경우다.

Windows 8 사용자라면 90% 이상은 이 문제일 것이라고 생각한다.


LCIE와 관련된 값은 여러가지가 있지만, 내가 지원했던 사용자는 다 TabProcGrowth 레지스트리 문제였다.


1. 다음 레지스트리에 TabProcGrowth가 있으면 삭제한다. (어려우면 첨부된 LCIE 활성화 레지스트리 파일 사용)

 - HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

 - HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main


2. 만약 IE가 실행되지 않을 경우, 다음의 위치도 확인하여 TabProcGrowth가 있으면 삭제한다. (2013년 06월 03일 추가)

 - HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main

 - HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main


3. 그래도 안되면 포기하고 LCIE 비활성화 레지스트리 파일을 사용하여 TabProcGrowth를 설정한다. (원복은 아니지만 비슷한 개념)


LCIE 활성화 레지스트리

RemoveTabProcGrowth.reg


LCIE 비활성화 레지스트리 (LCIE 활성화 후 IE가 동작하지 않으면 원복을 위해 사용)

ResetTabProcGrowth.reg


안랩에서 배포하는 프로그램- 추천

안랩에서도 IE 64비트 실행을 방지하는 프로그램을 내놨네요. 삼성카드에서 배포하는 것을 보고 가져왔습니다.

아무리 수정해도 악성 툴바들이 매번 원복시키는 경우가 골치 아팠는데, 안랩에서 배포하는 것이니 이런 것에 대한 처리가 잘 되어 있겠죠?

IE가 64비트로 실행되는 경우 정리 (참고한 사이트)



기본 내용 참고 사이트

 - 2가지 모드의 Internet Explorer 10 과 ActiveX

 - 64비트 윈도우에서 Internet Explorer 10 이 항상 64비트로만 실행된다면?

 - Internet Explorer 10 32비트 실행

 - IE10 자동 업데이트와 64비트 ActiveX 호환성 문제


이것을 시도하게 된 배경

2012 아이맥을 퓨전드라이브 구성으로 구매했다. (아이맥 27인치, i7, 680MX, 16G, 1TB Fusion Drive)


게임 할 때를 대비해서 부트캠프로 윈도우를 설치했는데...

퓨전드라이브에서는 일반 하드디스크의 제일 느린 부분을 부트캠프 영역으로 잡아주는거다. ㅠ_ㅠ

(하드디스크는 디스크 안쪽의 데이터일수록 속도가 많이 느려진다. 원의 둘레 구하는 공식 2파이R을 생각해보자.)

로딩 속도 대박 느림.


그래서 예전 컴퓨터에서 사용하던 [삼성 SSD 830]에 윈도우를 설치하고 외장하드로 부팅했더니 아이맥에서 블루스크린을 띄웠다.

그냥은 안되는가보다.


그러던 중에 어제 윈도우8에서 정식으로 [윈도우투고]란 것을 지원한다는 정보를 입수했다.

[윈도우투고]는 윈도우 설치 이미지를 외장하드에 그대로 설치하고, 외장하드로 부팅하여 메인 OS로 사용하는 시스템이다.

USB 3.0 대중화로 외장하드의 속도를 케이블이 지원해줄 수 있게 되어서 가능해진 시스템인것 같다.


일반적으로 설치하는 윈도우와 달리, 각 컴퓨터에 따라서 다른 드라이버를 설치 및 관리한다고 한다.

추가 : [윈도우투고]로 설치할 경우, 앱스토어는 기본적으로 이용할 수 없다.

앱스토어를 사용하려면 다음의 작업이 필요하다.

실행 (Windows + R) -> gpedit.msc -> 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> 스토어

 : 스토어에서 Windows To Go 작업 영역에 앱을 설치하도록 허용 을 사용으로 변경


[윈도우투고] 로 윈도우 설치하기

http://cappleblog.co.kr/325 참고 (직접 작성하려다가 귀찮아서 포기. 참고했던 글이 훨 낫다.)

다만, 예전에 싼 가격에 배포된 Windows 8 업그레이드 버전에는 install.wim이 없는 것 같다.


아이맥 - USB 3.0 SSD 외장하드 [윈도우투고]의 성능


아이맥 - USB 3.0 SSD 외장하드 [윈도우투고]의 성능 - 새로텍 HD-10U3 으로 변경후


SATA 6G와 UASP를 지원한다는 새로텍 HD-10U3으로 변경 후 시스템 성능이다.

하드 디스크 성능이 확 올라갔다.

단... 이 제품은 10분간 사용하지 않을 경우, 강제로 Sleep 모드로 들어간다.

이로 인해서 윈도우투고 에서는 절전모드 들어갔다 나오면 항상 오류가 발생하므로, 절전모드는 포기해야 한다.

새로텍에서 이 강제 Sleep 기능은 뺄 생각이 없다고 함. 그래서 엄청 후회하는 중...

나중에 절전모드 비활성화 지원하는 제품으로 살 껄 ㅠ_ㅠ


덧. 현재는 새로텍에서 HDD 절전모드를 지원하지 않는 펌웨어를 따로 내놨다.

 (http://www.sarotech.com/support/down.html?tb=zbbs_down_firmware&sw=v&rowid=232)

HDD에 사용하지 말고, 외장 SSD에 [윈도우투고]를 이용하여 윈도우를 설치했을 때만 사용하도록 하자.


결론

1. 퓨전드라이브에 부트캠프를 설치하는 것보다 훨씬 좋은 하드디스크 성능.

2. USB 3.0 대신 썬더볼트를 사용한다면 하드디스크 성능이 더 좋아질 것으로 예상됨. 다만 돈이 아까울 뿐... (어댑터 약 15만원, 케이블 약 5만원)

3. 썬더볼트만큼은 참아야 하는데...


아이맥을 받은지는 꽤 되었는데, 귀찮아서 안 올리다가 이제야 올립니다.


아이맥은 이런 상자에 들어서 배달되는데요...

손잡이가 없어서 잡을 곳이 없어요~

이걸 대각선으로 잡고 계단을 올라오느라 근육이 놀람 ㅋㅋ


노란 박스를 까보면 실제 아이맥 박스가 들어있는데요, 배경의 책상이나 냉장고와 비교해보시면 그 크기를 아실 듯...


박스가 특이하게 앞으로 꺼내는 방식으로 되어 있습니다.


앞으로 조금 꺼내서 스티로폼이랑 종이를 제거.


아이맥 뒷면.


그리고 앞면.


메모리는 기본으로 8G(4G x 4G)가 부착되어 있고, 27인치 아이맥은 직접 메모리를 확장할 수 있습니다.

위의 하이닉스 메모리가 아이맥에 기본으로 장착되어 있는 메모리고, 아래 삼성 메모리가 다나와에서 구매한 메모리입니다.

처음 하이닉스 메모리가 1,3 슬롯에 꽂혀 있길래 2,4 슬롯에 삼성 메모리를 꽂았더니 컴퓨터가 비명을 지르더라구요...

하이닉스 메모리를 1,2 슬롯. 삼성 메모리를 3,4에 꽂아서 부팅에 성공했습니다.


맥을 이렇게 눕혀서 전원선 입력 부분에 있는 하얀색 버튼을 누르면 메모리 뒤판이 분리되는데요.

앞에 스크래치 날까봐 앞쪽 비닐은 벗기지 않은 상태에서 눕힙니다.


뒤판을 보면 메모리 꽂는 방법이 나오네요.

양 옆을 들어서 메모리 넣고 다시 내리면 끝입니다.


전체적으로 얇은 인상을 주기 위한 아이맥 공식(?) 각도에서 촬영. 

볼록한 부분이 안 보이도록 하는 것이 중요!


물론 뒷부분 중앙이 약간 볼록하긴 하지만, 전체적으로 이쁘게 잘 빠졌습니다.


불록한 부분이 잘 드러나는 각도에서 촬영.


키보드와 마우스가 안 보여 잠깐 패닉에 빠졌었는데, 위쪽 스티로폼에 들어 있었네요.

디자인은 캘리포니아에 있는 애플에서, 조립은 중국에서 싼값에. 미국인들에겐 불편한 진실.


전에 사용하던 맥북에서 모든 데이터를 아이맥으로 전송(마이그레이션)하는 것으로 모든 설정은 끝입니다.

근데 이 과정이 몇시간을 잡아먹네요.

기존 맥 사용자가 아니라면 바로 시작~


디자인과 성능 모두 대만족입니다. ^^

아이맥을 오래 기다렸었지만 디자인까지 바꿔서 나와주다니 감사 ㅋㅋ

+ Recent posts