ÇÁ·Î±×·¡¹Ö ¾ð¾î Mini-HOWTO

¿øÀúÀÚ : Risto Varanka

¿ø º» : LDP - Programming Languages HOWTO

¹ø¿ªÀÚ : ÁÖ¿ë¼® ysjoo@lgeds.lg.co.kr (LG-EDS °ø°ø 1 »ç¾÷ºÎ)

¹ø¿ªÀÏ : 2000³â 02¿ù 07ÀÏ

¡¡

Index

1. Introduction

2. Programming Languages

3. GUI Toolkits

4. °á·Ð

¡¡

1. Introduction

Linux´Â ¾î¶² À¯Àú¶óµµ ±×°ÍÀÇ °³¹ßÀÛ¾÷¿¡ Âü¿©ÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ ¸Å¿ì ¸Å·ÂÀûÀÎ ¿î¿µ üÁ¦ ÀÌ´Ù. ±×·¯³ª ¾ð¾îÀûÀÎ ´Ù¾ç¼º(The variety of available Program Languages)ÀÇ ¹®Á¦´Â Ãʱâ Linux °³¹ßÀڵ鿡°Ô È¥µ¿À» ÁÖ¾ú´Ù. ÀÌ ¹®¼­´Â ¿À´Ã³¯ÀÇ °³¹ß¿¡ À־ °¡Àå ÀϹÝÀûÀÎ ¿É¼ÇµéÀ» listingÇÏ¿´°í, ±×°Íµé¿¡ ´ëÇÑ ÇÙ½ÉÀûÀÎ »ç½ÇÀ» ¼­¼úÇÑ´Ù. ³ªÀÇ ¸ñÇ¥´Â ÇÁ·Î±×·¥ ¾ð ¾î¸¦ reviewÇÏ´Â °Íµµ ¾Æ´Ï°í ±× Áß¿¡ ÃÖ°í¸¦ °ñ¶ó³»´Â °Íµµ ¶ÇÇÑ ¾Æ´Ï´Ù. °¢°¢ÀÇ ÇÁ·Î±×·¡ ¹Ö ¾ð¾îµéÀº ÀÌ¿ëÀÚ¿¡°Ô À־, ±×µéÀÌ ¾î¶² ÀÏÀ» Çϸç, ±×µéÀÇ ¼ºÇâÀÌ ¾î¶°ÇÑ°¡¿¡ µû¶ó ÀûÇÕÈ­ µÉ ¼ö ÀÖ´Â ÇϳªÀÇ ÅøÀÌ´Ù. ´ç½ÅÀÌ ´ç½ÅÀÇ ±Í¸¦ Ç×»ó ¿­¾î³õ°í, ÁÖÀ§¿¡ ÀÚ¹®À» ±¸ÇÑ ´Ù¸é, ´ç½ÅÀº º¸´Ù ¸¹Àº Á¤º¸¸¦ ½±°Ô ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ±ÛÀÇ Link ¼½¼ÇÀº ´ç½Å¿¡°Ô ´ç½Å ÀÚ ½ÅÀÇ ¿¬±¸¸¦ À§ÇÑ ¾î¶² Áöħµé(some pointers)À» Á¦°øÇÒ °ÍÀÌ´Ù.

ÀÌ ¹®¼­´Â ÃÖ±Ù¿¡ LDP¿¡ ÃÖ±Ù¿¡ ¿Ã¶ó¿Â °ÍÀ¸·Î ¸¹Àº »ç¶÷µé¿¡°Ô feedbackÀ» ¹ÞÀ» ±âȸ°¡ °ÅÀÇ ¾ø¾ú´Ù. ±×·¯³ª ÀÌ ±ÛÀÌ Linux»ó¿¡¼­ ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â °Í¿¡ °ü½ÉÀÌ ÀÖ´Â »ç¶÷¿¡°Ô À¯¿ëÇÒ °ÍÀ̶ó°í ÀÔÁõ µÉ °ÍÀ» ¹Ï°í, ±×·¯ÇÑ Èñ¸Á ¼Ó¿¡¼­ ¹èÆ÷µÇ¾ú´Ù.

1.1 Copy Right Copyright (c) 2000 Risto Varanka.

1.2 ±âŸ

ÀÌ ¹®¼­ ¿ª½Ã ´Ù¸¥ LDP¹®¼­¿Í ¸¶Âù°¡Áö·Î License¿¡ °üÇÑ ¹üÀ§¿Í Disclaimer¿Í °°Àº ³»¿ëµéÀ» Áö´Ï°í ÀÖÀ¸³ª, ´Ù¸¥ ¹®¼­µé°ú µ¿ÀÏÇÏ°Ô Àû¿ëµÇ°í ÀÖ´Ù.

¡¡

2. Programming Languages

2.1 Concepts in the Table

