Creative Commons License

Software Dev

프로그래밍기본
객체지향
프로젝트관리
알고리즘
데이타베이스

소프트웨어 개발에 필수적이고 필요한 주제에 대한 강의 및 공유

.

알고리즘

주어진 문제를 효과적으로 해결하기 위한 문제해결논리에 대해 다룹니다

알고리즘 메뉴를 개설하며...

작성자 : 박종명
최초 작성일 : 2010-03-19 (금요일)
최종 수정일 : 2010-03-19 (금요일)
조회 수 : 3208

어찌보면 개발자로써 해야 할 일이 참 많다는 생각을 해 봅니다

일단 프로그래머로써 기본적으로 프로그래밍 언어를 한 두가지 정도는 잘 알고 있어야 하겠죠
프로그래밍 언어는 기본 언어 문법 숙지는 물론이거니와 윈도우 응용, 웹 응용, 네트워크 등 환경에 따른
확장 기술도 깊이 있게 공부해야 합니다

데이타베이스운영체제웹 서버와 같은 미들웨어 등 프로그램이 돌아가기 위해
연동되는 서버나 미들웨어 같은 플랫폼에 대한 지식도 갖추어야 하며,

객체지향에 대한 개념과 설계 원칙도 알아야 하며
객체 모델링 언어인 UML 도 다룰 수 있어야 하고 객체 구조의 효과적인 설계를 위한 디자인 패턴은 물론
프로그램과 그 프로그램이 돌아가는 환경까지 고려한 엔터프라이즈 패턴도 숙지해야 하며

프로그램 요구부터 출시까지의 생명주기를 효과적으로 관리하기 위한 각종 개발방법론도 공부하고
적용해봐야 하며 문제해결을 위한 최적의 절차를 찾는 알고리즘도 공부해야 합니다

그리고 SubVersion, NUnit, 형상관리 등 각종 개발 관련 툴(Tool) 사용법도 숙지해야 합니다

하나하나가 그 학문적 깊이가, 깊이 들어가면 갈수록 장난이 아니죠

게다가 웹 환경을 무시할 수 없으니 이것도 알아 두어야 하며, 모바일 환경 역시 필수적으로 알아 두어야 할
플랫폼으로 이러한 환경에 대한 응용기술들을 익혀 두는 것 역시 빼 놓지 못하겠습니다

웹(Web)만 해도 얼마나 많은 응용기술이 있습니까? 게다가 표준 웹 지향하려면 또 더 알아야 합니다
모바일 환경의 웹은 어떻구요? 모바일 앱도 특징을 알아야 합니다

참... 많네요

물론 위에 나열한 모든 기술들을 빼곡히 그리고 속속히 다 알아야 하는 것은 아닐테지만
적어도 어느정도는 알고 있어야 지속적으로 상향 성장이 가능하지 않을까 합니다
(단, 한/두가지 핵심 기술은 철저히 알고 있어야 합니다)

그러나 알고리즘은 조금 다릅니다

어떤 언어를 쓰던 어떤 플랫폼에서 구현하던 간에 알고리즘은 필수학문이라 생각합니다

모든 환경에서 주어진 문제는 있고 이것을 해결해야 하는 과정은 다 있는 것이니까요

퀵 정렬, 최단 경로 찾기 등 현재까지 많이 연구되고 알려진 많은 알고리즘이 있습니다
그리고 좋은 알고리즘을 만들기 위해 기반이 되는 구조적 학문(자료구조)도 있습니다

그리고 말 그대로 '주어진 문제'를 푸는 과정도(그게 어떤 문제이건) 알고리즘이라 할 수 있습니다

이 메뉴를 통해 그간 공부했던 알고리즘을 체계적으로 정리하는 기회를 가지려고 하며
닷넷 언어를 통해 알고리즘을 구현해 보고 간단하지만 논리를 요하는 각종 문제를 풀어가면서
문제해결력을 높이려 하는 것이 메뉴를 만든 계기입니다

게을러서, 그리고 아는게 많지 않아서 잘 될진 모르겠지만 일단 메뉴부터 저질러 봅니다 ^^

시작이 반이라죠?
뇌 과학 측면에서도 일단 일을 시작하면 집중할 수 있도록 생체 리듬이 조정된다고 하더라구요...

이름
비밀번호
홈페이지
IA <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요