꼭 읽어 보아야 할…

인용:출처: 월간 마이크로소프트웨어 2001년 11월호

<개발자가 놓지지말아야할 책 베스트70>
Thinking In Java/Bruce Eckel
Practical C Programming/Steve Oualline
Instant CORBA/Robert Orfali,Dan Harkey,Jeri Edwards
Modern Database Management/Fred R.McFadden,Jeffrey A.Hoffer,Mary B.Prescott
Programming Pearls/Jon Bently
Effective C++/Scott Meyers
Unix Network Programming/W.Richard Stevens
MicroC/OS-II The Real-Time Kernel/Jean J.Labrosse
Unix Internals:The New Frontiers/Uresh Vahalia
Extreme Programming Installed/Ron Jeffries,Ann Anderson,Chet Hendrickson

개발자가 놓지지말아야할 책 베스트40
Macintosh Human Interface Guidelines/Apple Computer Staff
Design Patterns/Gang of Four
Refactoring/Martin Fowler
The Pragmatic Programmer:From Journeyman to Master/Andrew Hunt,David Thomas,Ward Cunningham(Preface)
Peopleware:Productive Projects and Teams/Tom DeMarco & Timothy Lister
Linkers and Loaders/John R. Levine
Client Server Database Enterprise Computing/James Martin
DataWareHouse From Architecture To Implementation/Bary Devlin
Operation System Design-The XINU Approach/Douglas Comer
Writing Solid Code/Steve Maguire
Algorithm+Data Structure=Programs/NIclus Wirth
Code Complete/Steve McConnell
Component Software:Beyond Object Oriented Programming/Clemens Szyperski
Software Reuse-Architecture,Process and Organization for Business Success/Ivar Jacobson,Martin Griss,Patrik Jonsson
Extreme Programming Explained/Kent Beck
Applying UML and Patterns,2nd Ed/Craig Larman
The Java Programming Languages, 3rd Ed/David Holmes,James Gosling,Ken Arnold
리눅스 완전분석으로 가는 길/박장수
Operating System Concept/Abraham Silberschatz
TCP/IP Illustrated Volume I,II,III/W.Richard Stevens
Advanced Programming in UNIX Environments/W.Richard Stevens
Understanding COM+/David S.Platt
Compilers: Principles,Techniques and Tools/Jeffrey D.Ullman
Numerical Reciples in C/William H.Press
The C++ Programming Language Special Ed/Bjarne Stroustrup
Effective STL/Scott Meyers
Professional Jini/Sing Li
C++ Primer/Stanley B.Lippman,Josee Lajoie
대용량 데이터베이스 시스템/이화식,조광원
Armchair Universe/A.K.Dewdney
Writing for Computer Science/Justin Zobel
The C Programming Language/Brian W.Kernighan,Dennis M.Ritchie
Bugs in Writing Revisted:A Guide to Debugging Your Prose/Lyn Dupre
The Design of The UNIX Operationg System/Maurice Bach
Building Business Objects/Peter eles,Oliver Sims
The Art of Computer Programming:Fundamental Algorithms/D.Knuth
Professional ATL COM Programming/Ricard Grimes
Pattern-Oriented Software Architecture, Volume 2/Douglas Schmidt
Inside Java2 Virtual Machine/Bill Venners
Understanding ActiveX/COM/David Chappell

개발자가 놓지지말아야할 책 베스트20
Fundamentals of Data Structues in C++/Ellis Horowitz,Dinesh Mehta
Computer Networks/Andrews.Tanenbaum
Modern C++ Design/Andrei Alexandrescu
Database System Concepts/Abraham Silberschatz,Henry F.Korth,S.Sudarshan
Modern Database Management/DaFred R.McFadden,Jeffrey A.Hoffer,Mary B.Prescott
Data Mining:Concepts and Techniques/Jiawei Han,Micheline Kamber
The Design and Implementation of the 4.4BSD Operating System/Marshall Kirk McKusick,Keith Bostic,Michael J.Karels
UNIX Power Tools/Jerry D.Peek,Tim O’Reilly,Mike Loukides
The Unix Programming Environment/Brian W.Kernighan,Rob Pike(Contributor),Robert Pike
The Cathedral & The Bazaar/Eric S.Raymond
The Society of MIND/M.Mmsky
Fundamentals of Object Oriented Design in UML/Meilir Page-Jones
Computer Organization and Design:The Hardware/Software Interface/David A. Patterson, John L. Hennessy
Design Web Usability The Practice of Simplicity/Jakob Nielsen
Introduction to Algorithms/Charles E.Leiserson,Ronald L.Rivest, Thomas H. Cormen
Introduction to the Team Software Process/Watts S.Humphrey,Marc Lovelace
Mythical Man Month/Frederick P.Brooks
The Psychology of Computer Programming/Gerald M.Weinberg
After the Gold Rush/Steve C McConnell
Structure and Interpretation of Computer Programs – 2nd Ed/Harold Abelson,Gerald Jay Sussman,Julie Sussman

