ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코딩전에 보자] 개발에 필요한 기반 시스템
    IT/소프트웨어 관련 지식 2024. 1. 26. 00:06

    기반 시스템(Infrastructure System)은 소프트웨어를 개발하는데 필요하거나 도움이 되는 시스템이다.

    필요한 기반 시스템과 꼭 필요한 것은 아니지만 있으면 도움이 될만한 기반 시스템을 정리해 보겠다.

     

    본격적인 개발을 들어가기 전에 이러한 사항들을 고려해보는게 좋을 것 같다.

     

     

    필요한 기반시스템
    • 소스코드 관리 시스템 

    흔히들 형상관리 시스템이라고 한다. 

    1. 개발 생상성에 도움을 준다. (진척도 및 공유)
    2. 보관 및 백업 기능 
    3. 수정이력이 남아서 문제시 원인 파악이 확실하다. (개발 과정의 투명성을 보장)
    4. 여러 버전의 개발을 할 수 있다. (기능을 분리해서 개발 가능하도록 해준다.)
    5. 문제시 손쉬운 복구 (빌드/복구가 미리 숙달되어 있어야 한다.)

    대표적으로 중앙 관리식으로는 SVN , 분산 관리로는 GIT이 있다.

    주의할 점은 소스코드 관리 시스템을 쓴다 해도

    만약을 대비해 정해진 루틴대로 물리적 장치에 백업을 해주는 것도 필요하다. 

     

    • 빌드시스템

    개발자 개인 PC의 IDE에서 하는 것은 배포를 위한 빌드가 아니라 '엔지니어링 빌드'이다. 

    여기서 말한 빌드시스템은 배포를 위한 빌드를 말한다.

    빌드시스템이 없다면 각자 다른 환경에서 빌드를 하게 되는데, 이는 빌드시 문제가 생겼을때 

    원인 파악이 힘들다. 그래서 빌드 전용 시스템이 필요하고 소스개발자 외에 관리자가 따로 있어야 한다.

    1. 공통 환경이기 때문에 관리가 용이
    2. 개발자의 업무가 분리됨(개발자는 소스를 소스관리 시스템에 추가하면 업무 끝)
    3. 소스만 있으면 언제든지 마스터 파일 생성 가능
    4. 빌드 스크립트로 절차를 자동화할 수 있음 

    주의할 점은 다 완성된 다음 빌드를 하지말고

    정해진 루틴대로 빌드를 해서 진행중에 이상없이 되는지 확인이 필요하다.

    빌드가 안되면 이것을 우선순위로 확인후 되도록 수정해야 한다.

     

    • 버그관리시스템(이슈관리시스템)
    1. 개발자가 자신이 수정해야할 버그/이슈가 무엇인지 확실하게 인지가능
    2. 현재 문제점을 파악/진척도/관리 용이

    대표적으로 Mantis,JIRA가 있음

     

    • 테스트관리시스템(테스트 자동화툴)

    먼저 Full Test Suite가 있어야 한다. Full Test Suite는 Unit 테스트, 통합 테스트, 시스템 테스트가 모두 포함된

    통합된 테스트 케이스를 말한다. 테스트의 100% 자동화는 힘들지만 비율을 높여야 한다.

     

    대표적으로 LoadRunner,WinRunner,Rational TeamTest,Rational Robot,Quality Center가 있다.

    --> 나도 테스트관리시스템은 아직 써본적이 없다. 테스트 자동화는 필요하다고 생각하기 때문에

    추후에 도입해볼 예정 

     

    필수는 아니지만 고려해볼만한 시스템

     

    • 프로젝트 관리시스템

    엄청 거대 IT 기업이 아니라면 공통으로 볼 수 있는 게시판정도면 충분하지 않을까 싶다.

    • 요구사항 관리시스템

    이것 역시 공유엑셀이나 게시판 + 이슈관리시스템으로 관리가 가능하지 않을까 

     

     

    너무 시스템을 많이 도입하는 것도

    오히려 복잡함과 할 일만 늘리고 그로인해 '목적 전치'를 야기한다고 생각한다. 

    자신의 프로젝트 규모, 활용, 의도에 따라 굳이 필요 없다면 그냥 안 하는게 나을 수 도..

    그래도 알고 안 하는 것과 모르는 것은 다르니 참고를 위해 정리했다.

     

     

     

     

     

    *본 글에 나온 용어와 개념은 '소프트웨어 개발의 모든 것' - 김익환, 전규현 의 내용을 기반으로 작성되었습니다.

Designed by Tistory.