Page 9 -
P. 9

1.1         기본 프로그래밍 모델                                     ALGORITHMS              1




                                                                                                         기초 개념




                     이 책의 알고리즘 학습은 자바 프로그래밍 언어를 이용해 알고리즘을 실제 프로그램으로 구현하면서
                     이루어진다. 이렇게 하는 이유는 다음과 같다.

                       • 프로그램은 간명하고, 우아하며, 완전하게 알고리즘을 기술할 수 있다.
                       • 프로그램을 실행해 봄으로써 알고리즘의 속성을 공부할 수 있다.
                       • 알고리즘을 실제 프로그램에 바로 응용할 수 있다.

                     특정 프로그래밍 언어를 사용함으로 인해 문제가 있을 수도 있다. 예를 들어 알고리즘에 대한 아이디
                     어 자체와 그 구현 방식을 분리하기 어려울 수 있다. 이 문제를 피하기 위해 현대의 프로그래밍 언어
                     들 대부분에서 공통으로 사용되고 있으면서, 알고리즘을 기술하는데 적합한 언어적 요소들을 이용하
                     여 알고리즘을 구현했다.

                     이 책에서는 자바 언어의 아주 적은 부분만 이용하고 있다. 다음에 설명될 이 책에서 사용한 자바 언
                     어 기능 목록을 보게 되면 자바의 극히 일부 기능만 사용하고 있고 다른 프로그래밍 언어에서도 공통
                     으로 사용되는 기능들임을 알 수 있을 것이다. 이 책에서 제공하는 코드는 자기 완결적이다. 이 책은
                     독자가 북사이트에서 코드를 내려받아 시험용 데이터(북사이트에서 제공된 것이든 직접 만든 것이
                     든)를 입력해서 실행해 보기를 기대한다.

                     이 책에서는 프로그래밍 언어의 기능들과 소프트웨어 라이브러리 그리고 운영체제(O/S) 기능들과
                     같이 알고리즘의 구현과 기술에 필요한 것들을 프로그래밍 모델로서 설명하고 있다. 이 절과 1.2
                     절 에서 이 프로그래밍 모델 전체를 설명하고 있다. 이 절들은 이 책의 코드를 이해하는데 필요한
                     정보들을 담고 있는 독립적인 절들로 다른 서적인 <An Introduction to Programming in Java: An
                     Interdisciplinary Approach>에서 나왔던 내용을 좀 더 압축한 것과 같다.

                     참고용으로 사용할 수 있도록 다음 페이지에서는 이 책의 프로그래밍 모델에서 사용된 자바 언어의
                     기능들을 한 장으로 개괄하고 있다. 이 코드는 자바 언어의 기능을 설명할 때는 사용되지만 53페이
                     지의 알고리즘 설명과 같이 세세한 부분에서는 다소 다를 수 있다(53페이지에서는 고전적인 이진 탐
                     색 알고리즘이 적용된 화이트 리스트 필터링 애플리케이션과 그 테스트 코드를 구현하고 있다). 이
                     책에서는 독자가 현대의 프로그래밍 언어 중 어느 하나라도 이미 경험이 있는 것으로 가정한다. 그러

                     한 독자라면 이 책에서 사용된 자바 언어의 많은 부분이 이미 낯설지 않을 것이다. 독자의 편의를 위
                     해 자바 언어에 대한 참조를 쉽게 할 수 있도록 코드의 필요한 부분마다 자바 언어의 해당 기능이 설
                     명된 페이지 번호를 표시하고 있다. 이 책의 코드들은 특정한 스타일을 가지고서 자바의 관용어나 코
                     드 구문을 사용하고 있기 때문에 자바에 익숙한 독자라도 이 절을 읽어 보는 것이 좋다.






                                                                                              021
   4   5   6   7   8   9   10   11   12   13   14