1. 소스 코드 최적화나쁜 코드 Bad Code프로그램의 로직이 복잡하고 이해하기 어려운 코드나쁜 코드의 종류스파게티 코드 : 코드의 로직이 서로 복잡하게 얽혀 있는 코드외계인 코드 : 아주 오래되거나 참고문서 또는 개발자가 없어 유지 보수 작업이 어려운 코드클린 코드 Clean Code 작성 원칙가독성누구든지 코드를 쉽게 읽을 수 있도록 작성코드 작성 시 이해하기 쉬운 용어를 사용하거나 들여쓰기 기능을 사용단순성코드를 간단하게 작성한 번에 한 가지를 처리하도록 코드를 작성, 클래스/메소드/함수 등을 최소 단위로 분리의존성 배제코드가 다른 모듈에 미치는 영향을 최소화코드 변경 시 다른 부분에 영향이 없도록 작성중복성 최소화코드의 중복을 최소화중복된 코드는 삭제하고 공통된 코드를 사용추상화상위 클래스/메소..
1. 복잡도의 개요시스템이나 시스템 구성요소 또는 소프트웨어의 복잡한 정도를 나타내는 말시스템 또는 소프트웨어를 어느 정도의 수준까지 테스트해야 하는지 또는 개발하는데 어느 정도의 자원이 소요되는지 예측하는데 사용시스템의 복잡도가 높으면 장애가 발생할 수 있으므로 정밀한 테스트를 통해 미리 오류를 제거할 필요가 있음주요 복잡도 측정 방법 : LOC, 순환 복잡도 등2. 시간 복잡도알고리즘의 실행시간, 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 것시간 복잡도와 알고리즘의 관계 : 비례시간 복잡도가 낮을수록 알고리즘의 실행시간이 짧음시간 복잡도가 높을수록 알고리즘의 실행시간이 길어짐알고리즘의 실행시간이 하드웨어적 성능이나 프로그래밍 언어의 종류에 따라 달라지기 때문에 시간이 아닌 명령..
1. 소프트웨어 패키징의 개요모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것사용자 중심 진행소스코드를 모듈화하여 패키징 : 향후 관리를 고려소프트웨어 사용 환경을 이해하여 다양한 환경에서 소프트웨어를 손쉽게 사용할 수 있도록 일반적인 배포 형태로 패키징2. 패키징 시 고려사항사용자의 시스템 환경(운영체제, CPU, 메모리 등)에 필요한 최소 환경을 정의UI는 사용자가 눈으로 직접 확인할 수 있도록 시각적인 자료와 함께 제공하고 매뉴얼과 일치시켜 패키징Managed Service 형태로 제공 : 하드웨어와 함께 관리될 수 있도록 함내부 콘텐츠에 대한 암호화 및 보안 고려다른 여러 콘텐츠 및 단말기 간 DRM 연동 고려사용자 편의성을 위한 복잡성, 비효율성 문제 고려제품 소프트웨어 종류에 ..
1. 디자인 패턴 Design Pattern의 개요각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미디자인 패턴 구성 : 문제 및 배경, 실제 적용된 사례, 재사용이 가능한 샘플 코드 등개발 과정 중에 문제가 발생하면 새로 해결책을 구상하는 것보다 문제에 해당하는 디자인 패턴을 참고하여 적용하는 것이 더 효율적한 패턴에 변형을 가하거나 특정 요구사항을 반영하면 유사한 형태의 다른 패턴으로 변화되는 특징이 있음GoF의 디자인 패턴수많은 디자인 패턴들 중 가장 일반적인 사례에 적용될 수 있는 패턴들을 분류하여 정리유형에 따라 생성 패턴 5개, 구조 패턴 7개, 행위 패턴 11개로 구성2. 디자..
1. 코드의 개요컴퓨터를 이용하여 자료를 처리하는 과정에서 분류, 조합 및 집계를 용이하게하고 특정 자료의 추출을 쉽게 하기 위해서 사용하는 기호정보를 신속, 정확, 명료하게 전달할 수 있게 함일정한 규칙에 따라 작성되며, 정보 처리의 효율과 처리된 정보의 가치에 많은 영향을 미침코드의 주요 기능식별 기능 : 데이터 간의 성격에 따라 구분이 가능분류 기능 : 특정 기준이나 동일한 유형에 해당하는 데이터 그룹화 가능배열 기능 : 의미를 부여하여 나열 가능표준화 기능 : 다양한 데이터를 기준에 맞추어 표현할 수 있음간소화 기능 : 복잡한 데이터 간소화 가능2. 코드의 종류순차 코드 Sequence Code : 자료의 발생 순서, 크기 순서 등 일정 기준에 따라서 최초의 자료부터 차례로 일련 번호를 부여하는 ..
1. 공통 모듈의 개요여러 프로그램에서 공통적으로 사용할 수 있는 모듈자주 사용되는 계산식이나 매번 필요한 사용자 인증과 같은 기능들이 공통 모듈로 구성될 수 있음모듈의 재사용성 확보, 중복 개발 회피를 위해 설계 과정에서 공통 부분을 식별하고 명세를 작성할 필요가 있음공통 모듈 구현의 명세 기법정확성 Correctness : 시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성명확성 Clarity : 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성완전성 Completeness : 시스템 구현을 위해 필요한 모든 것을 기술일관성 Consistency : 공통 기능들 간 상호 충돌이 발생하지 않도록 작성추적성 Traceability : 기능에 대한 요구사항의 출처, 관련 ..