목록분류 전체보기 (451)
코딩항해기
디지털 저작권 관리 (DRM / Digital Right Management)디지털 저작권 관리는 저작권자가 배포한 디지털 컨텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸처 사용되는 디지털 콘텐츠 관리 및 보호 기술이다. 원본 컨텐츠가 아날로그 일때는 디지털로 변환한 후 패키저에 의해 DRM 패키징을 수행하며 크기가 작은 경우에는 실시간으로, 아닌 경우에는 미리 수행 후 배포한다. 패키징을 수행하려면 콘텐츠에 암호화된 저작권자의 전자서명이 포함되고 저작권자가 설정한 라이선스 정보가 클리어링 하우스에 등록된다. 이후 사용자가 콘텐츠를 사용하기 위해서는 클리어링 하우스에 등록된 라이선스 정보를 통해 사용자 인증과 콘텐츠 사용 권한 소유 여부를 확인 받아..
소프트웨어 패키징소프트웨어 패키징이란 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다. 사용자 중심으로 진행하며 소스코드는 향수 관리를 고려하여 모듈화하여 패키징한다. 사용자가 소프트웨어를 사용하게 될 환경을 이해하여, 다양한 환경에서 소프트웨어를 손쉽게 사용할 수 있도록 일반적인 배포 형태로 패키징 한다. 패키징 시 고려사항사용자의 시스템 환경(OS, CPU, 메모리 등)에 대한 필요한 최소 환경을 정의하며 UI는 사용자가 눈으로 직접 확인할 수 있도록 시각적인 자료와 함께 제공하고 매뉴얼을 일치시켜 패키징한다. 소프트웨어는 단순히 패키징하여 배포하는 것으로 끝나는 것이 아니라 하드웨어와 함께 관리할 수 있도록 Managed Service 형태로 제공하는 것이 좋다. 사용자에..
단위 모듈단위 모듈은 소프트웨어의 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것이다. 단위 모듈로 구현된 하나의 기능을 단위 기능이라 부른다. 사용자나 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램을 의미하기도 한다. 단위 모듈의 구성 요소에는 처리문, 명령문, 데이터 구조 등이 있으며, 독립적인 컴파일이 가능하고 다른 모듈에 호출되거나 삽입되기도 한다. 구현하기 위해서는 단위 기능 명세서를 작성한 후 입출력 기능과 알고리즘을 구현해야한다. 단위 기능 명세서 단위 기능 명세서는 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서들을 의미한다. 복잡한 시스템을 단순히 구현하기 위해 추상화하는 작업이 필요하고 대형 시스템을 분해해..
미들웨어 Middleware미들과 소프트웨어 합성어로 분산 컴퓨팅 환경에서 서로 다른 기종 간의 하드웨어나 프로토콜, 통신 환경 등을 연결하여 운영체제와 응용 프로그램, 또는 서버와 클라이언트 사이에서 원만한 통신이 이루어지도록 다양한 서비스를 제공한다. 표준화된 인터페이스를 제공함으로써 시스템 간의 데이터 교환에 일관성을 보장한다. 위치 투명성을 제공하며 사용자가 미들웨어 내부 동작을 확인하려면 별도의 응용 소프트웨어를 사용해야한다. 시스템들을 1:1 1:N N:M 등 여러 가지 형태로 연결할 수 있다. 종류로는 DB, RPC, MOM, TP-Monitor, ORB, WAS 등이 있다. DB데이터베이스 벤터에서 제공하는 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어로 DB를 사용해 시스템을..
인터페이스 방법 명세화내외부 시스템이 연계하여 작동할 때 인터페이스 별 송수신 방법, 송수신 데이터, 오류 식별 및 처리 방안에 대한 내용을 문서로 명확하게 정리하는 것이다. 시스템 연계 기술개발할 시스템과 내외부 시스템을 연계할 때 사용되는 기술을 의미하며 DB Link, API/Open API, 연계 솔루션, Socket, Web Service 등이 있다.DB LinkDB에서 제공하는 DB Link 객체를 이용하는 방식이다.API/Open API송신 시스템의 데이터베이스에서 데이터를 읽어와 제공하는 애플리케이션 프로그래밍 인터페이스 프로그램이다.연계 솔루션EAI 서버와 송수신 시스템이 설치되는 클라이언트를 이용하는 방식이다.Socket서버는 통신을 위한 소켓을 생성하여 포트를 할당하고 클라이언트의 ..
요구사항 검증설계 및 구현 전에 사용자들의 요구사항이 요구사항 명세서에 정확하고 완전하게 기술되었는지 검토하고 베이스라인을 설정하는 것이다. 설계 및 구현 중에 오류가 발견되어 수정하게 되면 많은 비용이 소모되므로 중요한 단계이다. 요구사항 검토 계획 수립, 검토 및 오류 수정, 베이스라인 설정 순으로 수행한다. 검토 계획 수립검토 기준 및 방법프로젝트의 규모와 참여 인력, 검토 기간 등을 고려하여 검토 기준 및 방법을 정한다.참여자이해관계자들을 파악하여 프로젝트 관리자, 품질 관리자, 인터페이스 분석가, 소프트웨어 아키텍트, 시스템 사용자, 테스트 관리자 등을 요구사항 검토 참여자를 선정한다.체크리스트완전성, 일관성, 명확성 등의 항목을 점검할 수 있는 요구사항 검토 체크리스트를 작성한다.관련 자료인터..
공통 모듈여러 프로그램에서 공통적으로 사용할 수 있는 모듈을 의미한다. 자주 사용될 수 있는 계산식이나 매번 필요한 사용자 인증과 같은 기능들이 공통 모듈로 구성될 수 있다. 모듈의 재사용성 확보와 중복 개발 회피를 위해 설계 과정에서 공통 부분을 식별하고 명세를 작성할 필요가 있다. 다른 개발자들도 해당 기능을 명확히 이해할 수 있도록 명세 기법을 준수해야한다. 정확성시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성명확성해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확히 작성완전성시스템 구현을 위해 필요한 모든 것을 기술일관성공통 기능들 간 상호 충돌이 발생하지 않도록 작성추적성기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성 재사용비용과 개발 ..
모듈모듈은 모듈화를 통해 분리된 시스템의 각 기능들로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등과 같은 의미로 사용된다. 모듈은 단독으로 컴파일이 가능하며 재사용할 수 있다. 모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미하는 것으로, 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로써 이뤄진다. 독립성이 높은 모델일수록 모듈을 수정하더라도 다른 모듈에 영향을 끼치지 않고, 오류가 발생해도 쉽게 특정하고 해결할 수 있다. 모듈의 독립성은 결합도와 응집도에 의해 측정된다. 독립성을 높이려면 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야한다. 결합도결합도는 모듈 간의 상호 의존하는 정도, 또는 연관 관걔를 의..
소프트웨어 아키텍처소프트웨어의 골격이 되는 기본 구조이자, 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체이다. 이해 관계자들의 의사소통 도구로 활용된다. 소프트웨어 아키텍처의 설계는 기본적으로 좋은 품질을 유지하면서 사용자의 기능적 요구사항을 나타난 제약을 반영하고, 기능적 요구사항을 구현하는 방법을 찾는 해결 과정이다. 애플리케이션의 분할 방법과 분할된 모듈에 할당될 기능, 모듈 간의 인터페이스 등을 결정한다. 소프트웨어 아키텍처 설계의 기본 원리모듈화모듈화란 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재활용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 나누는 것을 의미한다. 모듈의 크기를 너무 작게 나누면 개수가 많아져 모듈 간의 통합 비용이 많이 ..