본문 바로가기

CS20

소프트웨어 테스트 정리 (단위, 통합, 시스템, 인수 테스트) 🍀 소프트웨어 테스트는 아래의 4가지 레벨을 일반적인 테스트 종류로 본다.테스트를 통해 코드가 의도한대로 동작하는 지 검증하는 과정을 거친다.1. 단위 테스트 Unit test소프트웨어의 최소단위, 보통 함수를 가리킴목적 : 애플케이션이 설계된 대로 기능하는지 확인단위 : 함수, 개별 프로그램 또는 프로시저ex. 화이트박스 테스트2. 통합 테스트 Integration test단위 기능이 합쳐진 기능에 대한 테스트목적 : 모듈/기능 간의 인터페이스 결함을 찾기각 단위가 효율적이더라도 제대로 통합되어야 함3. 시스템 테스트 System test  위 내용보다 더 큰 개념, 전체 시스템에 대한 동작 테스트목적 : 시스템이 설명된 모든 요구 사항을 준수했는지 평가, 품질 표준 충적하는지 확인프로그램 개발을 하지 않.. 2024. 7. 24.
디버깅 과정에서 사용하는 주요 명령어 : Step Over, Step into, Step out, Next 안녕하세요! 개발감자입니다.디버깅 과정에서 사용하는 주요 명령어를 정리해보았습니다.목차1. Step Over (스텝 - 오버)2. Step Into (스텝 - 인투)3. Step Out (스텝 - 아웃)4. Next (넥스트) 1. Step Over (스텝 - 오버) 현재 줄의 코드를 실행하고 다음 줄로 넘어갑니다. 만약 현재 줄에 함수 호출이 포함되어 있으면, 그 함수의 내부로 들어가지 않고  함수 호출을 완료한 다음 줄로 이동합니다. - 사용상황: 함수 내부의 자세한 동작을 볼 필요 없는 경우, 함수 호출 이후의 코드를 확인하고 싶은 경우 사용합니다. - 예제 def add(a, b): return a + bresult = add(5, 3) # 스텝 오버를 사용하면 add 함수 내부로 들어가지.. 2024. 6. 24.
[CS / 데이터베이스] 4.6 조인의 원리 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 4.6 조인의 원리에 대해서 정리해보았습니다.4.6 조인의 원리4.6.1 중첩 루프 조인중첩 for 문과 같은 원리로 조건에 맞는 조인을 하는 방법대용량의 테이블에서는 사용하지 않음예를 들어, 테이블1과 테이블2를 조인하는 경우는 첫 번째 테이블에서 행을 한 번에 하나씩 읽고 그 다음 테이블에서도 행을 하나씩 읽어→ 조건에 맞는 레코드를 찾아서 결괏값을 반환.4.6.2 정렬 병합 조인각각의 테이블을 조인하라 때 필드 기준으로 정렬하고, 정렬이 끝난 이후에 조인 작업을 수행하는 조인사용하는 경우 : 조인할 때 쓸 적절한 인덱스가 없고 대용량의 테이블들 조인하고 조인 조건으로 범위 비교 연산자가 있을 때 씀4.6.3 해시 조인해시 테이블을 기반으로 .. 2024. 6. 4.
[CS / 데이터베이스] 4.5 조인의 종류 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 4.5 조인의 종류 에 대해서 정리해보았습니다.4.5 조인의 종류조인 (join)두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것입니다.조인의 유형에는 내부 조인, 왼쪽 조인, 오른쪽 조인, 합집합 조인이 있습니다.MySQL에서는 JOIN을 사용하고, MongoDB에서는 lookup을 사용합니다.MongoDB 사용 시에는 성능 저하를 방지하기 위해 되도록이면 lookup을 사용하지 않는 것이 좋습니다. 4.5.1 내부 조인 (INNER JOIN)설명: 내부 조인은 두 테이블 간의 교집합을 나타냅니다. 즉, 두 테이블에서 일치하는 데이터만을 반환합니다.사용 예시:SELECT * FROM TableA A INNER JOIN TableB B O.. 2024. 6. 3.
[CS / 데이터베이스] 4.4 데이터베이스의 종류 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 4.4 데이터베이스의 종류 에 대해서 정리해보았습니다. 4.4 데이터베이스의 종류4.4.1 관계형 데이터베이스관계형 데이터베이스 (RDBMS)구조: 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스입니다.조작: SQL을 사용하여 데이터를 조작합니다.대표적 제품: MySQL, PostgreSQL, 오라클, SQL Server, MSSQL 등 다양한 제품이 있으며, 각 제품은 특화된 SQL을 사용합니다.MySQL호환성: 대부분의 운영체제와 호환 가능합니다.인기: 현재 가장 많이 사용되는 데이터베이스입니다. 2021년 스택오버플로우 조사 결과, 가장 많이 사용되는 데이터베이스로 나타났습니다.사용 사례: 메타, 트위터 등 많은 기업에서 사.. 2024. 6. 1.
[CS / 데이터베이스] 4.3 트랜잭션과 무결성 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 4.3 트랜잭션과 무결성에 대해서 정리해보았습니다.4.3 트랜잭션과 무결성4.3.1 트랜잭션데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위→ 여러 개의 쿼리 들을 하나로 묶는 단위→ ACID 특징이라고도 함.원자성트랜잭션과 관련된 일이 모두 수행되었거자 되지 않았거나를 보장하는 특성commint and rollback트랙잭션 전파 : 트랜잭션 관련 메서드의 호출을 하나의 트랜잭션에 묶이도록 하는 것일관성허용된 방식으로만 데이터를 변경해야 하는 것독립성트랜잭션 수행 시 서로 끼어들지 못하는 것지속성성공적으로 수행된 트랙잭션은 영원히 반영되어야 하는 것시스템 장애 발생 시에도 이를 복구하는 회복 기능이 있어야 한다체크섬, 저널링, 롤.. 2024. 5. 31.
[CS / 데이터베이스] 4.2 ERD와 정규화 과정 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 4.2 ERD와 정규화 과정에 대해서 정리해보았습니다.4.2 ERD와 정규화 과정ERD(Entity Relationship Diagram) : 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할, 릴레이션 간의 관계들을 정의함.4.2.1 ERD의 중요성시스템의 요구 사항을 기반으로 작성되고 이 ERD을 기반으로 데이터베이스를 구축합니다.관계형 구조로 표현할 수 있는 데이터에는 유용하지만 비정형 데이터는 충분히 표현할 수 없음(비정형 데이터 : 비구조화 데이터, 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보)4.2.2 정규화 과정릴레이션 간의 잘못된 종속 관계로 인해 데이버 베이스 이상 현상이 일어남→ 이를 해결하거나 저.. 2024. 5. 30.
[CS / 데이터베이스] 4.1 데이터베이스의 기본 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 4.1 데이터베이스의 기본 에 대해서 정리해보았습니다.Ch4. 데이터베이스4.1 데이터 베이스의 기본데이터베이스 : 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음DBMS (Data Base Manage System) : 데이터베이스를 제어, 관리하는 통합 시스템4.1.1 엔터티엔터티(entity) : 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사약한 엔터티와 강한 엔터티혼자 존재할 수 있는 엔터티 → 강한 엔터티다른 엔터티에 종속되어야 존재할 수 있는 엔터티 → 약한 엔터티4.1.2 릴레이션릴레이션(relation) : 데이터 베이스에서 정보를 구분하여 저장하는 기본 단위ex. 회원 - 이름, 아이디, 주소.. 2024. 5. 29.
[CS / 운영체제] 3.4 CPU 스케줄링 알고리즘 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 3.4 CPU 스케줄링 알고리즘에 대해서 정리해보았습니다. 3.4 CPU 스케줄링 알고리즘CPU 스케줄러 : CPU 스케줄링 알고리즘에 따라 해야 하는 일을 스레드 단위로 CPU에 할당함이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하도록, 준비 큐에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 함.3.4.1 비선점형 방식프로세스가 스스로 CPU 소유권 포기강제로 프로세스 중지 X → 컨텍스트 스위칭으로 인한 부하가 적음FCFS (First Come, First Served)가장 먼저 온 것을 가장 먼저 처리하는 알고리즘단점 : convoy effect (길게 수행되는 프로세스로 인해 준비 큐에서 오래 기다림)S.. 2024. 5. 29.
[CS / 운영체제] 3.3 프로세스와 스레드 - 2 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 3.3 프로세스와 스레드에 대해서 정리해보았습니다.3.3.4 PCBPCB(Process Control Block)운영체제에서 프로세스에 대한 메타데이터를 저장한 데이터프로세스 제어 블록프로세스 생성 시 운영체제는 그 프로세스에 해당하는 PCB를 생성함.프로세스의 중요한 정보를 포함 → 일반 사용자가 접근하지 못하는 커널 스택의 가장 앞부분에서 관리메타데이터 : 데이터에 관한 구조화된 데이터를 설명하는 작은 데이터PCB의 구조프로세스 스케줄링 상태 : 프로세스가 CPU에 대한 소유권을 얻은 후의 상태 (준비, 일시 중단 등)프로세스 ID : 프로세스 ID, 해당 프로세스의 자식 프로세스 ID프로세스 권한 : 컴퓨터 자원 또는 IO 디바이스에 대한 .. 2024. 5. 27.
[CS / 운영체제] 3.3 프로세스와 스레드 - 1 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 3.3 프로세스와 스레드에 대해서 정리해보았습니다.3.3 프로세스와 스레드프로세스 : 컴퓨터에서 실행되고 있는 프로그램, CPU 스케줄링의 대상이 되는 작업이라는 용어와 비슷함스레드 : 프로세스 내 작업의 흐름3.3.1 프로세스와 컴파일 과정프로세스프로그램으로부터 인스턴스화된 것구글 크롬 프로그램(실행파일) 실행 → 프로세스 시작컴파일러가 컴파일 과정을 거쳐 컴퓨터가 이해할 수 있는 기계어로 번역 → 실행할 수 잇는 파일이 되는 것프로그램 : C언어 기반의 프로그램 (컴파일 과정 없이 한 줄 씩 읽어들이는 프로그램과는 다름)전처리소스코드의 주석을 제거 → #include 등 헤더 파일을 병합 → 매크로 치환컴파일러오류 처리, 코드 최적화 작업어셈.. 2024. 5. 23.
[CS / 운영체제] 3.2 메모리 안녕하세요! 개발감자입니다.오늘은 CS의 운영체제 중에서도 3.2 메모리에 대해서 정리해보았습니다.3.2 메모리CPU는 메모리에 있는 프로그램의 명령어들을 실행할 뿐임.3.2.1 메모리 계층레지스터, 캐시, 메모리, 저장장치로 구성되어 있음메모리 계층 정리레지스터 : CPU 안에 있는 작음 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 작음캐시 : L1, L2 캐시 지칭, 휘발성, 속도 빠름, 기억용량 적음주기억장치 : RAM, 휘발성, 속도 보통, 기억용량 보통보조기억장치 : HDD, SDD을 일컬으며 비휘발성, 속도 낮음, 기억 용량이 많음계층 낮음→ 계층이 올라갈 수록 가격은 비싸지고, 용량은 작아지며 속도는 빨라짐.계층 높음캐시데이터를 미리 복사해 놓는 임시 저장소빠른 장치와 느린 장치에서.. 2024. 5. 22.