Language ÀϹÝÀûÀ¸·Î ÀÏÄþîÁö´Â 'ÇÁ·Î±×·¥ ¾ð¾î'

Beginner ÇÁ·Î±×·¡¹Ö °æÇèÀÌ °ÅÀÇ ¾ø´Â »ç¶÷µé¿¡°Ô ½±°Ô Àͼ÷ÇØÁú ¼ö ÀÖ´ÂÁö¿¡ ´ëÇÑ ¿©ºÎ. "yes"¶ó°í Ç¥±âµÈ ¾ð¾î´Â Ãʺ¸ÀÚ¿¡°Ôµµ ½±°Ô ½ÀµæµÉ ¼ö ÀÖ´Â ¾ð¾îÀÌ´Ù.

Performance '´ç½ÅÀÌ ´ç½ÅÀÇ ÀÀ¿ëÇÁ·Î±×·¥À» »ç¿ë¸ñÀûÀ¸·Î ¸¸µé¾úÀ» ¶§, ¾ó¸¶³ª ºü¸£°Ô ÀÌ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ¾îÁö´Â°¡'¿¡ ´ëÇÑ Ã´µµ°¡ µÈ´Ù. ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ Æ¯¼ºº¸´Ù´Â ÀÚ½ÅÀÇ ÇÁ·Î±×·¡¹Ö ¾Ë °í¸®Áò ±â¼ú¿¡ º¸´Ù ´õ Á¿ìµÈ´Ù. °æÇèÀûÀ¸·Î, C, C++, FortranµéÀº ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ºñÇÏ¿© - ¶§¶§·Î À§ÀÇ ¾ð¾îµéÀº ¿øÇÏ´Â ¹Ù¸¦ ÀÌ·ç´Â °ÍÀÌ ¾î·Á¿ïÁö ¸ð¸£Áö¸¸ - ¿ì¼öÇÑ ¼º ´É(¼Óµµ, ¸Þ¸ð¸®) ¶§¹®¿¡ ÀÌ¿ëµÉ Çʿ伺ÀÌ Á¦±âµÈ´Ù. (¾ð¾î¿¡ ´ëÇÑ benchmarkingÀ» À§ÇÑ ÇÏ ³ªÀÇ ¾ÆÀ̵ð¾î´Â °¢Á¾ÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î Á¤·Ä ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÒ ¶§, ±×°ÍµéÀÇ ¼Óµµ¸¦ ºñ±³ÇØ º½À¸·Î½á Å×½ºÆ® Çغ¼ ¼ö ÀÖ´Ù.) OOP - Object Oriented Programming vs. other paradigms OOP´Â ¸¹Àº ´ëÁßÀûÀÎ Àα⸦ ¾ò´Â Áß¿äÇÑ ÇÁ·Î±×·¡¹Ö Æз¯ ´ÙÀÓÀÇ ÇϳªÀÌ´Ù. °´Ã¼ÁöÇâ¾ð ¾î¿¡ À־, ÀڷᱸÁ¶¿Í ¾Ë°í¸®ÁòÀº 'Ŭ·¡½º'¶ó°í ºÒ¸®´Â ÇϳªÀÇ ´ÜÀ§·Î ÅëÇյȴÙ. OOP´Â Á¾Á¾ ¼øÂ÷ÀûÀÎ ÇÁ·Î±×·¥°ú ´ëÁ¶µÈ´Ù.(ÀڷᱸÁ¶¿Í ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ¿© ´ëÁ¶) OOP¶ó´Â ¹æ½Ä Àº ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ¾ö°ÝÇÏ°Ô ÀÇÁ¸µÇ´Â °ÍÀº ¾Æ´Ï´Ù. C¿Í °°ÀÌ OOP·Î °£ÁÖµÇÁö ¾Ê´Â ¾ð ¾î·Îµµ ´ç½ÅÀº OOP·Î ÇÁ·Î±×·¡¹Ö ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í OOP·Î ¿©°ÜÁö´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î ·Îµµ ¼øÂ÷Àû ½ºÅ¸ÀÏ·Î ÇÁ·Î±×·¡¹Ö ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ³ª´Â Ưº°ÇÑ Æ¯¼ºµéÀ̳ª OOP¸¦ ½± °Ô ±¸ÇöÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ºÎ°¡ÀûÀΠƯ¼ºÀ» °®´Â OOP¾ð¾î¸¦ OOP¾ð¾î·Î½á listingÇß´Ù. ±â´ÉÀûÀÎ ¾ð¾î(¿¹¸¦ µéÀÚ¸é, Lisp)µéÀº ¾à°£ ´Ù¸¥ ºÎ·ùÀÌ´Ù ? ÀÌµé »çÀÌ¿¡, ±â´ÉÀû ÇÁ·Î±×·¡ ¹ÖÀº OOPÀÇ supersetÀÌ´Ù. ±×·¯³ª Logic ÇÁ·Î±×·¡¹Ö(Prolog)Àº ¶ÇÇÑ ¼­¼úÀû ÇÁ·Î±×·¡¹Ö (declarative programming)À̶ó°íµµ ºÒ¸®Áö¸¸, ÀÌ°ÍÀº À¯»çÇÑ Àǹ̿¡¼­ ÇÁ·Î±×·¡¹ÖÀÇ ´Ù¸¥ À¯ Çü°ú ¿¬°üµÈ °ÍÀº ¾Æ´Ï´Ù.

