CS 42

[CS] TDD

TDD (Test Driven Development, 테스트 주도 개발)개발 프로세스에서 테스트를 먼저 작성한 후 그 테스트를 통과하는 코드를 작성하는 방식 기본 개념다음 3단계의 사이클을 반복한다1. Red (실패)실패하는 테스트 코드를 작성한다새로운 기능이나 요구사항이 반영되지 않은 상태에서 테스트가 실패해야 한다2. Green (성공)테스트를 통과할 최소한의 코드를 작성한다구현은 간단해야 하며, 테스트를 통과하는 것에만 집중한다3. Refactor (리팩토링)테스트를 통과한 코드를 리팩토링하여 품질을 개선중복코드 제거, 성능 최적화, 가독성 향상 등 코드의 구조를 개선한다테스트가 다시 실패하지 않음을 확인TDD의 목표코드 품질을 높이고 버그 발생 가능성 줄이기작고 검증 가능한 단계로 개발하여 복잡한..

CS 2024.12.13

[CS] 프로세스와 스레드

CPU명령어를 실행하는 연산장치 메모리 (메인메모리)프로세스가 CPU에서 실행되기 위해 대기하는곳 I/O (input / output)파일을 읽고 쓰거나 네트워크 어딘가와 데이터를 주고 받는것입출력장치와 데이터를 주거나 받는것 프로세스실행중인 프로그램각각의 프로세스는 독립된 메모리 공간을 할당 받음명령어와 데이터를 가짐단일 프로세스는 하나의 프로그램만 동작되어서 비효율적임 멀티프로그래밍여러개의 프로그램을 동시에 번갈아가며 실행하지만 하나의 프로그램이 오래 실행되면 다른 프로그램의 대기시간이 길어짐 멀티태스킹멀티프로그래밍의 단점을 보완프로세스를 아주 짧은 시간(quantum)만 실행프로세스의 응답시간을 최소화 하는데 목적하나의 프로세스가 동시에 여러 작업 수행은 못함컨텍스트 스위칭(프로세스에서 다른프로세스..

CS 2024.12.08