728x90
반응형

CS 92

[1장] 요구사항 확인

※ 소프트웨어 생명주기 : 소프트웨어를 개발하기 위한 과정을 각 단계로 나눈 것 ※ 나선형 모형 : 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발하는 모형을 보헴이 개발 1. 계획 수립 2. 위험 분석 3. 개발 및 검증 4. 고객 평가 ※ 폭포수 모형 : 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 그 결과를 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론이다. ※ 애자일 모형 : 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형이다. [대표적인 개발 모형] 스크럼 XP 칸반, Lean, 기능 중심 개발(FDD ; Feature Driven Development) ※ 애자일 개발 4가지 핵심 가치 프로세스와 도구보다..

CS/CS 2023.07.17

[4장] 서버 프로그램 구현

※ 모듈화 : 시스템의 기능들을 모듈 단위로 나누는 것 - 모듈화는 모듈 간 결합도의 초소화와 응집도를 최대화 하는 것이 목표 ※ 추상화 : 전체적이고 포괄적인 개념을 설계한 후 구체화시켜 나가는 것 유형 내용 괴정 추상화 자세한 수행 과정을 정의하지 않고, 전반적인 흐름만 파악할 수 있게 설계하는 방법 자료 추상화 데이터의 세부적인 속성이나 용도를 정의하지 않고, 데이터 구조를 대표할 수 있는 표현으로 대체하는 방법 제어 추상화 이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표할 수 있는 표현으로 대체하는 방법 ※ 정보 은닉 : 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법 ※ 아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전..

CS/CS 2023.07.16

[5, 6장] 인터페이스 구현 / 화면 설계

