검수요청.png검수요청.png

프로젝트

해시넷
이동: 둘러보기, 검색

프로젝트(project)란 제한된 기간 안에 한정된 자원으로 목표하는 일을 완수해야 하는 작업을 말한다.

개요[편집]

프로젝트는 일반적으로 네 가지 특성을 가지고 있다. 첫 번째는 유일성이다. 프로젝트 결과물은 이전 다른 프로젝트를 통해 똑같은 결과물이 나온 적이 없는 유일한 것이다. 보통 이전에 똑같은 목표를 가지고 똑같을 결과물을 만들어낸 사례가 없다. 만일 있었다면 복사해서 사용하거나 구매해서 사용하지 복잡한 과정을 거쳐 새로 만들 필요가 없을 것이다. 두 번째는 일시성이다. 프로젝트는 시작과 끝이 분명한 특성을 가지고 있다. 예를 들어 일정 관리 프로그램은 오늘부터 다음달 10일까지라는 정해진 기한을 가지고 있으며 이를 지키지 못할 경우 불이익을 받는다. 세 번째는 목적성이다. 프로젝트는 반드시 달성하고자 하는 목적을 가지고 있다. 예를 들어 일정 관리 프로그램은 직원의 일정 관리를 편하게 돕고 전사적으로 통합 관리한다는 목적을 가지고 있다. 마지막으로 프로젝트는 점진적으로 상세화된다. 프로젝트는 처음에는 추상적이었다가 시간이 지나면서 점차 구체화되는 특징을 가지고 있다. 처음에는 머릿속에 대충 '이런 기능이 있으면 좋겠구나' 하는 생각만 가지고 있다가, 기획설계 단계를 거치면서 하나씩 구체화된다. 소프트웨어 분야 외에도 다양한 분야에서 프로젝트를 발견할 수 있다. 사실 프로젝트의 개념이 먼저 정리되고 구체화된 분야는 건축토목 분야이다.[1]

생명주기[편집]

프로젝트는 발주사에서 프로젝트 기획서라는 기업 내부 문서를 작성하면서 시작된다. 이 문서의 목적은 프로젝트를 왜 해야 하는지에 대해 경영진을 설득하는 것이다. 그 다음 제안요청서를 작성해서 전문 업체에게 회사가 원하는 바가 뭐고 얼마의 금액을 지불할지 알려 준다. 제안사는 제안요청서를 보고 자신이 프로젝트를 어떻게 수행할지 알려주는 제안서를 발주사에 제출한다. 회사는 합리적인 가격에 프로젝트를 누가 잘 수행할지 결정해서 업체를 선정하고 계약하게 된다. 프로젝트에 대한 계약이 완료되면 프로젝트 관리를 위한 준비를 하게 되는데 수주사는 이에 대한 계획을 프로젝트 관리 계획서라는 문서에 담아 발주사에 제출한다. 프로젝트 관리계획서에는 비용을 어떻게 쓰고 인력관리를 어떻게 할 거며 시간을 어떻게 나누어서 관리할지에 대한 상세한 계획이 들어가게 된다. 프로젝트를 본격적으로 진행할 때 가장 먼저 하는 것이 요구사항 분석이다. 고객이 무엇을 원하는지를 제안요청서, 제안서, 그리고 업무에서 사용하는 문서를 분석하고 고객과의 인터뷰를 통해 알아낸다. 이제 프로젝트 설계 단계로 넘어가는데, 요구사항에 기초해 프로그램을 개발하기 위한 필수적인 프로세스, 인터페이스, 데이터 설계서를 만든다. 프로젝트 개발은 설계서를 기반으로 프로그래머가 프로그램을 코딩하는 단계다. 개발자가 코딩하고 설계자가 검토하는 과정 속에서 설계서의 오류가 하나씩 수정되면서 설계서의 품질이 높아지고 프로그램이 하나씩 완성된다. 개발이 완료됐다면 고객과 함께 테스트를 통해 프로젝트의 목적에 알맞은 프로그램이 개발되었는지를 검증한다. 이 단계가 완료되면 프로젝트가 종료되고 수주사에게는 비용이 지불된다. 실질적으로 프로젝트는 마무리된다. 다음 단계부터는 엄밀히 말해 프로젝트보다는 시스템 운영이라고 하는 게 정확하다. 하지만, IT 관련 업무를 위해 프로젝트라는 틀을 사용하는 것이 이해를 돕기 쉽다. 운영 단계에서는 시스템의 안정적 운영을 위해 기존에 있는 운영 체계(모니터링, 백업)와 결합된다. 프로그램은 지속적으로 개선되고 추가된다. 최초 개발 후 일정 시간(약 5년 정도)이 지나면 시스템은 점차 노후화되기 시작된다. IT 환경도 변화되고 비즈니스 환경도 바뀌게 된다. 이때 담당자는 시스템을 개선해서 계속 사용할지 아니면 폐기하고 재개발할지 결정하게 된다.[1]

