| Ifi Okoye |
솔라리스와 썬 스튜디오 소프트웨어는 학생들이 유닉스 상에서 C 프로그램을 쉽게 할 수 있도록 함
C 로 프로그래밍 하는 것이 아무리 이상하고 어려울지라도, 기억해야할 진실은 대부분의 운영체제는 C로 작성되어 있고 또한 퍼포먼스를 위해 최적화 되어 있다는 것입니다. C 와 C++ 은 여전히 컴퓨터 공학과 학생이라면 어느정도 능숙하게 다룰 것이 기대되는 언어 입니다. 또한 cragslist, Monster 등에서 볼 수 있는 구인 공고에서는 일반적으로 컴퓨터 공학 전공자의 기본 요건으로써 C/C++ 프로그래밍 능력을 기재하고 있습니다.
일반적으로 학생들이나 신규 프로그래머들이 유닉스 시스템에서 C 프로그램을 할줄 아는 것은 중요하다는 인식이 있습니다. 이것은 커맨드 라인을 통해서 프로그램하는 방법에 대해 배우는 것을 의미 합니다. 유닉스 프로그래머는 커맨드라인을 이용해서 작업을 할 수 있어야 한다는 일반적인 믿음도 있습니다. 커맨드 라인의 힘은 서로 다른 옵션을 지정함으로써 여러가지의 서로 다른 작업을 할 수 있다는 것입니다.. 이것은 꽤 시간이 걸립니다.
응용 기술은 삶이 좀더 쉬워지거나 혹은 더 낳도록 만들어 주는 것을 의미 합니다. 그러므로 만약 툴에 이러한 커맨드 라인의 파워를 적용할 수 있다면 프로그래머들의 삶은 좀 더 쉬워질 것입니다. 이것이 솔라리스와 썬 스튜디오 소프트웨어가 해온 것들 입니다. 이 제품들은 커맨드 라인으로 프로그래밍을 해왔던 혼란을 제거하고 유닉스 시스템에서 C 코드를 작성하는 것을 좀 더 쉽게 하도록 도와 줍니다.
필자가 약 2년전에 유닉스 시스템에서 프로그래밍하는 방법을 처음 배웠을때 했던 단계중의 하나는 강력한 에디터인 vi 를 쓰는 방법입니다. 여러분이 어떠한 수준의 프로그래밍 레벨을 가지고 있을 지라도 맨 처음 vi 를 배웠던 때를 생각해 봅시다. 그렇다면 여러분은 여러분의 배움 곡선이 매우 높았다는 것을 인정할 것입니다. 저는 썬 스튜디오 컴파일러가 GUI 와 같이 딸려 옴을 발견했을때 거의 황홀경에 빠졌었습니다. 썬 스튜디오 IDE를 통해 소스 파일을 생성하고나 수정하는 작업은 이제 직관적입니다. 저는 GUI 를 시작했고 File->New 메뉴를 통해서 새로운 소스 파일을 생성했습니다.
![]() |
저는 15 페이지 짜리 멘페이지를 스크롤을 내려 가면서 소스 파일을 어떻게 생성하고 수정하는지 봐야할 필요가 없었습니다. 여기 File-New 를 사용하는 또 다른 예제 입니다.
![]() |
그리고 아래에는 C 템플릿을 이용한 New 마법사의 스크린 캡춰가 있습니다.
![]() |
구글에서 "makefile tutorial" 으로 검색하면 수백만 건의 히트를 리턴하게 됩니다. 이것은 UNIX 에서 makefile을 만드는 것이 얼마나 중요한건지 보여준다고 할 수 있습니다.
필자가 학교에서 작성한 C 프로그램의 일부로써 처음으로 makefile 을 제출하라고 얘기를 들었을때, 완전히 혼란에 빠졌습니다. 그전까지 제가 써왔던 코드들은 모두 간닪나 프로그램들이였습니다. 그리고 컴파일시에 걸리는 시간은 전혀 이슈가 되지 못했었습니다. 그러나 운영체제를 시뮬레이트 하는 프로그램에서 컴파일 시간은 성적을 매기는 하나의 요소였습니다.
Makefile 은 유용합니다. 왜냐하면 컴파일러에게 코드를 어떻게 컴파일 하라고 알려 줄 수 있기 때문입니다. makefile은 파일에내 코드의 어떠한 라인이나 섹션을 변경했을때 오직 수정된 파일만 재컴파일 시킴으로써 컴파일 시간을 단축 시킬 수 있도록 보장해 줍니다. 썬 스튜디오 소프트웨어는 자동적으로 makefile 을 생성해 줍니다. 그러므로 C를 이용해서 UNIX 상에서 프로그래밍을 하는 어려움의 많은 부분을 감소 시켜 줍니다. makefile 마법사를 통해서 여러분은 makefile 을 통해서 여러분의 소스 코드를 빌드 할때 썬의 CC 컴파일러를 사용할지 혹은 GNU의 GCC 컴파일러를 사용할지 선택할 수 있습니다. 또한 솔라리스 플랫폼을 위해 컴파일 할지 리눅스 플랫폼을 위해 컴파일 할지도 선택할 수 있습니다.
![]() |
신규 프로그래머는 커맨드라인에서 디버거를 어떻게 그러고 언제 사용해야 하는지 잘 모를때가 많기 때문에 저는 C 코드를 추적하는데 print 문을 사용하곤 했었습니다. 간단한 프로그램들에서는 이게 통했지만 이것은 진저리나는 작업이었고 런타임시간 또한 증가시켰습니다. 왜냐하면 이것은 불필요한 I/O 를 발생시키고 오히려 에러를 유발할 수 있기 때문입니다. 코드를 디버깅 할때 디버거는 마치 훌륭한 학생들만을 위한 것으로 보입니다. 그러나 썬 스튜디오 소프트웨어에서 dbx 디버거를 이용하여 C 프로그램을 디버깅 하는 것은 매우 쉽습니다. 이 것은 Debug->Load Program 을 선택하고 Debug->Continue 만 선택하면 될 만큼 쉽습니다. 아래에는 Debug->Load Program 의 스크린 샷입니다.
![]() |
아래에는 Debug->Continue 의 예제 입니다.
![]() |
다른 서브 윈도우를 통해 콜 스택과 로컬 변수, 브레이크 포인트와 왓치(watch), 그리고 프로그램의 각 단계에서의 값들을 볼 수 있습니다.
썬 스튜디오 IDE는 무료로 제공되는 썬 스튜디오 컴파일러와 툴들 을 포함한 무료 GUI로 학생들이 UNIX 에서 프로그래밍을 하는 것을 매우 쉽도록 도와 줍니다. 이것은 급하게 커맨드를 기억해야 할 필요가 없고 계속적으로 멘 페이지를 뒤질 필요도 없이 학생들이 프로그래밍 스킬 향상에만 주력하도록 할 수 있습니다. 커맨드와 그것의 옵션을 기억하는 것 혹은 멘페이지를 뒤지는 것은 당연한 일입니다. 그러나 GUI 를 가짐으로써 이러한 여정을 매우 쉽게 마칠 수 있습니다.
필자는 학생들이 UNIX 시스템 상에서의 프로그래밍 실력을 키우는데에는 솔라리스가 가장 이상적인 시스템이라고 생각 합니다: 무료로 제공되는 썬 스튜디오 컴파일러를 제외하고서라도 GNU의 GCC 컴파일러 또한 지원하기 때문입니다. 이것은 리눅스 플랫폼에서 프로그래밍 하는 것에 익숙한 프로그래머들이 유닉스 시스템에서도 별 불편함을 못느끼게 할 수 있습니다.
"개발자코너" 카테고리의 다른 글
- C++ ABI의 안정성: 프로그래밍 언어의 진화 (댓글 1개 / 트랙백 0개) 2006/02/23
- DTrace를 사용하여 유저가 조정하는 애플리케이션 크래쉬 데이타 정보 모으기 (댓글 1개 / 트랙백 0개) 2006/08/23
- 솔라리스 상에서 "자바 GNOME" 바인딩을 이용해서 개발하기 (댓글 3개 / 트랙백 0개) 2007/04/20
- libumem 라이브러리를 이용하여 어플리케이션 내의 메모리 관리 버그를 잡아 내는 방법 (댓글 1개 / 트랙백 1개) 2006/03/23
- 솔라리스 디바이스 드라이버 작성을 원하십니까? (댓글 0개 / 트랙백 0개) 2008/09/18
- dbx가 프로세스나 코어 파일을 읽지 못하는 이유 (댓글 1개 / 트랙백 0개) 2006/01/23
- dbx를 통한 Java 어플리케이션 디버깅: Java 코드를 위한 업계 최고 수준의 디버깅 (댓글 1개 / 트랙백 0개) 2005/11/23
- OpenMP 소개: 포터블한, 공유 메모리 멀티프로세서 환경에서의 병렬 프로그래밍 API (댓글 10개 / 트랙백 1개) 2007/07/16
- SPOT을 이용한 손쉬운 어플리케이션 성능 분석 (댓글 1개 / 트랙백 0개) 2006/06/23
- Dmake 를 사용하여 어플리케이션 빌드의 속도를 향상시키기 (댓글 0개 / 트랙백 0개) 2008/10/15






댓글을 달아 주세요
짬짬이 좋은 공부 하고 갑니다. 좋은 자료 많이 많이 올려주세요.
2007/09/12 22:02솔라리스가 가장 이상적인 시스템이다..맞는 말씀이져!
2007/09/18 14:37좋은 정보 감사해요~
2007/09/19 03:52좋은 내용이네요. 썬 스튜디오에 대한 개념적이해를 도와주네요. 한번 써봐야겠습니다
2008/01/20 18:32유닉스체계에서 vi로의 프로그래밍 정말 끔찍햇거든요