본문 바로가기

Project

1. 개인 프로젝트 시작

*Target
Personal Software Engineering Study & Contemplating Future of Personal Program Development Framework

*Main Project Name
Automatic Market Analysis System for Personal Investor in Korea

*Process Model
1) Specification
2) Development
3) Validation
4) Evolution

*Detail Process
1) Requirement Engineering
2) Software Architecting
3) Software Design
4) Software Development
5) Test and Integration
6) Deployment
7) Operationalization and Maintenance

1. Motivation of Project
지금까지의 소프트웨어 개발은 컴퓨터 공학을 전공하거나 그에 준하는 지식을 가진 사람들을 위한 것이었다. 한정된 비용과 시간으로 신뢰할 수 있는 소프트웨어를 개발하고 운영하는 것에 대한 내용은 소프트웨어 엔지니어링에서 다루고있다. 시중에서 찾을 수 있는 소프트웨어 엔지니어링에 관한 정보는 기업규모에서 산업의 수요를 충족시키기 위해 고안된 것들이며, 개인의 수준에서 개인의 요구사항을 합리적으로 충족시킬 수 있는 프로세스를 찾기는 어렵다. 미디어의 창출이 중앙집중적인 방송사에서 개인 플랫폼인 유튜브, 트위치 등으로 넘어감과 같이, 우리사회는 개인의 주체성과 독립성이 확보됨에 따라 개인이 주체적으로 사업을 영위하고 수익을 창출할 수 있게 되었다. 이러한 흐름에 따라, 나는 자신만을 위한 소프트웨어을 개발 할 수 있도록 소프트웨어 엔지니어링 영역을 확장시킴과 동시에, 궁극적으로는 그러한 프레임워크나 플랫폼을 제공함으로서 서비스하는 것을 목표로 하고있다. 하지만 이러한 엔지니어링을 위한 케이스 연구가 부족하기 때문에, 여러가지 레퍼런스를 참고함으로서 시스템을 구축함과 동시에 우선적으로 개인을 위한 소프트웨어 엔지니어링 프로세스를 확립하는 과정을 시도하고자 한다.

2. Introduction of Main Project
최근들어 많은 사람들이 투자에 대한 관심을 보이고 있다. 개인들은 각자가 공부하고 상상한 방식으로 자신만의 투자 영역을 확립하고 투자기법을 구축해나가고 있다. 특히나, 자동화된 프로그램의 매매는 아마도 누구나 꿈꾸고 있는 이상적인 매매방식일 것이라고 생각한다. 따라서, 현 프로젝트의 첫 케이스 스터디는 자동화된 마켓 분석 시스템을 개발하는 것이다. 참고로 이 시스템의 응용소프트웨어는 인터넷을 통해 서비스하는 어플리케이션이 아닌 가정환경에서 동작하는 독립적인 프로그램의 형태로서 개발 될 것이다. 이러한 방식으로 개발되는 이유는 크게 몇 가지가 있다. 1)네트워크를 통해서 서비스를 구현하는 경우 네트워크 트래픽 과부하 예상 및 호스팅시 비용적 부담, 2)네트워크를 통할 시 보안적 요소 및 법적인 요소의 부담, 3)One-person을 위한 커스터마이징된 시스템이므로 다수 이용자의 불필요성.
시스템은 총 4개의 서브 시스템으로 구성될 예정이다. 1)마켓정보수집시스템, 2)마켓정보관리시스템, 3) 마켓정보분석시스템, 4) 시스템관리시스템
개발방식은 기본적으로 단계적 스텝으로 개발단계를 구성하되, 문서화는 최소화하는 방식으로 개발할 것이다. 아마도 Agile방식에 가까울 것이다. 개발과정에서 팀을 이루는 것을 전제로 하지 않기 때문에 공식적인 문서를 통한 공유는 필요하지 않다. 또한, 많은 개인들이 자신만의 개발방식을 생각하고 적용할 수 있는 유연성을 제공할 것이다.  
하드웨어나 소프트웨어 자원은 개인의 환경에서 극히 제한되므로, 일반적으로 개인컴퓨터 중급 사양의 컴퓨터에서 프로그램이 개발되고 실행될 것이다.