2009년 11월 23일 월요일

프로젝트전에 개발 프레임워크는 꼭 준비해 두십시요.

프로젝트전에 개발 프레임워크는 꼭 준비해 두십시요.

프레임워크가 웹개발 프로젝트에서는 빠지지 않는 중요 요소이기는 하지만 "프레임워크가 무엇?"
이런 질문을 받게 되면 정의를 해주기 좀 어려운 부분이 있습니다. 왜냐하면 사용해 보기 전에는 그 존재와 가치를 알 수 없는 프레임워크의 특징이 있어서 그렇기도 하지만 프레임워크를 개발 소프트웨어의 일부분으로서 별도 모듈로 분리하기 어려운 점도 있어서 일 것입니다. 그러다 보니 프레임워크가 일종의 어려운 개념 설명으로 흘러 버리는 경향도 있는데 오늘은 이 프레임워크에 대한 정의와 필요성에 대하여 설명을 해볼까 합니다.

개발기술을 보게 되면 CGI , ASP , JSP 정도의 개발 방식이 주를 이루다가 PHP , COM+ , JAVA가 실무에 적용되었고 J2EE, .Net 등으로 진화, 최근에는 WEB2.0 의 하부 기술을 이루는 AJAX, RIA , XML 확장 등의 기술들이 있습니다. 그러다보니 개발 기술들이 많이 나와 선택의 폭이 넓어진 점이 있습니다.
 
다음과 같은 경우를 한 번 생각해 봅시다.
http 프로토콜을 따르는 웹개발이면 어떠한 개발 기술을 적용하든 동작이 가능하기 때문에 한편에서는 JSP만으로 프로그램 코드를 구성하고 다른 한편에서는 C# 으로 개발 또 다른 쪽에서는 JSP+Java 조합으로 개발을 하는 것이 가능합니다.  이렇게 해도 전체 시스템을 구성하는 데는 큰 문제가 없습니다. 이유는 기본 인터페이스가 http 이기 때문입니다.
하지만 이렇게 시스템을 설계, 개발하게 되면 어떤 문제가 있는지는 잘 알고 계실 것입니다.
*이러한 문제들에 대해서는 여기서 자세히 설명드리지 않겠습니다.

이러한 문제들에 대한 해결책으로, 아래와 같이 몇가지를 정해두고 개발 프로젝트를 진행하게 되는데,
개발 진행에 있어서의 규약을 정해 , 프로그램 코드에 대한 표준화를 이루는 것이 해결책이라는 것이지요.
이렇게 함으로써 개발자간의 협업이 가능하게 하고 유지보수단계에서의 비용을 낮출 수 있다고 보는 것입니다.

- UI 와 서버 프로그램은 분리 하도록 합시다.
- UI, 서버 개발 언어는 각각 하나로 합시다.
- 각 언어는 코딩가이드를 정해서 따르도록 합시다.
- 데이터베이스는 한군데서 처리 하도록 합시다.
- 로그는 특정 모듈에서만 출력합니다.

이렇게 규약을 정하는 것이 중요한 것이기는 하지만 규약의 형태로만 존재하게 되면 사실상 지키기가 무척 어렵습니다. 일정에 쫒기는 현실을 생각해 보면 이런저런 규약을 뒤져가며 개발을 하기보다는 자기가 잘하는 방법으로 그냥 하기 마련이기 때문입니다.

그래서 위의 예에서처럼 규약으로만 존재하지 않고 , 데이터베이스 모듈, 로그 모듈등을 만들고 인터페이스를 정해 프로그램 코드에서 이 인터페이스만을 사용하도록 한다면 규약을 따르는 좀 더 강력한 방법이 될 것입니다.
그래서 실무적으로는 이러한 규약들이 구현된 모듈들과 인터페이스를 프레임워크로 정의하는 것이 맞을 것 같습니다.

하지만 이런 프레임워크를 프로젝트 중에 개발 진행하기는 대단히 어렵습니다. 최근에는 스트러츠, 스프링등과 같이 잘 알려진 기본 프레임워크들이 나오고 있습니다. 개발관리 또는 프로젝트 관리를 해야 한다면 반드시 이러한 프레임워크의 중요성에 대하여 인식을 하시고 , 준비를 해 두시는 것이 좋을 것 같습니다.

향후로도 프레임워크는 애플리케이션 개발에서 매우 중요한 위치를 차지하게 될 것인데 이에 대하여는 Software House 란에 설명을 해보도록 하겠습니다.

댓글 없음:

댓글 쓰기