종류[편집]

IT 업계에서 프로젝트는 각 산업분야별로 프로젝트 특성과 종류들이 다 다르다.

  • 은행 프로젝트 : 보안 위협을 최소화하기 위하여 검증된 기술만 사용한다. 또한 기술보다 업무 처리가 더 중요하고 창의적인 기술개발보다는 안전성을 최우선으로 한다. 그리고 쉽게 유지보수 할 수 있어야 하기 때문에 코드가 깔끔해야 한다. 새로운 기술을 쓰지 않지만, 여러 기술 분야의 체계성을 배우기 좋다. 그래서 경력자를 선호한다.
  • 보험사 프로젝트 : 구현 업무가 대부분 10년 이상 장기 상품들이다. 신상품 같은 경우 과거 상품들과 조합 재배치하는 경우가 많다. 금융업무에 관심이 많은 개발자라면 해볼만 하다.
  • 공공부문 프로젝트 : 규정(보안 등)을 준수하는 개발이 중요하다. 또한 은행 프로젝트와 같이 재기발랄하고 창의적인 분야는 거의 없다. 공공부문 프로젝트는 항상 편의성이 우선이다. SI 프로젝트 중심이며 기술습득이 빠르고, 여러 가지 기술을 배우기에 좋다. 폭넓게 기술 전반을 이해하기 좋다.
  • 이통사 내 부가서비스 프로젝트 : 362*24 서비스가 기본이다. 그리고 배포된 단말을 고칠 수 없기 때문에 대부분 서버 중심의 기술 환경이고 래거시(기존 시스템)가 많아서 시스템 간 연동이 많다. 그래서 동일 개발언어(Java Spring 등)를 선호한다. 서버 개발 기술(API, 연동, 통신 등)을 마스터하려면 이통사 프로젝트를 해보길 추천한다.
  • 웹포털 프로젝트 : 고객 화면의 중요성이 크기 때문에 프론트엔드 기술이 중요하다. 트렌드를 따라가는 서비스가 많아서 빠른 오픈을 선호하여 기술 난이도가 높지 않고, 기존 소스나 모듈의 재활용도가 높은 편이다.
  • 스마트폰 앱기반 프로젝트 : 서버와 클라이언트로 기술이 나뉜다. 그런데 하나의 기능을 나누어서 구현해야 하기 때문에 이해해야 할 기술의 폭이 넓고 다양하고, 복잡하다. 새로운 기술을 배우고 싶어하는 개발자들이 도전해 볼 만하다.
  • 폰게임 프로젝트 : 대작게임은 1년 정도의 개발이고, 대부분 3개월 개발 1개월 정도 반짝한다. 이 분야는 개발자 개인의 능력에 많이 좌우되고 실패율도 높다. 온라인 게임보다는 단독형 게임이 주류라 클라이언트 개발이 대부분이다. 서버 기술을 배울 기회가 많지 않다.
  • 대형 온라인 게임 프로젝트 : 기획도 좋아야 하고 개발도 체계적으로 해야 한다. 분업화가 잘 되지 않는다면 성공적으로 런칭하기도 힘든 분야 중 하나이다. 또한 다른 프로젝트에 비해 상당한 자금이 필요한 분야이다. 빠른 통신과 동접 처리, 게임 엔진 등이 중요하다. 폐인 기질이나 스스로 천재라고 생각하는 개발자라면 도전해 볼 만하다.
  • 솔루션 프로젝트 : 스펙과 제품 전략이 중요하다. 기능 하나하나가 수익과 밀접하므로 기능 하나 쉽게 더하기 힘들다. 최적화와 다양한 시험 케이스가 매우 중요한데, 한 번 출시되면 AS하기 힘든 경우가 많기 때문이다. 완성도 높은 개발을 어떻게 하는지 알고 싶은 개발자라면 도전해 볼 만한다.
  • ERP 프로젝트 : 회사마다 조금씩 다를 뿐 업무가 정형화되어 있다. ERP 패키지를 주로 사용한다. 하지만 기술적 도전이나 성취감은 낮은 편이다. 그렇지만 기업이 어떻게 돌아가는지 잘 이해하게 된다. 한 번 참여해 보게 되면, 자기 회사를 할 때 매우 큰 도움이 된다. 또는, 전산실을 노린다면 도전해 볼 만하다.[2]