RAD, Rapid Application Development ´ç½ÅÀº ¾ð¾î¸¦ »ç¿ëÇϴµ¥ À־, ¾ð¾îÀÚüº¸´Ù Tool¿¡ ´õ¿í ÀÇÁ¸ÀûÀÌ´Ù. Linux¸¦ À§ÇÑ GUI °³¹ß Tool¿¡ ´ëÇÑ HOWTO°¡ ÀÖÀ¸³ª, ÀÌ°ÍÀº ³Ê¹« ¿À·¡µÈ °ÍµéÀÌ´Ù. ´ç½ÅÀº ÁÁÀº Graphical ToolÀ» °¡Áö°í RAD¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù. »Ó¸¸ ¾Æ´Ï¶ó, ¶§¶§·Î RAD´Â ÄÚµå Àç»ç¿ë ¿¡ ±â¹ÝÀ» µÎ¹Ç·Î, Free softwareµéÀÌ ÁÁÀº ½ÃÀÛÁöÁ¡À» Á¦°øÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

Examples ÇÁ·Î±×·¥ ¾ð¾î°¡ °¡Àå ÀÚÁÖ »ç¿ëµÇ´Â ¿µ¿ªÀ» ¾ð±ÞÇÑ´Ù. ´Ù¸¥ ÁÁÀº °Í(±×¸®°í ³ª»Û °Í)Àº Á¸ÀçÇÏ´Â °ÍÀ» »ç¿ëÇÑ´Ù. ±×·¯³ª ±×°ÍµéÀº ´ú Á¤ÇüÀûÀÌ´Ù.

Comments ¼ö¿ë·ÂÀ̳ª Dialects¿Í °°Àº, ¾ð¾î»ó Ãß°¡ÀûÀÎ Á¤º¸

¡¡

2.2 Major Languages

¡¡

PERL

Beginner : Yes - OOP : Yes

Examples : Scripting, ½Ã½ºÅÛ °ü¸®, WWW

Comments : ¸Å¿ì Àαâ ÀÖ´Â ÅؽºÆ® ¹× ½ºÆ®¸µ Á¦¾î Åø. °­·ÂÇÑ ±â´É

¡¡

Python

Beginner : Yes - OOP : Yes

Examples : WWW¿¡ ÀÌ¿ëµÇ°Å³ª Scripting¿¡ ÀÌ¿ë. Application °³¹ß°¡´É

Comments :

¡¡

TCL

Beginner : Yes - OOP : No

Examples : ½Ã½ºÅÛ °ü¸®¿Í Scripting. Application °³¹ß°¡´É

Comments:

¡¡

PHP

Beginner : Yes - OOP : Yes

Examples : WWW(WWW server¿Í ¿¬µ¿ µÇ¹Ç·Î ÁÖ·Î WWW¿¡¼­¸¸ ÀÌ¿ë)

Comments : ¸Å¿ì Àαâ ÀÖ´Â À¥ - µ¥ÀÌÅÍ º£À̽º ¿¬µ¿ ¾ð¾î

¡¡

Java

Beginner : Yes - OOP : Yes

Examples : Cross platform application(Ç÷§ Æû µ¶¸³ÀûÀÎ ½ÇÇà), WWW(applet)

Comments :

¡¡

Lisp

Beginner : Yes - OOP : Functional

Examples : Emacs modes(for elisp)

Comments : Variants Elisp, Clisp and scheme

¡¡

Fortran

Beginner : No - OOP : No

Examples : ¼öÇÐÀû ÀÀ¿ë ÇÁ·Î±×·¥

Comments : f77, f90, f95¿Í °°Àº ¿©·¯ ¹öÀüÀÌ Á¦°ø

¡¡

C

Beginner : No - OOP : No

Examples: ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö ¹× °¢Á¾ ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ß

Comments : ¸Å¿ì ³Î¸® ÀÌ¿ëµÇ°í ÀÖÀ½

¡¡

C++

Beginner : No - OOP : Yes

Examples : ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ß.

Comments :

¡¡

2.3 Shell Programming

