JCF TEAM BLOG

관리자 글쓰기
블로그 »
블로그 »

KSUG에 좋은 글이 있어서 소개하고자 합니다.

최근 다수의 회사들이 생산성, 재사용성, 유지보수성, 품질보증 등 자사의 애플리케이션을 견고하게 하고 아웃소싱을 통해 개발되는 애플리케이션을 수치화, 정량화된 데이터를 통해 통제하고자 전사 표준 프레임워크를 구축하거나 도입하고 있습니다. 이와 같이 전사 표준 프레임워크를 구축하고 도입하는데 있어서 고려해야 할 사항들에 대하여 잘 정리하고 있습니다. 저희가 새롭게 시작하고자 하는 일에 많은 도움이 되는 내용들이 있어서 나름대로 느끼는바가 많습니다.

그럼 시작...

어느 정도 규모가 있는 소프트웨어 관련 회사라면 생산성, 유지보수성을 높이고 개발자의 학습비용을 줄이기 위해 전사 표준 프레임웍을 도입하고 있습니다. 그리고 잘 아시듯이, 그런 프레임웍들은 대부분 자바의 오픈소스 프레임웍들의 기반으로 해서 추가, 확장 개발되어 있습니다. 그동안 제가 몇 개의 전사표준 프레임웍을 접하면서 최종 어플리케이션 개발자로써 가지게 된 생각을 정리해 봅니다.

  아래 내용은 어느 특정 회사의 프레임웍에만 초점을 두고 있는 내용은 아닙니다. 구체적인 코드의 예까지 들고 싶은 내용도 있지만, 여러 프레임웍에 해당하는 내용일지라도 공개적인 웹사이트에 그렇게 자세한 내용을 올릴 수 있는 전사표준 프레임웍은 오픈소스정책을 펴고 있는 애니프레임 밖에 없습니다.  그래서 지나치게 특정 프레임웍의 대한 비판으로만 해석될까봐 코드 예시는 이 글에는 포함시키지 않았습니다.


  첫째, 기존 오픈소스가 제공하는 있는 기능을 중복구현하거나 감싸서 개발할 때는 그 의도를 어플리케이션 개발자에게 알려야 합니다. 오픈소스에서 유사한 이런 것이 있는데, 이런 이유 때문에 따로 작성했다던지, 래핑을 시켰다는 것을 명시해 두면 어플리케이션 개발자들이 그 모듈을 활용하는 할 때 도움이 될 것입니다.


more..


  둘째, 사내에서 만든 기존 모듈도 지속적으로 개선하고, 때로는 과감히 버릴 수도 있어야 한다고 생각합니다. 기존 모듈의 가치를 지나치게 높게 평가하지 않고, 인터페이스와 구현을 끊임없이 재검토 되어야 합니다. 팀 내에서 높은 직급의 사람이 만들었던 코드라도 마찬가지어야 할 것입니다.

 

more..


  셋째, 프레임웍의 개발단계에서도  결정사항과 주요 설계의 의도들에 대한 것들은 문서로 남겨지고 공유되어서, 어플리케이션 개발자들의 피드백을 받아야 한다고 생각합니다. 보통 모듈 공개 이후에 개발자들이 웹단의 프레임웍 선택 기준이라던지, 모듈의 설계에 대해서 많이 문의를 합니다.  그 때도 답변 담당자가  검토과정을 알지 못하면 상세한 대답을 하기가 어려울 것입니다. 'XX 프레임웍은 검토했던 담당자가 지금 여기에 없어서 저도 자세히는 모르겠네요. '라거나 '지금은 그 때 그 모듈을 작성했던 개발자가 없어서 확실히는 모르겠으나, 제 추측으로는...'라는 내용이 포함된 답변을 본적도 있습니다. 프레임웍 개발팀 내부의 업무 인계나 개발자들의 반복적인 문의를 잘 처리하기 위해서라도 그런 내용의 정리, 공유는 필요합니다. 그리고 그런 문의들은 결정사항이 확정된 후에 그것을 돌이킬 수 없을 때가 아닌, 검토 과정 중에서 받아서 실무 개발자들의 경험을 충분히 활용하고 더 많은 사람들의 지식을 모을 수 있어야 합니다.

 

more..


  넷째,  배포되는 모듈과 샘플들은  최종 확정 전에 엄격한 설계 검토와 코드리뷰가 이루어 져야 합니다.

 

more..

  다섯째, 프레임웍을 현장에서 적용할 때 선택할 수 있는 사안들이 유연하게 제공되고, 각각의 장단점과 선택의 기준등이 제시되었으면 좋겠습니다. 전사표준 프레임은 개발자들을 가두어 두는 벽이 되어서는 안 되고, 든든하게 딛고 뛸 수 있는 바닥이 되어야 할 것입니다. 그래서 그런 프레임웍에 모듈의 조합이나 설정 파라미터 등에 있어서 다양한 선택이 존재하는 것은 당연한 일입니다. 그러나 각 프로젝트마다 많은 선택의 조합들을 다 검토할 수 있는 여력이 안 되고, 구체적인 선택기준이 없다면 오히려 그런 선택의 폭들은 짐이 됩니다. 프로젝트에서 목소리 큰 사람의 의견대로 흘러가서 동의하지 못하는 구성원들이 생긴다면 갈등의 소지까지도 될 수 있겠습니다.

 

more..


  여섯번째, 오픈 소스 프레임웍을 매개로 조직의 경계를 넘어선 공동작업을 시도해 보아야 한다고 생각합니다. 회사와 업계를 막론하고 Java 오픈소스 기반의 프레임웍들은 많이 쓰이고 있습니다. 그래서 많은 조직들에서 같은 고민들을 조직마다 따로 동시에 하고 있을 것으로 추측됩니다. 이런 상황에서 적용사례, 활용팁, 문제해결 사례, 프레임웍 간 비교검토 결과 등의 자료 공유와 코드 공유, 공동의 교육과정 개설 같은 일이 이루어 질 수 있다면 상호이익이 될 것입니다. .

 

more..


  지금까지 나온 내용을 정리해보면 다음과 같습니다. 오픈소스 모듈을 래핑하거나 중복된 기능을 구현할 때는 의도를 개발자에게 알리고, 기존 모듈에 대해서도 개선을 해나가면서 때로는 과감히 범용적인 모듈로 교체할 수 있어야 합니다. 그리고 개발과정 중에서도 주요 결정사항과 설계안을 공유해서 피드백을 받고, 최종배포 전에는 설계안과 코드를 엄격하게 검증해야 합니다. 그리고 배포 후에는 유연한 선택 사항들과 구체적인 선택 기준을 제공하는 적용가이드를 제공하고, 회사 조직의 경계를 넘어선 협업도 모색해 보는 것이 좋습니다.

  이런 것들을  이루는데 기술적으로는 스프링 프레임웍이 든든한 토대가 되어줄 것은 확실합니다. 잘 아시는 것처럼  유연한 구조로 인한 확장성, Spring portfoilo에 서 제공하는 폭넓은 기능의 모듈들, 빠른 발전 속도와 안정된 하위호환성, 그리고 세계적으로 많은 사용자로 인한 튼튼한 사용자 층 등이 그 이유입니다. 그리고 스프링프레임웍의 공식포럼들을 이용해서 외국개발자들과도 정보를 주고 받음과 동시에 우리 KSUG(http://forum.ksug.org )의 포럼을 통해서도 조직의 벽을 넘어서서 성과물 공유를 할 수 있을 것입니다.

원문보기

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/07/23 10:33 2008/07/23 10:33

(go to top)