사례[편집]

배틀그라운드[편집]

배틀그라운드펍지㈜(Pubg)가 개발하고 공급과 서비스는 ㈜크래프톤(Krafton)이 담당하고 있다. 배틀그라운드 출시 전 두 회사는 그리 큰 규모의 회사가 아니었다. 몇 가지 게임을 출시는 하였지만 큰 성과를 거두지 못하였고 서비스 종료하는 게임들도 있었다. 하지만 배틀그라운드 출시 후 대기업 수준으로 회사가 커진 케이스이다. 배틀그라운드의 성공 요인 중 하나는 기존 게임 흥행 공식을 따르지 않는 참신성이다. 배틀그라운드는 배틀로얄 방식으로 진행된다. 배틀로얄이란 고립된 장소에서 다수의 인원이 무작위로 싸우며 최후의 1인을 가리는 상황이다. 배틀로얄 방식에서는 상대방을 죽이는 것 못지않게 하나뿐인 내 목숨을 지키는 것이 중요하다. 이러한 참신한 아이디어로 인해 현재 전 세계 총싸움 게임 주류는 배틀로얄 장르로 넘어가는 추세이다. 두 번째 성공 요인은 글로벌 협업 프로젝트와 에자일(Agile) 전략이다. 에자일 전략이란 짧은 주기의 반복 실행을 통해 변화에 적극적으로 대응하는 것으로 정의할 수 있다. 배틀그라운드 개발 및 유통 단계에서부터 글로벌 협업 프로젝트와 에자일 전략을 적극 활용하여 수많은 변화에 적극적으로 대응하였다. 그리고 국적이나 유명세와 관계없이 전 세계의 개발자들을 발굴하여 프로젝트의 완성도를 높였다. 또한 글로벌 협업을 거치면서 특정 지역색이 옅어져 어느 지역에서든 받아들일 수 있는 장점이 되었다. 세 번째 성공 요인은 인플루언서 마케팅을 활용하였다. 게임의 기본적인 골격을 만든 뒤 개인방송 플랫폼인 트위치 방송 진행자(스트리머) 128명에게 공개 테스트를 부탁하였다. 회사가 제공한 맞춤 설정을 통해 스트리머는 독특하고 재미있는 방송을 만들어 시청자 유입 효과를 얻었다. 회사 역시 게임 홍보 효과를 누리게 되었다. 이러한 마케팅을 통하여 보는 게임으로 초점을 맞추었는데 보는 게임은 곧 해 보고 싶은 게임이 되기 때문에 마케팅 효과를 두 배로 얻을 수 있었다.[3]

각주[편집]

  1. 1.0 1.1 멀티코어, 〈프로젝트란 무엇인가〉, 《티스토리》, 2018-11-13
  2. IT 프로젝트 종류와 특징〉, 《IT의 중심에서》, 2013-01-23
  3. manga0713, 〈배틀그라운드 성공요인〉, 《티스토리》, 2018-07-26

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 프로젝트 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.