½©Àº ¿ª½Ã °¡Àå Áß¿äÇÑ ÇÁ·Î±×·¡¹Ö ȯ°æÀÌ´Ù. ³ª´Â ¾ÆÁ÷ ¿ÏÀüÇÏ°Ô ½©À» ÀÌÇØÇÏÁö ¸øÇßÀ¸¹Ç ·Î ±×°ÍµéÀ» ¿©±â¼­ ´Ù·çÁö ¾Ê¾Ò´Ù. ¿ø·¡ Linux »ó¿¡¼­ ÀÛ¾÷ÇÏ´Â »ç¶÷À» À§ÇØ °¡Àå Áß¿äÇÑ °ÍµéÀÌ ½©¿¡ °ü·ÃµÈ Áö½ÄÀÌ´Ù. ¶ÇÇÑ ½Ã½ºÅÛ °ü¸®ÀÚ¸¦ À§Çؼ­´Â ÀÌ°ÍÀÌ ´õ¿í´õ ÇÊ¿äÇÏ´Ù. ½© ÇÁ·Î±×·¥°ú Scripting ¾ð¾î »çÀÌÀÇ À¯»çÁ¡ÀÌ ÀÖ´Ù - ±×°ÍµéÀº µ¿ÀÏÇÑ ¸ñÆ÷¸¦ ÀÌ·ê ¼ö ÀÖ À¸¸ç, ±×¸®°í ¸ñÇ¥¸¦ ÀÌ·ç°íÀÚ ÇÒ ¶§, ´ç½ÅÀº °íÀ¯ ½©À̳ª Scripting ¾ð¾î¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀ» °¡Áö°í ÀÖ´Ù. ¿äÁò °¡Àå ÀαⰡ ÁÁÀº ½©Àº bash, csh, tcsh, ksh, ±×¸®°í zshÀÌ´Ù. ´ç ½ÅÀº ½©µé¿¡ ´ëÇÑ Á¤º¸¸¦ 'man'À̶ó´Â ¸í·É¾î¸¦ ÅëÇØ ¾òÀ» ¼ö ÀÖ´Ù.

(¿ªÁÖ) ½©Àº À¯´Ð½º Ä¿³Î(¿î¿µÃ¼Á¦)°ú À¯Àú»çÀÌ¿¡ ¸í·É¾î¸¦ Çؼ®ÇØÁÖ´Â Çؼ®±â¶ó°í »ý°¢ÇÏ¸é µË´Ï ´Ù. ½©Àº À¯´Ð½ºÀÇ Åº»ý°ú ´õºÒ¾î ²ÙÁØÇÏ°Ô ¹ßÀüÇØ¿Ô½À´Ï´Ù. óÀ½¿¡´Â sh¶ó´Â Bourne ½©À» »ç¿ëÇÏ¿´À¸¸ç, BSDÀ¯´Ð½ºÀÇ Åº»ý°ú ´õºÒ¾î Berkeley C shell ? csh°¡ ź»ýµÇ¾ú½À´Ï´Ù. ±× ÈÄ »ç¶÷µéÀº Korn ½©À̶ó´Â ½©·Î½á ÀÌ µÎ ½©À» ÅëÇÕÇÏ·Á´Â ¿òÁ÷ÀÓÀ» ½ÃµµÇß¾ú½À´Ï´Ù. ÇÏÁö¸¸ ÃÖ±Ù µé¾î Bourne Again SHellÀÎ bash¿Í tcshÀÌ µîÀåÇÔ¿¡ µû¶ó ´Ù½Ã ¾çºÐÈ­ µÇ°í ÀÖ½À´Ï´Ù. Bourne Again SHellÀº À̸§¿¡¼­µµ º¸À̵íÀÌ Bourne½©ÀÇ Æ¯¼ºÀ» À¯ÁöÇÑ Ã¤ ´Ù¸¥ ¿©·¯ ±â´É À» º¸¿ÏÇÑ ½©ÀÌ°í tcsh´Â cshÀÇ Æ¯Â¡À» À¯ÁöÇÑ Ã¤ ´Ù¸¥ ±â´ÉÀ» º¸¿ÏÇÑ ½©ÀÔ´Ï´Ù. ±×·¯´Ï ±»ÀÌ sh¿Í csh¸¦ °íÁýÇÒ ÇÊ¿ä´Â ¾ø´Ù°í º¾´Ï´Ù. ½© ½ºÅ©¸³Å͸¦ ÅëÇØ ¿©·¯ºÐÀº °£´ÜÇÑ ÇÁ·Î ±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖÁö¸¸, »ç½Ç»ó ÀÌ°ÍÀº ¿©·¯ °¡Áö À¯´Ð½ºÀÇ ¸í·É¾îµéÀÇ µµ¿òÀÌ ¾øÀÌ´Â ½±Áö ¾Ê½À´Ï´Ù. ½©Àº ÀÚüÀûÀ¸·Î °¡Áö°í ÀÖ´Â ¸í·É¾îµéÀÌ ¸¹Áö ¾Ê½À´Ï´Ù. ´Ù¸¸ ÄÁÆ®·Ñ Á¦¾î ¹× ±âŸ ·çÇÁ µîÀ» Á¦°ø ÇÏ°í ÀÖ±ä ÇÕ´Ï´Ù.

