목록2024/09 (6)
효습
쉬운 경우에서 어려운 경우로 진행예외적인 경우에서 정상인 경우로 진행 구현하기 쉬운 테스트부터 시작하기 예를 들어모든 조건을 충족하는 경우모든 조건을 충족하지 않는 경우 예외 상황을 먼저 테스트해야 하는 이유다양한 예외 상황은 복잡한 if-else 블록을 동반할 때가 많음 → 코드가 복잡해지고 버그 발생 가능성이 높아짐초반에 예외 상황을 먼저 테스트하면 이런 가능성이 줄어듦예외 상황에 따른 if-else 구조가 미리 만들어지기 때문에 많은 코드를 완성한 뒤에 예외 상황을 반영할 때보다 코드 구조가 덜 바뀐다예외 상황을 찾고 테스트에 반영하면 예외 상황을 처리하지 않아 발생하는 버그도 줄어듦 완급 조절정해진 값을 리턴값 비교를 이용해서 정해진 값을 리턴다양한 테스트를 추가하면서 구현을 일반화 테스트할 목록..
ERD(Entity Relationship Diagram) : 릴레이션 간의 관계들을 정의함 4.2.1 ERD의 중요성 관계형 구조로 표현할 수 있는 데이터를 구성하는데 유용하지만 비정현데이터를 충분히 표현할 수 없음 4.2.3 정규화 과정 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상을 해결하거나 저장공간을 효율적으로 사용하기 위해 분리하는 과정 정규형 원칙정보 표현의 무손실 : 정보가 사라지지 않아야 한다, 같은 의미의 정보를 유지하면서 더 효율적인 구조로 변화해야한다데이터 중복의 최소화 : 데이터 중복을 최소화하면서 , 데이터 관리의 편리성을 부여하고 자료 저장 공간을 효율적으로 사용분리의 원칙 : 독립적인 관계는 별개의 릴레이션으로 표현 , 릴레이션 각각에 대해 독립적 처리가 가능..
DB (DataBase) : 일정한 규칙 , 규약을 통해 구조화되어 저장되는 데이터 모음DBMS (DataBase Management System) : 데이터베이스를 제어 , 관리하는 통합 시스템DBMS 마다 정의된 쿼리 언어(query language)를 통해 삽입 , 삭제 , 수정 , 조회 등을 수행할 수 있음 4.1.1 엔티티 (Entity) 사람 , 장소 , 물건 , 사건 , 개념 등 여러 개의 속성을 지닌 명사를 의미서비스의 요구사항에 맞춰 속성을 정함약한 엔티티와 강한 엔티티A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라 종속적이라면 A는 약한 엔티티이고 B는 강한 엔티티이다 4.1.2 릴레이션 (Relation)데이터베이스에서 정보를 구분하여 저장하는 기본 단위엔티티에 관한 데이터를 ..
CPU 스케쥴링 알고리즘은 CPU 이용률은 높게 ,주어진 시간에 많은 일을 하게 ,준비 큐 (ready queue)에 있는 프로세스는 적게 ,응답 시간을 짧게 설정하는 것을 목표로 함 3.4.1 비선점형 방식 (non - preemptive)프로세스가 스스로 CPU 소유권을 포기하는 방식 , 강제로 프로세스를 중지하지 않으므로 컨텍스트 스위칭으로 인한 부하가 적음 FCFS (First Come , First Served)가장 먼저 온 것을 가장 먼저 처리하는 알고리즘준비 큐에서 오래기다리는 현상(convoy effect)이 발생하는 단점이 있음 SJF (Shortest Job First)실행 시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘Starvation(기아 상태) 발생할 수 있다 : 긴 시..
TDD란?TDD란 테스트부터 시작한다기능을 검증하는데 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다먼저 테스트 파일 경로에 클래스를 만들고 완성하면 java 소스 파일 폴더에 넣어도 된다완성되지 않는 코드가 배포되는 것을 방지할 수 있다 TDD 흐름기능을 검증하는 테스트를 먼저 작성한다가장 먼저 통과시킬 기능 먼저 구현함작성한 테스트를 통과하지 못하면 테스트를 통과할 만큼만 코드를 작성한다테스트를 통과한 뒤에는 개선할 코드가 있으면 리팩토링한다.테스트코드 자체도 리팩토링 대상이다리팩토링한 뒤 , 다시 테스트를 실행하여 기존 기능이 망가지지 않았는지 확인한다이 과정을 반복하면서 점진적으로 기능을 완성해나가는 것이다 TDD 사이클을 레드(Red)-그린(Green)-리팩터(Refact..
2.3.1 네트워크 기기의 처리 범위 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가애플리케이션 계층 : L7 스위치인터넷 계층 : 라우터 : L3 스위치데이터 링크 계층 : L2 스위치 브리지물리 계층 : NIC , 리피터 , AP 2.3.2 애플리케이션 계층을 처리하는 기기 L7 스위치스위치 : 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장치L7 스위치는 = 로드밸런서서버의 부하를 분산하는 기기클라이언트로부터 오는 요청들은 뒤쪽의 여러 서버로 나누는 역할을 하며 시스템이 처리할 수 있는 트래픽 증가를 목표로 한다URL , 서버 , 캐시 , 쿠키들을 기반으로 트래픽을 분산한다바이러스 , 불필요한 외부..