이 블로그는 방문자 통계를 위해 티스토리 기본 기능과 Woopra를 사용합니다. 원하지 않으신다면 사용하시는 웹 브라우저에 내장된 DNT 헤더를 켜고, JavaScript를 끄셔도 무방합니다.
이 블로그 방문자의 약 60%는 네이버 검색을 사용하십니다. 을 이용하시면 더 유용한 정보를 쉽게 얻게 되실 수도 있습니다. [mediatoday]
« 2018/04 »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
블로그 이미지
제가 주제인 블로그... 그냥 주제 없는 블로그입니다. 전공 분야나 예전 관심 분야 등등에 관한 글이 우선입니다만, 두어 문단을 넘길 만한 글이라면 대강 정리해 기록합니다. 학부생입니다. 트위터에서 볼 수 있습니다. http://aurynj.net/ 어­리


Programming: Problem-Solving Process.

Sablog Models/알고리즘 | 2009.05.03 00:08 | Posted by 어­리

블로그를 시작하면서 내용이 담긴 첫 글.

컴퓨터 프로그래밍이란 일반적으로,

  • 특정한 프로그래밍 언어를 이용해
  • 하나 이상의 추상적 (수학적) 알고리즘 또는 프로세스를 (프로그램을)
  • 구체적인 (실행 가능한) 형태로 구현

하는 과정을 의미한다. 이를 하나씩 짚어 보자... 프로그래밍이 포함하는 과정은 크게 두 가지이다.

첫째로 문제를 파악하고 사용 가능한 알고리즘을 선정하여 조직하는 단계이다. 프로그램도 존재 목적이 있다. 적당한 플랫폼상에서 일정한 역할을 수행하기 때문이다. 이것은 시스템의 특정 부분을 예정된 대로 변화시킨다. 이것을 프로그래밍의 의도로 볼 수 있다. 이 의도를 실행시키기 위해서는 논리적인 문제 해결 절차가 필요하다. 결국 프로그래밍에서는 코딩의 전 단계에 수학적 문제 해결 과정이 들어 있는 것이다. 다시 말해 프로그래머는 자신이 짜야 하는 프로그램(목적)을 파악해, 소스 코드로 바꿀 수 있는 수학적 계획의 형식으로 조직할 필요가 있다. 일종의 일반화이다.

둘째로 조직된 알고리즘을 소스 코드로 변환하는 단계이다. 이 작업이 대개 코딩이라고 불린다. 알고리즘이 좋아도 컴퓨터가 읽을 수 없으면 무용지물이므로, 프로그래머는 일반해법을 적당히 바꾸어 컴퓨터에 넣어 준다. 그래야 비로소 컴퓨터가 명령을 수행할 수 있는 것이다. 여기에서 특정한 프로그래밍 언어가 쓰이게 되며, 프로그램의 많은 부분이 결정된다. 대체로 둘째 단계는 첫째 단계에 비해 수단에 불과하다는 인식이 강하지만, 당장 몇 가지 언어를 접하게 되면 다른 생각을 가질 수 있다.

아무튼 굉장히 간단해 보이는 두 단계이지만, 아마추어가 프로그래밍을 이렇게 분리해 생각하기는 어렵다. 정보 올림피아드에 대비하지 특별히 않은 초보 프로그래머들은 대회에서 당혹감을 겪는다. 초보 프로그래머에게 첫 번째 단계는 거의 없는 것이나 마찬가지인 반면에, 정보 올림피아드 대회에서는 첫 번째 단계가 매우 중요하다는 점 때문이다. 현재 많은 큰 프로젝트들이 컴포넌트 단위로 프로젝트로 진행되며, 오픈 소스로 웹 상에서 코딩이 이루어지는 것도 많다. 이런 프로젝트에서 첫 번째 단계는 특히 더 중요해진다. 한편, 두 번째 단계에 대한 지식도 함께 갖고 있어야 일이 제대로 진행될 수 있다.

영 필요 없는 소리만 열심히 하고 있군. 블로그의 미래가 굉장히 걱정된다.

티스토리에서 시작!

System Idle Talks | 2009.04.14 23:20 | Posted by 어­리

네이버에서 블질을 하고 있긴 하였으나 거긴 헛소리 창고로 활용중. 여기서는 좀 정상적으로 살아 볼 생각이다. 하하하하하하하하하하하하하

.... 여기도 정상으로 만들기는 힘들 듯.

어쨌거나 블로그에 글이라도 남기지 않는다면 나중에 보기에 너무 섭섭하기 때문에. 생각나는 대로 쓴다. 시작.