ÇöÀç °¡Àå ³Î¸® ¾²ÀÌ´Â ½©ÀÌ ¹Ù·Î bashÀÎ °Í °°½À´Ï´Ù. ¸ðµç ½©µé¿¡´Â Àå´Ü Á¡µéÀÌ ÀÖÁö ¸¸ ksh°¡ ½ºÅ©¸³Æà ±â´ÉÀÌ °¡Àå °­·ÂÇÏ°í¿ä, bash¿Í tcsh´Â ÇÁ·Î±×·¡¹Ö º¸´Ü ÁÖ·Î »ç¿ëÀÚ ÆíÀǸ¦ À§ÇØ ¸¹Àº ±â´ÉÀ» Á¦°ø ÇÏ°í ÀÖ½À´Ï´Ù. °ú°Å csh¿¡¼­ º¼ ¼ö ¾ø¾ú´ø command editing±â´É, ±×¸®°í ´Ù¾çÇØÁø job control °ú °­·ÂÇØÁø history±â´ÉµéÀÌ ¹Ù·Î ±×°ÍÀÔ´Ï´Ù.

Á¦°¡ ¾Æ´Â °ÍÀÌ ÂªÀº °ü°è·Î ´ëÃæ ½©¿¡ ´ëÇؼ± ÀÌÁ¤µµ¸¸ µ¡ºÙÈ÷·Á°í ÇÕ´Ï´Ù. ´õ ¸¹Àº Á¤º¸ ¸¦ ¿øÇϽøé ysjoo@lgeds.lg.co.kr·Î ¸ÞÀÏ Áֽñ⠹ٶø´Ï´Ù. Âü°í·Î Àú´Â Bourne Again SHell À» »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. ;-)

¡¡

2.4 Other Languages Other languages of note

: AWK, SED, Smalltalk, Eiffel, ADA, Prolog, assembler, Object C, Pascal, Logo

¡¡

2.5 Other Links

A general info site : http://www.tunes.org/Review/Languages.html

TCL : http://www.scriptics.org

PERL : http://www.perl.org

Python : http://www.python.org

PHP : http://www.php.net

Java : http://www.javasoft.com

clisp : http://clisp.cons.org/~haible/packages-clisp.html

¡¡

3. GUI ToolKits

¡¡

3.1 Concepts in the Table

Library Åø Å°Æ®ÀÇ ¾àÀÚ ¶Ç´Â ÀϹÝÀûÀÎ À̸§À» ÀǹÌÇÑ´Ù.

Beginner »õ·Î¿î ÇÁ·Î±×·¡¸Ó ¿¡°Ô Åø Å°Æ®°¡ ¹è¿ì±â Àû´çÇÑÁö¿¡ °üÇÑ ¿©ºÎ

License ´Ù¸¥ GUIÅø Å°Æ®¸¦ À§ÇÑ ´Ù¸¥ License´Â ½ÇÁ¦ÀûÀ¸·Î Á߿伺À» °¡Áö°í ÀÖ´Ù. GTK+¿Í TK License´Â ´ç½ÅÀÌ open source¿Í closed source application °³¹ß¿¡ À־, Ưº°ÇÑ license ÀÇ ´ë°¡ ¾øÀÌ Á¦°øµÈ´Ù. ±×·¯³ª Motif´Â ¸ðµç °³¹ß¿¡ À־ license¿¡ ´ëÇÑ ÁöºÒÀ» ¿ä±¸ ÇÏ°í ÀÖÀ¸¸ç, QtÀÇ °æ¿ì closed sourceÇüÅ·Π°³¹ßµÇ´Â ÀÏ¿¡¸¸ ÁöºÒÀ» ¿ä±¸ÇÏ°í ÀÖ´Ù.

Language Åø Å°Æ®¿Í ÇÔ²² °¡Àå ÀÚÁÖ ÀÌ¿ëµÇ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î

Bindings Åø Å°Æ®¿Í ÇÔ²² »ç¿ëµÉ ¼ö ÀÖ´Â ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î

Examples Åø Å°Æ®¿Í ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ¸¸µé¾î Áú ¼ö ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥

Comments ¾ð¾î¿Í Åø Å°Æ®¿¡ °üÇÑ Ãß°¡ÀûÀÎ »çÇ× ¹× Á¤º¸

¡¡

3.2 Major GUI ToolKits

¡¡

TK

Beginner: Yes - License: Free

Language: TCL Bindings: PERL, Python, C, C++, others

Examples: X window Programming, TKDesk, Make xconfig

¡¡

GTK+

Beginner: No - License : Free(LGPL)

Language: C Bindings: PERL, C++, Python, many others

Examples: GNOME, Gimp

¡¡

QT

Beginner: No - License: Free for open source

Language: C++ Bindings: Python, PERL, C, others?

