시스템 테스트는 통합한 모듈들이 요구사항에 잘 맞게 작동이 되는지를 판단하게 되며 작동 시간, 처리 능력, 부하, 복구 등과 같은 비기능적인 요소들도 점검한다. 시스템 테스트는 White Box 레벨이 아닌 Black Box 레벨에서 주로 수행하게 되어서 블랙박스 테스트 분류에 속하며, 해당 시스템에 대한 지식이 없어도 테스트를 수행할 수 있다. 단위 테스트와 통합 테스트는 동일한 환경을 맞춰서 수행을 하지 않는다. 단위 테스트야 개발자가 만든 Dummy 객체 등을 이용해서 테스트를 수행할 수 있으며 컴포넌트 혹은 모듈이 정상적으로 돌아가는지 개별적으로 테스트하는 것에 목적을 두고 있으며, 통합 테스트는 각 모듈들이 잘 연결되는지 테스트하며 이를 위해 Test Driver나 Test Stub과 같은 마찬..
통합테스트는 모듈을 통합(Integrate)하는 단계에서 수행하는 테스트이다. 단위 테스트를 우선 수행하여 모듈들이 각각 정상적으로 작동이 되는 것을 확인했다면 이제 이 모듈들을 연동하여 테스트를 수행하게 되는데 이것이 통합 테스트이다. 단위 테스트에서 찾지 못하는 연동시 발생하는 버그 등을 찾을 수 있으며, 다른 모듈들과 동시 다발적으로 테스트를 수행해야 하기 때문에 단위 테스트와 다르게 일반적으로 테스트를 교육 받은 전문적인 테스터와 함께 수행하게 된다. 테스트 시 컴포넌트간의 I/F(인터페이스)를 테스트 하는 것은 물론이고, 운영체제, 파일 시스템, 하드웨어, 시스템간 인터페이스와 같은 시스템의 각기 다른 부부과 상호 연동하는 동작을 테스트하게 된다. 소프트웨어 상호작용 테스트, 통합 테스트통합 테..
단위 테스트(Unit Test)는 다른 말로, 컴포넌트 테스팅(Component Testing)이라고도 불리는 테스트가 가능한 최소 단위로 나눠서 테스트를 수행하는 테스트를 일컫는다. 개발 수명주기(Development LifeCycle)의 정황과 시스템에 의존적이면서도 시스템의 다른 부분에서 격리하여 독립적으로 수행해야 하는 테스트이다. 단위 테스트를 하기 위해서, 가짜 프로그램, 객체(Mock Object)을 만들어서 활용할 수 있으며, 정교하게 테스트를 하기 위해서 테스트 케이스(Test Case) 작성은 필수라 할 수 있다. 개발 기반 모듈 테스트 단위테스트단위 테스트(Unit Test)의 개념 - 소프트웨어 개발 후 테스트 가능한 최소단위 기준으로 결함을 찾고, 기능을 검증하는 테스트 활동 - ..
개발을 한참 하던 시기, 국내에 ISTQB(International Software Testing Qualification Board)라는 자격증이 들어오면서 한 때 테스터에 대해서 진심으로 고민을 했던적이 있었다. 국내에 관련 자격을 취득한 사람이 매우 전무하던 시기이다 보니 왠지 모르게 선구자가 될 수 있다는 생각과 꽤 성장을 할 수 있는 분야로 느꼈으며, 내가 테스트를 꽤 잘하기도 했었기 때문이다. 개발을 1990년부터(Basic) 시작하다보니 남들보다 당연히 개발을 잘하기도 했었고, 추리 소설을 즐겨 읽는 성격이 가미되어 어느 부분에 문제가 발생할 지 등을 남들보다 잘 예측하기도 했다. 그리고, 반년 정도 테스팅 업무를 지원하기도 했는데(스크립트 만드는 것과 테스트 도구를 개발하는 것) 이때 테스..
APM은 약어인 Application Performance처럼 어플리케이션의 퍼포먼스를 관리하는 솔루션이다. 보통 프로젝트를 진행할 때 마지막 단계에서 APM 솔루션을 이용해 문제점을 파악하고 가용성을 증대 시키기 위해서 작업을 진행한다. 예를 들어, DB쪽에 부하가 있다던지 혹은 WAS 혹은 WEB 서버 단에 속도가 나오지 않는다던지 등을 파악하여 문제를 개선하게 된다. 즉, APM은 사용자가 느끼는 성능을 끌어올리기 위해서 병목이 발생하는 부분을 파악하는 솔루션으로 인지해도 될 것이다. 일명 IT업계의 신의 직장이라 말하는 제니퍼소프트(Jennifer Soft)가 국내 굴지의 APM 업체이다. 미친 복지의 제니퍼 소프트... SW의 성능과 가용성을 관리하는 솔루션, APM APM(Application..
오픈소스의 발전과 복잡해진 소프트웨어 개발 환경들이 맞물려진 현재 대다수 프로젝트들은 ALM(Application LifeCycle Management) 솔루션을 적용하거나, ALM의 환경을 직접 구성하여 프로젝트를 진행하는 것이 대다수라 할 수 있다. 소규모 프로젝트야 Git 정도만 공유하고 개발을 할 수 있겠지만, 10명 이상 혹은 PM 등이 포함되어 다양한 의사소통을 해야 하는데 파티션이 분리되어 의사소통이 쉽지 않을 경우 이슈 및 진행 사항에 대한 관리가 쉽지 않을 수 있다. 이럴 경우 ALM을 적용하는 것을 고려해봐야 한다. ALM은 개발의 전과정을 가시화하고, 관리 및 빌드 등이 수월하도록 만들어진 종합 개발 솔루션 정도로 인식해도 될 것이다. 특정 솔루션 하나를 지칭하는 것이 아니라 다양한 ..
폰노이만(Von Neumann Architecture) 아키텍처와 하버드 아키텍처(Harvard Architecture)를 처음 공부하였을 땐, 현재의 모든 컴퓨터 구조는 하버드 아키텍처로 이루어져 있는 줄 알았다. 왜냐하면 폰노이만은 1940년대에 등장한 개념이기 때문에 현재까지 그 구조를 이어가고 있다는 것은 꿈에도 생각치 못했기 떄문이다. 이러다보니, 당연히 모든 컴퓨터는 메모리 구조가 분리가 되어 있을거라 여겼는데 이는 나의 심각한 착오였다. 아직까지 대다수의 컴퓨터는 폰노이만 구조를 그대로 사용하고 있으며 일부 컴퓨터만 하버드를 채용한 정도에 불과하였다. 즉, 완벽히 하버드 아키텍처 구조를 따르는 것은 극 소수에 불과하고 아직도 폰노이만 구조를 바탕으로 둔 후 일부만 하버드 아키텍처를 활용하고 ..
전자정부프레임워크(eGovFramework)가 등장하게 전(약 10년전)의 우리나라 SI는 그야말로 삼국지와 춘추전국시대를 합친 난장판같은 모습이었다. 필자는 당시 솔루션 회사를 다니면서 SI를 수행하였는데 한달에 하나꼴로 프레임워크를 새로 공부했던 것으로 기억한다. 수많은 업체들이 자체 프레임워크를 만들고 있었고, 회사에는 프레임워크팀까지 별도로 있을 정도였다. 매번 300~400페이지 가까이 되는 독자적인 프레임워크를 매뉴얼로 봐가며 익혀야 했고 이놈의 프레임워크는 버전 업을 할때마다 개발자들을 괴롭혔다. (갑자기 잘 만들어진 소스가 버전업으로 인해서 안 돌아갔으니...) 당시 프레임워크는 스트럿츠(Struts) 1 혹은 2, 그리고 스프링(Spring) 2.x 등에서 필요한 부분만 빼와서 독자적인 ..
가상 기업은 이해하기가 까다로우면서도 반대로 쉬울 수 있다. 일단 가상이라는 말 자체가 뭔가 현실에서 존재하지 않는 듯한 느낌이 들어서 용어를 이해하기가 어려울 수 있다.(최소한 필자는 그랬었다) 심지어 몇몇 논문들은 가상 기업에 대한 정의들이 다르고, 단어부터 다른 곳들이 많다. 구글링을 해보면, 가상기업을 어떤 곳은 Virtual Company, Virtual Corporation, Virtual Organization 등으로 표현하고 있다. 사실 가상기업이라는 말이 촉발된 계기는 Davidow & Malone 이라는 사람이 1992년에 낸 책인 "The Virtual Corporation"으로 인해서 인지된 것이 맞을테니 Virtual Corporation이 좀 더 옳을지 모르겠지만 현재는 Virt..
ISO(International Organization for Standardization) /IEC(International Electrotechnical Commission)가 공동으로 발표한 IT 거버넌스의 국제 표준이 ISO/IEC 38500이다. 간혹 Cobit과 헷갈릴 수 있는데 38500은 국제 표준이고, Cobit은 표준이 아닌, 협회에서 만들어낸 프레임워크이다. ISO/IEC 38500에서 제정되었지만, 많은 기업들은 38500 표준을 기준으로 Cobit 등과 같은 범용적인 프레임워크를 연계해서 진행하는 경우가 많은 것으로 사료된다. 참고로 Cobit은 ISACA(Information Systems Audit and Control Association)에서 만들어 낸 대표적인 IT 거버넌..
IT 거버넌스(IT Governance)는 IT 투자가 기업의 사업 목표를 뒷받침할 수 있도록 하는 프레임워크(Framework)이다. 1990년대~2000년대 대형 기업 사기 사건이 발생한 이후 제정된 '그람-리치-블라일리法'(Gramm-Leach-Bliley Act, 일명 Financial Services Modernization Act)과 '사베인 옥슬리法'(Sarbanes Oxley Act) 등이 만들어지면서 기업이 활용해야 할 핵심 프레임워크로 자리 잡기 시작하였다. Governance는 통치, 관리라는 의미를 가지기 때문에 정보기술을 관리하는 것으로 풀이할 수 있지만, 사실 단순히 관리로 의미를 해석하기에는 다양한 이해관계자가 복잡하게 얽혀있다. 그러다보니 수많은 기관에서는 각기 다르게 정의를..
폰노이만 구조(Von Neumann Architecture)는 존 폰노이만이 제시한 컴퓨터 아키텍처이다. 이를 다른 말로 프로그램 내장 방식(Stored Program Concept)으로도 불리는데 에드박(EDVAC)의 보고서 최초 초안(1945년)인 First Draft of a Report on the EDVAC에서 설명한 컴퓨터 아키텍처이다. 이처럼 폰노이만이 제안한 컴퓨팅 모델은 그의 이름을 따서 폰노이만 아키텍처라고 부르거나 그의 소속 대학을 따서 프린스턴 아키텍처(Princeton Architecture)라고 부르기도 한다. 폰노이만 구조 이전, 비슷한 시도를 한 것은 컴퓨터의 아버지라 할 수 있는 영국의 앨런 튜링이었다. 이미 앨런 튜링은 1937년에 튜링 기계(Turing Machine)을..