트랜스포머 감상후기…

시원한 여름철 일요일…

기회는 이때다…같은 동아리 선배인 수근이형을 꼬셔서 트랜스포머를 감상.

결과는…..정말 영화보기를 잘했다는 느낌이 든다.

예고편을 이미 보았기에 로봇이 변신한다는 것은 알고 있었는데…정말 놀랬다.

자동차, 탱크, 비행기, 헬리콥터…등등이 로봇으로 변신을 하고 그 로봇이 말을 한다는 설정은 요즈음의 어느 애니메이션에도 쓰이는 설정이다.

…..하지만 그것을 실사 영화로 옮긴다고 생각을 하면 그것은 엄청난 가치를 지니게 된다…

어설픈 컴퓨터 그래픽이 아닌…누가 보더라도 정말 진짜와 흡사하다는 느낌을 가지게 만드는 퀄리티…

로봇의 사소한 부분에도 하나하나 세심한 작업을 하여 마치 진짜처럼 만들었다..

영화 런타임 2시간 정도 동안…그저 할말을 잊고 바라보았다…

그저 놀랄따름…

트랜스포머2 가 나온다면 다시금 기대해볼 일이다..

오랜만에…

정말 오랜만에 글을 남긴다..

학교에 복학하고 1학기가 지난 이시점…

그동안 가장 중요한 무언가를 빼먹은 듯 하다.

Stay hungy, Stay foolish….

이젠 잊지 않으리…

VirtualBox 로 윈도우 설치하기.

1. 아래의 주소에서 ubuntuvirtualbox 의 바이너리 파일을 바탕화면으로 다운 받는다.

http://www.virtualbox.org/wiki/Downloads

2. 터미널을 실행하고 받은 파일이 있는 곳으로 가서 아래처럼 실행한다.
sudo dpkg  -i 받은파일이름
이 때, 받은 파일 이름이 VirtualBox_1.3.8_Ubuntu_dapper_i386.deb 이면
sudo dpkg  -i VirtualBox_1.3.8_Ubuntu_dapper_i386.deb
를 실행한다.
, 이 때 주의할 점은, X윈도우의 터미널에서 위의 명령을 실행할 경우,

마치 설치가 멈춘 것처럼 보일 수 있다. 이 경우 실행창의 아래부분에 보이는 자세히…’

를 클릭해 보면, <ok>를 눌러주기를 기다리고 있는 터미널 모드의 대화창이 보인다.

키보드의 tab키를 눌러 <ok>를 선택한 후 스페이스 바를 눌러 준다.
이런 식으로 설치가 진행되고 나서, 프로그램 메뉴의 시스템 도구를 열어보면,

innoTek VirtualBox 아이콘이 보인다.

3. 설치된 아이콘을 클릭하여 실행한다.

New > Next

> 이름은 ‘WinXP’등 적당히 정하고, OS TypeWindows XP로 정한 후 > Next

> 설치될 윈도우즈에게 배당할 메모리 크기를 정한다. 당연히, 자신의 컴퓨터에 설치된 메모리 크기보다 적어야 한다. > Next

> Boot Hard Disk를 만들 차례이다. 하드디스크 이미지 파일을 생성하기 위해 New단추를 누른다. 그냥 기본 설정을 사용해도 무난하므로 > Next > Next > Next > Finish를 하고 나면, Boot Hart Disk 에 방금 생성한 디스크 이미지가 보인다. > Next > Finish

이제 가상 머신이 생성된 것이 보이게 된다.
4. Windows XP 설치하기