Examples: KDE

¡¡

Motif

Beginner: No - License: Non-free

Language: C, C++ Bindings: Python, others?

Examples: Netscape, WordPerfect

¡¡

3.3 Links

TK : http://www.scriptics.com

GTK+ : http://www.gtk.org

QT : http://www.troll.no

Motif : http://www.metrolink.com

¡¡

4. °á·Ð

¡¡

¿ø·¡ ÀÌ ±Û¿¡´Â °á·Ð ºÎºÐÀÌ ¾ø¾ú½À´Ï´Ù. ±×·¯³ª À§ÀÇ ¼³¸í¸¸À¸·Î´Â ³Ê¹«³ª °£·«ÇÏ°Ô ¸ðµç °ÍÀÌ ¼³¸íµÈ °Í °°¾Ò°í, ´õ±¸³ª ¿ø ÀúÀÚ ¶ÇÇÑ ÀÌ ±ÛÀÌ º¯°æµÇ´Â °Í¿¡ ´ëÇÑ License°¡ µ¡ºÙÇô Áø ºÎºÐ¿¡ ´ëÇÑ ¾ð±Þ¸¸À» ¿ä±¸ ÇßÀ¸¹Ç·Î, °á·ÐÀ» µ¡ºÙÇô º¸°íÀÚ ÇÕ´Ï´Ù.

¸ÕÀú ÇÁ·Î±×·¥ ¾ð¾îÀÇ ¼±Åà ¹®Á¦ÀÔ´Ï´Ù. »ç½Ç»ó ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¼±ÅÃÀº ¿ÏÀüÇÑ °³¹ßÀÚÀÇ ¹®Á¦¶ó°í »ý°¢µË´Ï´Ù. »ç½Ç»ó ÇÁ·Î±×·¥ÀÇ ¿Ï¼ºµµ´Â ±× ÇÁ·Î±×·¥ÀÌ ¾ó¸¶³ª »ç¿ëÀÚÀÇ ±¸¹Ì¿¡ ¸Â°Ô ÀÛ¼ºµÇ¾úÀ¸¸ç, ¾ó¸¶³ª È¿À²ÀûÀÎ ¾Ë°í¸®ÁòÀ» »ç¿ëÇßÀ¸¸ç, ¾ó¸¶³ª ¸¹Àº Á¶»ç¿Í °ËÁõÀ» °Å ÃÆ´À³Ä¿¡ µû¶ó ´Þ¶óÁö´Â °ÍÀ̶ó°í »ý°¢ÇÕ´Ï´Ù. ÇÏÁö¸¸ °°Àº ±æÀ» °É¾î°¡´õ¶óµµ Áö¸§ ±æÀÌ ÀÖ µíÀÌ, ¾î¶² ÇÁ·ÎÁ§Æ®¿¡µµ ÀûÀýÇÑ ÇÁ·Î±×·¡¹Ö ¼ö´ÜÀÌ µû¸¥´Ù°í »ý°¢µË´Ï´Ù. X windowsȯ°æ¿¡ ¼­ ´Ü¼øÈ÷ X-libraries¿Í C¸¸À» °¡Áö°í ÇÁ·Î±×·¡¹ÖÇÏ´Â °ÍÀº »ç½Ç ³Ê¹«³ª ¸¹Àº ºÎ´ãÀ» ÇÁ·Î ±×·¡¸Ó¿¡°Ô ¶°³Ñ±â´Â ÀÏÀÔ´Ï´Ù. °£´ÜÇÑ ÀÀ¿ë ÇÁ·Î±×·¥À» À§ÇØ ±×·± ¾î·Á¿î Åø Å°Æ®¸¦ °¡Áö°í ÇÁ·Î±×·¥ ÇÏ´Â °Í º¸´Ù´Â GTK³ª Motif¿Í °°Àº Æí¸®ÇÑ Åø Å°Æ®¸¦ ÀÌ¿ëÇÏ´Â °ÍÀº ¸Å¿ì È¿À² ÀûÀÎ ¹æ¹ýÀ̶ó°í Àú´Â ¹Ï½À´Ï´Ù. ºñ·Ï ÀÀ¿ëÇÁ·Î±×·¥ÀÇ Á¤±³¼º ¹× È¿À²¼º, ¼öÇà ¼Óµµ Ãø¸é¿¡ ¼± ´Ù¼Ò µÚÁú Áö ¸ð¸£Áö¸¸, »óÈ£ trade-off°¡ ÀÖ´Â °ÍÀÌ°ÚÁÒ.

ÀÌ·± ÇÁ·Î±×·¥ ¾ð¾îÀÇ ¼±ÅÃÀº ¿©·¯ ÇÁ·Î±×·¡¸ÓÀÇ ¿ªÇÒ ÀÎ °ÍÀÌÁÒ.