※ 요구사항 검증 방법 1. 요구사항 검토 계획 수립 2. 검토 및 오류 수정 3. 베이스라인 설정 동료검토 워크 스루 : 명세서를 미리 배포하여 사전 검토 인스펙션 : 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견 프로토타이핑 : 소프트웨어 견본품으로 예측 ※ 인터페이스 요구사항 검증의 주요 항목 완전성 일관성 명확성 기능성 검증 가능성 추적 가능성 변경 용이성 ※ 미들웨어 [Middleware] : 운영체제와 응용 프로그램 또는 서버와 클라이언트 사이에서 다양한 서비스를 제공하는 소프트웨어 DB RPC [Remote Procedure Call] MOM [Message Oriented Middleware, 메시지 지향 미들웨어] TP-Monitor [Transaction..

CS/CS 2023.07.16

[12장] 제품 소프트웨어 패키징

※ 소프트웨어 패키징 : 모듈별로 배포용 설치 파일을 만드는 것을 말하며 사용자 중심으로 진행한다. 기능 식별 → 모듈화 → 빌드 진행 → 사용자 환경 분석 → 패키징 및 적용 시험 → 패키징 변경 개선 → 배표 ※ 릴리즈 노트 작성 항목 Header : 릴리즈 이름, 소프트웨어 이름, 버전, 날짜 등 개요 : 소프트웨어 및 변경사항 전체에 대한 간략한 내용 목적 : 해당 릴리즈 버전에서의 새로운 기능이나 수정된 기능의 목록과 릴리즈 노트의 목적에 대한 간략한 개요 문제 요약 : 수정된 버그에 대한 간략한 설명 또는 릴리즈 추가 항목에 대한 요약 재현 항목 : 버그 발견에 대한 과정 설명 수정/개선 내용 : 버그를 수정/개선한 내용을 간단히 설명 사용자 영향도 SW 지원 영향도 노트 면책 조항 연락처 ※..

CS/CS 2023.07.16

[11장] 응용 SW 기초 기술 활용 (2)

※ IP : 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소 IPv4 8비트씩 4부분, 총 32비트 네트워크 부분의 길이에 따라 A 클래스에서 E 클래스까지 총 5단계로 구성 IPv6 16비트씩 8부분, 총 128비트 각 부분을 16진수로 표현하고, 콜론으로 구분 유니캐스트 (Unicast) : 1대1 통신 멀티캐스트 (Multicast) : 1대다 통신 애니캐스트 (Anicast) : 단일 송신자와 가장 가까이 있는 단일 수신자 간의 통신 ※ 서브넷팅 : 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것 ※ 도메인 네임 : 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것, 이러한 시스템을 DNS(Domain Name System)라고 함 ※ O..

CS/CS 2023.07.16

[11장] 응용 SW 기초 기술 활용 (1)

※ 운영체제 : 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임 ※ 운영체제의 목적 처리 능력 (Throughput) 반환 시간 (Turn Around Time) 사용 가능도 (Availability) 신뢰도 (Reliability) ※ UNIX : AT&T 벨(Bell) 연구소, MIT General Electric이 공동 개발한 운영체제 시분할 시스템(Time Sharing System) 트리(Tree) 구조의 파일 시스템 ※ UNIX 시스템 구성 커널(Kernel) UNIX의 가장 핵심적인 부분으로 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할 담당 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리,..

CS/CS 2023.07.16

[9장] 소프트웨어 개발 보안 구축

※ Secure SDLC : SDLC에 보안 강화를 위한 프로세스를 포함한 것을 의미 ※ 소프트웨어 개발 보안 요소 기밀성 : 인가된 사용자만 접근이 허용 무결성 : 인가된 사용자만 수정 가능 가용성 : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있다. 인증 부인 방지 : 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공 ※ 시큐어 코딩 : 시큐어 코딩(Secure Coding)은 구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하며 코딩하는 것 ※ SQL 삽입 : SQL 삽입(Injection)은 웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스(DB) 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약..

CS/CS 2023.07.16

[7장] 애플리케이션 테스트 관리

※ 애플리케이션 테스트의 기본 원리 파레토 법칙 : 애플리케이션의 20% 코드에서 80% 결함이 발견 살충제 패러독스 : 동일한 TC로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상 오류-부재의 궤변 : 소프트웨어의 결함이 모두 제거되었어도 사용자 요구사항을 충족시키지 못하면 소프트웨어 품질이 높다고 평가할 수 없음 ※ 프로그램 실행 여부에 따른 테스트 정적 테스트 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트 코딩 표준, 코딩 스타일, 코드 복잡도, 남은 결함 등을 발견하기 위함 종류 : 워크 스루, 인스펙션, 코드 검사 등 동적 테스트 프로그램을 실행하여 오류를 찾는 테스트 소프트웨어 개발의 모든 단계에서 테스트 수행 종류 : 블랙박스 테스트, 화이트박스 테스트..

CS/CS 2023.07.16

MySQL DISTINCT 처리, 임시테이블이 필요한 쿼리

특정 칼럼의 유니크한 값만 조회하려면 SELECT 쿼리에 DISTINCT를 사용한다. DISTINCT는 MIN(), MAX() 또는 COUNT() 같은 집합 함수와 함께 사용되는 경우와 집합 함수가 없는 경우의 2가지로 구분해서 살펴볼 수 있다. 위 2가지로 구분하는 이유는 각 경우에 DISTINCT 키워드가 영향을 미치는 범위가 달라지기 때문이다. 그리고 집합 함수와 같이 DISTINCT가 사용되는 쿼리의 실행 계획에서 DISTINCT 처리가 인덱스를 사용하지 못할 때는 항상 임시 테이블이 필요하다. ▶ SELECT DISTINCT ... 단순히 SELECT 되는 레코드 중에서 유니크한 레코드만 가져오고자 하면 SELECT DISTINCT 형태의 쿼리 문장을 사용한다. 이 경우에는 GROUP BY와 동..

CS/MySQL 2023.07.14

MySQL 옵티마이저란? MySQL 기본 데이터 처리 [ORDER BY - 소트 버퍼, 정렬 방식]

MySQL에서도 쿼리를 최적으로 실행하기 위해 각 테이블의 데이터가 어떤 분포로 저장돼 있는지 통계 정보를 참조하며, 그러한 기본 데이터를 비교해 최적의 실행 계획을 수립하는 작업이 필요하다. MySQL 서버를 포함한 대부분의 DBMS에서는 옵티마이저가 이러한 기능을 담당한다. ▶ 쿼리 실행 절차 MySQL 서버에서 쿼리가 실행되는 과정은 크게 세 단계로 나눌 수 있다. 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리(파스 트리)한다. SQL의 파싱 정보(파스 트리)를 확인하면서 어떤 테이블로부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택한다. 두 번째 단계에서 결정된 테이블의 읽기 순서나 선택된 인덱스를 이용해 스토리지 엔진으로부터 데이터를 가져온다...

CS/MySQL 2023.07.12
728x90
반응형