cdrom드라이브에 Windows XP CD를 넣거나, Windows XPiso이미지를 적당한 디렉토리에 복사해 넣은 후, 방금 생성한 가상 머신의 윗 쪽의 도구상자에 보이는 Settings를 클릭한다.

CD/DVD-ROM 부분에서 Mount CD/DVD Drive를 클릭한 후, WindowsXPCD로 부터 설치하려면, Host CD/DVD Drive를 선택하고, iso이미지로 부터 설치하려면, ISO Imange File부분에서 iso 파일을 선택한다.
Audio 부분에서 Enabel Audio를 클릭한다.
대화 상자의 아래쪽에 있는 OK를 눌러 창을 닫는다.
이제 모든 준비가 되었다. Start를 누르면, 가상 머신이 작동하면…… 좋겠지만,

아직 설정해야 할 것이 남아 있다.
우선 터미널을 실행하고,

sudo usermod -G vboxusers -a 로그인아이디

를 실행하고,
sudo chmod 666 /dev/vbox/drv

를 한다.
또한

sudo gedit /etc/rc.local 를 실행하여,

맨 아랫줄의 exit 0이라고 써 있는 부분의 윗쪽에

chmod 666 /dev/vbox/drv

를 추가해 두면 로그인때마다 폴더의 권한을 재설정하여 윈도우즈의 실행에 문제가 없게 된다.
이제 가상머신을 시작하면 윈도우즈의 설치기 시작되는 것을 볼 수 있다.
5. 윈도우즈의 설치가 끝나면, 가상머신을 실행한 상태에서 마우스 커서가 윈도우즈 창에 갖히게 되는 것을 볼 수 있다. 이 때는 키보드의 오른쪽 Ctrl을 누르면, 윈도우즈 창이 실행된 채로 리눅스로 나올 수 있다. 리눅스로 나와서 실행중인 윈도우즈 가상머신창의 위쪽에 보이는 메뉴 중에서, Devices메뉴의 맨 아랫쪽에 보이는 Install Guest Additions를 클릭하면, 윈도우즈 창 안에서 프로그램이 실행되는 것이 보이게 된다. 그것을 실해하고 나면, 마우스 커서가 윈도우즈와 리눅스 사이에 자유롭게 왕래하는 것을 볼 수 있다. 또한 가상 머신이 실행된 상태에서 키보드의 오른쪽 Ctrl+G키를 누르면, 가상머신이 실행중인 창의 크기를 조절 할 때마다 가상머신에서 실행중인 윈도우즈의 해상도가 자동적으로 변화하는 것을 볼 수 있다.

VirtualBox의 실행 속도는 기대 이상으로 무척 빠르다.

다만, VirtualBox가 아직 DirectX를 지원하지 않는 이유때문에 3D게임이 실행되지는 않지만, 그외의 대부분의 작업이 가능하다.

6. 리눅스와 가상머신 사이의 파일 공유

리눅스와 가상머신의 윈도우즈 사이의 파일 공유는 VirtualBox에서 제공하는 파일 공유의 방법과

ubuntu리눅스에는 samba 데몬 서비스를 실행하고, 가상머신의 윈도우즈에서는 클라이언트로 삼바 서버에 접근하는 방법을 사용할 수 있다.

[VirtualBox의 공유기능 사용법]

VirtualBox를 종료한 후에, 터미널에서 아래 명령을 실행한다.

VBoxManage sharedfolder add “가상머신이름” -name “공유 디렉토리 이름” -hostpath “공유 디렉토리 전체 경로”

, 가상머신의 이름이 “WindowsXP”이고, 공유할 디렉토리가 /home/my_id/MyDoc이라면

VBoxManage sharedfolder add “WindowsXP” -name “MyDoc” -hostpath “/home/my_id/MyDoc”

이라고 실행하면 된다. 이 명령은 스크립트로 만들어서 리눅스가 실행될 때, 자동실행하게 하는 편이 좋다.

터미널에서 gedit AddShare 라고 실행하여 편집기를 연 후에 위의 스크립트를 그 안에 저장하고,

chmod +x 파일이름

의 명령을 실행해서 실행 권한을 부여한다.

리눅스 작업표시줄의 <시스템 메뉴> 안에 있는 <기본 설정>에서 <세션>을 실행하고, 시작 프로그램에 만든 스크립트를 추가하면,

X윈도우즈가 실행될 때마다 이 스크립트가 실행된다.