ÀÌÁ¦ Á¦ °æÇèÀ» Åä´ë·Î Á¦°¡ »ç¿ë ÇÏ¿´´ø ÇÁ·Î±×·¥ ¾ð¾î¿¡ ´ëÇØ ¼³¸íÀ» ÇÏ°í ÀÌ ±ÛÀ» ¸¶¹« ¸® Áþ°Ú½À´Ï´Ù.

ÀÚ¹Ù¶ó´Â ¾ð¾î´Â 1995³âµµ¿¡ óÀ½ Sun»ç¿¡¼­ ¼±º¸ÀÎ ¾ð¾î ÀÔ´Ï´Ù. »ç½Ç»ó °¡Àå Ãæ½ÇÇÑ OOPÀÇ ±¸Á¶¸¦ Áö´Ï°í ÀÖ´Ù°í º¼ ¼ö ÀÖ½À´Ï´Ù.(¿ÏÀüÈ÷ Á¦ °³ÀÎÀûÀÎ °ßÇØ ÀÔ´Ï´Ù.) ¸¹Àº ÇÁ·Î ±×·¥À» Â¥º» °ÍÀº ¾Æ´ÏÁö¸¸, ÀÚ¹ÙÀÇ Å¬·¡½º °³³äÀº °¡Àå ¿Ïº®ÇÑ °ÍÀ̶ó°í º¼ ¼ö ÀÖÀ» °Í °° ½À´Ï´Ù. ¹°·Ð °³ÀÎÀûÀÎ Â÷ÀÌ´Â ºÐ¸íÈ÷ Á¸Àç ÇÏ°ÚÁÒ. ÇÏÁö¸¸ Ç÷§ Æû¿¡ µ¶¸³ÀûÀÌ°í ºñ±³Àû ¹è ¿ì±â ½¬¿ì¸ç, Web Based ProgrammingÀ̶ó´Â Â÷¿ø¿¡¼­´Â ´Ü¿¬ ¿ìÀ§¸¦ ÀÚ¶ûÇÑ´Ù°í º¼ ¼ö ÀÖ ½À´Ï´Ù.

C´Â ¼³¸íÇÒ ÇÊ¿ä°¡ ¾ø´Â ¾ð¾îÀÔ´Ï´Ù. °£°áÇÑ ¹®¹ý°ú °­·ÂÇÑ Æ÷ÀÎÅͶó´Â Á¡Àº ÀÌ C¾ð¾îÀÇ °¡Àå Å« ÀåÁ¡ÀÌÀÚ ¶ÇÇÑ ¾ð¾î ÀÚü¿¡ ´ëÇÑ ÀÌÇظ¦ ¾î·Æ°Ô ÇÏ´Â ¾àÁ¡À̶ó°í º¼ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ´ëºÎºÐÀÇ ½Ã½ºÅÛ ÇÁ·Î±×·¡¹ÖµéÀÌ ¹Ù·Î ÀÌ C¾ð¾î¸¦ ±â¹ÝÀ¸·Î ÀÌ·ç¾îÁö°í ÀÖ°í, ¾ÆÁ÷ ±îÁö ¸¹Àº ¿î¿µÃ¼Á¦ÀÇ °³¹ßÀÌ ÀÌ ¾ð¾î¿¡ ÀÇÁ¸ÇÏ°í ÀÖ½À´Ï´Ù. Á¤±³ÇÑ Á¦¾î¿Í, ºü¸¥ ¼Óµµ, ±×¸® °í ÀÛÀº ¹ÙÀ̳ʸ® »çÀÌ¡Àº ¸Å¿ì ¶Ù¾î³­ C¾ð¾îÀÇ ÀåÁ¡ÀÔ´Ï´Ù. ÇÏÁö¸¸ OOP¸¦ À§ÇÑ ¾î¶°ÇÑ ¼ö´Üµµ Á¦°øÇÏÁö ¾Ê°í ÀÖ´Ù´Â Á¡¿¡¼­ ±¸½Ã´ëÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾î¶ó°í °£ÁÖ µÇ°í ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Á¡À» º¸¿ÏÇϱâ À§ÇØ »õ·ÎÀÌ Objective - C¶ó´Â ÄÄÆÄÀÏ·¯°¡ »õ·Î ź»ýÇÏ¿´½À´Ï´Ù. ¸¹ Àº ÄÄÆÄÀÏ·¯°¡ Á¸Àç Çϳª ´ëºÎºÐ ANSI - C Ç¥ÁØÀ» µû¸£°í ÀÖ½À´Ï´Ù. ¶ÇÇÑ Linux ½Ã½ºÅÛ ÇÁ·Î ±×·¡¹Ö Ç¥ÁØÀ» À§ÇØ POSIX°¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù.

