[소프트웨어 공학] - 품질 (Quality)
·
💻 Computer Science/소프트웨어 공학
고수준 소프트웨어 품질 (High-level Software Quality) 소프트웨어 개발 작업은 실행될 수 있는 소프트웨어 시스템을 최종적으로 생산한다. 소프트웨어 개발에 어떤 프로세스를 어떻게 사용하는가는 소프트웨어 시스템의 품질에 영향을 준다. 이때, 품질에 대한 일반적인 정의는 다음과 같다.`고객 만족`: 품질에 대한 사용자 기반의 관점으로, 사용자가 원하는 만족도를 의미한다.`요구 적합성`: 요구 사항에 대한 적합성으로, 지정된 요구사항과 디자인을 준수하는 제품이 높은 품질의 제품이다.`제품 품질`: 제품의 일부 성분 또는 속성의 차이로 측정된다. 개발 작업과 병행하여 품질에 관한 작업이 이루어져야 한다. 품질에 관한 작업은 표준을 정하고, 품질을 보증하는 작업, 품질 표준에 맞는지 체크하는 ..
[소프트웨어 공학] - 유지보수 (Maintenance)
·
💻 Computer Science/소프트웨어 공학
유지보수 (Maintenance) 소프트웨어 시스템을 개발하고 릴리즈하여 운영하기를 시작하면 본격적으로 사용 단계에 접어들게 된다. 사용자가 시스템의 기능을 사용하면서 시스템 또한 안정된다. 그러나 빈도는 점차 줄어들겠지만 시스템의 버그와 결함에 대한 수정 작업은 계속 진행되어야 한다. 이와 같이 소프트웨어 개발 이후에 진행되는 변경 작업을 “유지보수”라고 한다. 유지보수가 지속되면서 소프트웨어는 계속 진화하며, 이 기간은 소프트웨어 생명 주기의 많은 부분을 차지한다. 따라서 유지보수는 소프트웨어 엔지니어링에서 매우 중요하다.유지보수의 목적 과거에 구축된 많은 소프트웨어 시스템이 오늘날까지 사용되는데, 이러한 오래된 시스템들이 현재까지 여전히 사용되는 것을 “래거시 시스템(Legacy System)”..
[소프트웨어 공학] - 테스트 (Testing)
·
💻 Computer Science/소프트웨어 공학
테스트 (Testing) 소프트웨어 개발 과정 중 실수와 결함이 발생하는 것을 필연적인데, 이 실수와 결함을 낮추는 방법은 두 가지이다. 첫 번째는 처음부터 결함이 발생하지 않도록 방지하는 것, 두 번째는 유입된 결함을 식별하고 제거하는 것이다. 테스트는 소프트웨어에 결함이나 원치 않는 동작을 찾아내고 소프트웨어가 요구와 제약에 맞는지 검증하는 작업이다. 즉, 테스트 작업은 유입된 결합을 식별하고 제거하는데 초점을 둔다.버그, 오류, 결함, 고장 버그, 오류, 결함, 고장이라는 용어를 잘 구별하면 테스트 작업에 도움이 된다. 버그는 문제, 결함 등을 나타내는데 일반적으로 사용되는 용어이다.`오류(Error)`: 개발자가 잘못하여 설계나 코딩에서 실수한 것이다. 즉, 사람의 실수이다.`결함(Defect)..
[컴퓨터 네트워크] - 네트워크 보안 (Network Security)
·
💻 Computer Science/컴퓨터 네트워크
네트워크 보안 (Network Security) 정보 기술의 발전으로 수많은 데이터를 공유하면서 보안을 위협하는 사이버 범죄도 증가하고 있다. 네트워크가 개방되고 성능 및 시스템 간 연결성이 강화되면 이에 비례하여 취약성도 증대된다. 보안을 명확하게 경계를 구분하는 것은 어렵지만 크게 컴퓨터 보안과 네트워크 보안으로 구분된다.`컴퓨터 보안`: 컴퓨터 자체의 데이터를 보호한다.`네트워크 보안`: 컴퓨터 간 데이터를 안전하게 전송한다.네트워크 보안의 요구 사항 네트워크 보안의 요구 사항은 크게 “비밀성”, “무결성”, “가용성”이다.`비밀성(Privacy)`: 데이터의 소유자가 원하는 대로 비밀을 유지하는 것으로, 비밀성을 보장하는 방법으로는 “암호화”와 “접근 통제”가 있다.`무결성(Integrity)`:..
[컴퓨터 네트워크] - 네트워크 관리 (Network Management)
·
💻 Computer Science/컴퓨터 네트워크
네트워크 관리 (Network Management) 네트워크 관리란 제한된 인력과 비용을 활용하여 네트워크의 효율성과 생산성을 높일 수 있도록 복잡한 네트워크를 제어하는 일련의 과정으로, 네트워크에 분산된 각종 자원을 분배하고 관리하고 분석하며 평가하는 기능들이 포함된다. 네트워크 관리의 목적은 효율적으로 자원 사용을 극대화하고 서비스 품질의 가용성과 신뢰성을 최상의 상태로 유지하여 응답 시간을 단축하는 것이다. 또한 네트워크 관리를 통해 네트워크 모니터링, 트러블 슈팅, 유지보수 등을 능률적으로 수행할 수 있다.네트워크 관리 기능 OSI 표준에서는 효율적인 네트워크 관리를 위해 “장애 관리”, “구성 관리”, “성능 관리”, “계정 관리”, “보안 관리” 기능을 제공한다.장애 관리 (Fault Man..
[소프트웨어 공학] - 코딩 (Coding)
·
💻 Computer Science/소프트웨어 공학
코딩 작업 (Coding Work) 설계가 완성되면 코딩 작업이 시작된다. 모듈에 대한 원시 코드를 작성하고 문서화하는 단계이다. 코딩 작업은 프로그래밍을 의미하며, 단순히 설계한 기능을 구현하는 일을 넘어 가독성을 높이고 유지보수를 편하게 하는 관점으로도 작업해야 한다. 즉, 코딩 단계에서는 품질 향상을 위한 다각도의 노력이 필요하다.작업 과정 분석 단계, 설계 단계에서 완성된 작업물들을 가지고 코딩 단계에서는 다음의 순서를 통해 프로그래밍을 진행한다.원시코드를 같은 스타일로 만들기 위해 코딩 표준을 만든다.아키텍처 설계 결과 프레임워크 패키지와 응용 패키지를 결정한다. (프레임워크 패키지는 응용 패키지가 완성되기 전에 구현되어야 함)패키지 내의 각 클래스에 대해 요구 사항과 상세 결과를 반영하여 메서..
[소프트웨어 공학] - UI 설계 (User Interface Design)
·
💻 Computer Science/소프트웨어 공학
UI 기본 개념 (Concept of User Interface) UI 설계(User Interface Design, 사용자 인터페이스 설계)는 사용자가 제품을 쉽게 이해하고, 효과적으로 사용할 수 있도록 시각적이고 인터랙티브한 요소를 구성하는 작업이다. UI 구성 요소들은 사용자와 시스템 간의 정보를 교환하고 조정하는 수단이 되기에, 소프트웨어를 이해하기 쉽고 효율적으로 사용할 수 있도록 구성해야 한다.사용성 (Usability) UI 설계 결과는 소프트웨어의 비기능적 품질 중 “사용성”을 좌우한다. 이때, 사용성이란 일반적으로 시스템이 얼마나 사용하기 편한지를 나타내는 척도이다. 인간과 컴퓨터 상호 작용을 개선하기 위한 방법, 기술을 포함하는 사용의 용이성에 대한 연구를 설묭하는 용어로도 쓰인다. ..
loading