이제 가상머신의 윈도우즈를 실행하고, 시작메뉴의 실행에서 cmd 실행 시켜서 터미널이 뜨면,
net use n: \vboxsvr
공유디렉토리이름

을 친다. 위의 보기에서라면, net use n: \vboxsvrMyDoc 이라고 치면 된다.

여기에서 n: 은 드라이브 문자이므로 다른 것으로 바꿀 수 있다.

[리눅스의 삼바를 이용하여, 윈도우즈 공유를 실행하는 법]

먼저 터미널에서

sudo gedit /etc/samba/smb.conf를 실행하고,

그 안의 내용을 다 지우고 아래의 내용을 복사해 넣는다.

[global]

workgroup=WORKGROUP

encrypt password=yes

read only=no

hosts allow=10.0.

unix charset=utf-8

dos charset=utf-8

browsable=yes

[MyDoc]

comment=My Documents

path=/home/로그인아이디/Desktop /MyDoc

경로 설정은 바꿀 수 있다. 위의 설정대로 하려면, 바탕화면에 MyDoc 디렉토리를 생성해야 한다. smb.conf를 저장하고 닫은 후에 터미널에서 아래의 명령을 실행한다.

sudo apt-get install samba

를 실행하여 삼바를 설치한다. 삼바가 설치되는 동시에 서버가 실행된다.

삼바 접근 권한 설정을 위해

터미널에서 smbpasswd -a 로그인아이디

를 실행하고 비밀번호를 설정한다.

이제 가상 머신의 윈도우즈를 열고,

내 컴퓨터를 더블 클릭하고,

> 네트워크 환경 추가를 더블 크릭,

>다음 > 다음

>인터넷 또는 네트워크 주소에

\10.0.2.2MyDoc

를 입력

위에서 설정한 아이디와 비밀번호로 접속하면

리눅스의 지정한 디렉토리와 윈도우즈가 서로 연결된다.

윈도우즈에서 아무 폴더나 열고서 도구 메뉴의 네트워크 드라이브 연결을 선택하고서 드라이브를 정하고 앞서 연결한 삼바네트워크를 정해주면, 삼바로 연결된 리눅스의 디렉토리가 윈도우즈에서는 드라이브로 설정된다.

7. Windows의 백업과 복원

가상 윈도우즈가 바이러스에 걸려 복구 불가능일 때를 대비해 백업하고 복사하는 법은 간단하다.

리눅스에 로그인한 사용자의 home디렉토리에 숨겨진 폴더 .VirtualBox 안에 보면 VDI 디렉토리가 있다. 그 안에 보이는 vdi파일들은 가상 하드디스크 파일들이다.

그 파일들을 복사해두었다가, 문제가 생기면 덮어 써버리면 그만이다.

예를 들어서 winxp.vdi가 나의 하드디스크라면 winxp-1.vdi 처럼 복사해 둔다. winxp.vdi로 부팅하는 가상머신의 윈도우즈가 문제가 심각할 경우 winxp.vdi를 삭제하고,

winxp-1.vdi파일을 따로 하나 복사하고 그 이름을 winxp.vdi로 고친다. 그러면, 윈도우즈는 복원된 상태로 정상적으로 뜬다.

/etc/fstab 설정시 발생한 작은 문제..

윈도우와 리눅스 듀얼 부팅으로 사용하던 중…

윈도우를 리눅스에서 VirtualBox 를 이용하여 구동하기로 마음 먹었다.

윈도우를 삭제하고 리눅스내에서 설치를 하던 중…리붓을 하고나니 작은 문제가 발생하였다.

하드디스크가 마운트가 안된것..

무엇이 문제일까?

한동안 고민을 해보았다.

부팅후 mount 명령어로는 마운트가 되는데 이상하게도…/etc/fstab 에 설정을 하였을때는 도통 작동되지가 않는 것이다.

결국 해답을 찾았는데…쉬운 것이었다.

바로 grub 에 설정된 windows 의 부팅 정보를 삭제를 안하고 부팅을 하려고 하니…당연히 ext3 로 자동 마운트가 안되는 것이었다.

쉬운 해결점이었는데…의외로 오래 걸렸다.

다시금 생각하게 된다.

‘문제가 발생하면 제일먼저 로그를 확인할 것.’