C++´Â ÇöÀç OOP ¶ó´Â Æз¯ ´ÙÀÓÀ» ±¸ÇöÇÏ´Â µ¥ À־ °¡Àå ³Î¸® »ç¿ëµÇ°í ÀÖ´Â ÇÁ·Î±× ·¡¹Ö ¾ð¾î¶ó°í »ý°¢ÇÕ´Ï´Ù. ¶ÇÇÑ Microsoft»çÀÇ Á¦Ç° ±ºµéÀÌ ¸ðµÎ MFC¶ó´Â °­·ÂÇÑ Å¬·¡½º ¶óÀ̺귯¸®¸¦ Á¦°ø ÇÏ°í Àֱ⠶§¹®¿¡ ¸Å¿ì Àαâ ÀÖ´Â ¾ð¾îÀÔ´Ï´Ù. C¸¸Å­À̳ª ¸¹Àº ÄÄÆÄÀÏ·¯ °¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. Linuxȯ°æ¿¡¼­´Â GNU g++°¡ °¡Àå ÀϹÝÀûÀÎ ÄÄÆÄÀÏ·¯·Î ÀÌ¿ëµÇ°í ÀÖ ½À´Ï´Ù.

Àúµµ ½ºÅ©¸³Æ® ¾ð¾î¿¡ ´ëÇؼ­´Â ¸¹Àº Áö½ÄÀ» °®°í ÀÖÁö ¾ÊÁö¸¸, ÈçÈ÷ °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦ ÀÛ ¼ºÇϱâ À§Çؼ± shell script¿Í PERL½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇÕ´Ï´Ù. PERLÀº ¶ÇÇÑ shell½ºÅ©¸³Æ® º¸ ´Ù ÈξÀ ¸¹Àº built-in ¸í·É¾î¸¦ °¡Áö°í ÀÖÀ¸¸ç, ÅؽºÆ® Á¦¾î¿¡ ¸Å¿ì °­·ÂÇÑ ±â´ÉÀ» Á¦°øÇÕ´Ï ´Ù. ¶ÇÇÑ Ç³ºÎÇÑ ¶óÀ̺귯¸®µéÀº PERLÀ» ½ºÅ©¸³Æ® ¾ð¾î ¼öÁØÀ» ¶Ù¾î³ÑÀ» ¼ö ÀÖ°Ô µµ¿ÍÁÝ´Ï ´Ù. ±×¸®°í À§ µé ½ºÅ©¸³Æ® ¾ð¾îµéÀº CGI ÇÁ·Î±×·¡¹Ö¿¡¼­ ÀÚÁÖ ÀÌ¿ëµÇ°í ÀÖ½À´Ï´Ù.

À¥ °³¹ßȯ°æ¿¡¼­´Â »õ·Î µîÀåÇÑ ½ºÅ©¸³Æ® ¾ð¾î°¡ ¹Ù·Î PHPÀÔ´Ï´Ù. °­·ÂÇÑ ÅؽºÆ® Á¦¾î ±â´É »Ó¸¸ ¾Æ´Ï¶ó À¥ ¼­¹ö°¡ Á÷Á¢ parsing Çؼ­ ó¸®ÇÑ´Ù´Â Á¡ÀÌ ÀÌ PHPÀÇ ÀåÁ¡À̱⵵ ÇÕ´Ï ´Ù. (¼Óµµ Ãø¸é¿¡¼­ Á» À¯¸®ÇÑ °Í °°´õ±º¿ä) ±×¸®°í CGI ¹× µ¿Àû À¥ ȯ°æÀ» À§ÇØ Á¦°øµÇ´Â ¸¹Àº ¶óÀ̺귯¸®¿Í, µ¥ÀÌÅͺ£À̽º º°·Î Á¦°øµÇ´Â Interface SetÀº ¸Å¿ì °­·ÂÇÑ ÈûÀ» ¹ßÈÖ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ °³ÀÎÀûÀÎ ÆÇ´ÜÀ¸·Î º¸¾ÈÀûÀÎ Â÷¿ø¿¡ ¹®Á¦°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù°í »ý°¢µË´Ï ´Ù.

À̹ۿ¡µµ Àú´Â Áö±Ý±îÁö ÇÁ·Î±×·¡¹ÖÀ» ÇØ¿À¸é¼­ ¸î °¡Áö ¾ð¾î¸¦ ´õ »ç¿ëÇØ º¸±ä ÇßÁö¸¸ ¿©±â¼­ ¾ð±ÞÇÒ ¼öÁØÀÌ ¾Æ´Ï¶ó°í »ý°¢ÇÕ´Ï´Ù. ´Ù¸¥ Àǹ® »çÇ×ÀÌ ÀÖ´Ù¸é, ysjoo@lgeds.lg.co.kr·Î ¸ÞÀÏÀ» ÁÖ½Ã¸é ¾Æ´Â ¹üÀ§ ³»¿¡¼­ ¼º½ÇÇÏ°Ô ´äº¯ÇØ µå¸®°Ú½À´Ï´Ù.