2015년 7월 29일 수요일

사용자 관점의 솔루션 개발 방법과 사례

소프트웨어 개발방법론을 사용하는 대부분의 프로젝트는 사용자의 요구사항을 받아 분석하고 설계한 후, 개발하는 프로세스로 진행된다. 개발방법론은 폭포수 모델에서 OO(Object Oriented) 개발방법론, CBD(Component Based Development) 개발방법론 등으로 계속 발전되었지만, 큰 형태는 요구사항 분석(Requirement Analysis), 분석(Analysis), 설계(Design), 개발(Development), 구현(Release)으로 구성되어 있는 폭포수 모델을 바탕으로 하고 있t습니다.
 이러한 개발방법론들은 어떠한 목적으로 만들어졌던 간에 납품(Delivery)형 소프트웨어를 위한 것으로 볼 수 있습니다. 그러다 보니 요구사항이 원하는 형태로 개발되는가 보다는 계약관계가 잘 이행되고 있는지에 더 초점이 맞춰져 있는 것이 사실입니다. 이러한 이유로 기존의 개발방법론은 대기업 위주의 SI(System Integration)형 프로젝트의 변화에 따라 발전했다고 봐야 할 것입다. 이와는 다르게, 중소규모의 솔루션(Solution)형 프로젝트는 개발자 위주로 개발되다 보니 개발방법론의 필요성 자체를 못 느낀 경우가 많았습니다. 하지만 소프트웨어를 더 체계적으로 개발해야 한다는 필요성은 예나 지금이나 소프트웨어를 개발하는 사람이라면 누구나 공감하는 얘기일 것입니다.

<사용자와 개발자 간의 비전 공유(기능적 측면)>

자세히 보기 →

‘얼랭(Erlang)’을 이용한 서버 프로그램 개발

MMORPG 엔진을 C, JAVA, Ruby, Python, 얼랭(Erlang)으로 개발하여 성능 테스트를 해보면,  얼랭이 상대적으로 퍼포먼스가 좋고, 코드의 양도 JAVA나 C언어에 비해서 3분의 1 수준으로 줄어들어 프로그래밍이 간단하다는 것을 확인할 수 있습니다.

특히, 다른 언어로 짜면 실제 로직과 코드가 달라져서 복잡해지는 부분이 있지만 얼랭은 그대로 표현할 수 있다는 점이 가장 큰 매력이라고 합니다. 아직은 우리나라에 생소한 프로그램 개발 언어인 ‘얼랭(Erlang)’을 2008년부터 사용해온 전문가 의견을 정리했습니다. 

자료 처리를 수학적 함수의 계산으로 취급하는 얼랭과 같은  함수형 프로그램 개발은(Functional Programming) 이해가 용이하기 때문에 개발 속도도 빠르다고 할 수 있습니다. 반면, 기존의 다른 프로그래밍 방식(즉,  상태와 가변 데이터에 중심을 두고 명령형으로 처리하는 개발)에 익숙하다면 얼랭을 사용할 때 어려움을 느낄 수 있습니다. 따라서,  편리하고 빠르며 효율 높은 얼랭을 이용하여 모바일 서버 프로그래밍을 자유자재로 하기 위해서는 부단한 연습만이 정법이 될 것입니다.

얼랭 Cowboy 처리 흐름도(자료: Cowboy 홈페이지)

웹 개발을 위한 효율적 테스트

  • 테스트가 중요한 이유
  • 테스트 구간에서 자주 발생하는 문제점들
  • 효율적 개발을 위한 테스트 팁
  • 발생 가능한 예외 상황에 대한 테스트 및 대응
  • 단위별 부하 테스트
  • 주기적인 시스템 모니터링
  • 다양한 환경에서의 테스트 수행
  • 화면 중심의 의사소통


 자세히 보기 →