Study/Computer Science 16

[운영체제] 프로세스 스케줄링

정처기 실기 계산식 문제를 풀다가 스케줄링 알고리즘 이론을 간단하게 정리해두려고 한다. (이것도 시험용..ㅎㅎ) 스케줄링(Scheduling)이란?메모리에 올라온 프로세스들 중 어느 프로세스를 먼저 처리할지 순서를 정하는 것을 의미한다. 선점형 스케줄링운영체제가 실행 중인 프로세스로부터 CPU를 강제로 빼앗을 수 있는 방식이다. 1. Round Robin✔️시간 단위를 정하여 순서대로 CPU에 할당2. SRT(Shortest Remaining Time)✔️실행 시간이 가장 짧은 프로세스에 CPU 할당3. 다단계 큐(MLQ, Multi-Level Queue)그룹에 따라 다른 준비 상태 큐를 사용하는 기법4. 다단계 피드백 큐(MLFQ, Multi-Level Feedback Queue)가장 높은 우선순위의 ..

[디자인 패턴] GoF(Gang of Fours) 디자인 패턴 종류와 특징

정처기 실기 시험을 위해 디자인 패턴의 종류와 특징을 정리해두려고 한다. (시험용 암기..ㅎㅎ) 생성 패턴객체 생성과 관련한 패턴 1. Abstract Factory(추상 팩토리)서로 관련된 객체들의 패밀리를 생성하기 위해 인터페이스를 제공한다.구체적인 클래스를 명시하지 않고도 객체들을 생성할 수 있다.클라이언트는 생성된 객체를 인터페이스를 통해 사용한다.2. Builder(빌더)복잡한 객체의 생성 과정을 여러 단계로 나누어 처리한다.최종적으로 다양한 표현을 갖는 객체를 생성할 수 있도록 한다.객체의 생성이 복잡할 때 사용되며, 코드의 유지보수성과 확장성을 향상시키는 데 유용하다.3. Factory Method(팩토리 메서드)객체 생성을 처리하는 인터페이스를 제공하고, 실제 객체의 생성은 서브클래스가 결..

[자료구조] 시간 복잡도, 공간 복잡도

자료구조자료구조는 효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 방법을 의미한다.적절한 자료구조를 선택함으로써 특정 작업을 더 빠르고 효율적으로 수행할 수 있다.예) 배열, 연결 리스트, 스택, 큐, 해시 테이블, 트리, 그래프 등 알고리즘알고리즘은 문제를 해결하기 위한 절차나 방법을 의미한다.알고리즘의 효율성은 주로 시간 복잡도와 공간 복잡도로 평가한다.예) 정렬 알고리즘, 검색 알고리즘, 그래프 알고리즘, 동적 프로그래밍, 분할 정복 등 시간 복잡도시간 복잡도는 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지를 의미한다.동일한 기능을 수행하는 알고리즘이 있다면 시간이 적게 걸리는 것이 좋은 소스다. 시간 복잡도를 표현할 때는 빅오(Big O) 표기법을 사용하는데, 가장..

[네트워크] 서브넷 계산

정처기 실기 계산식 문제를 풀다가 금방 까먹을 것 같아서 간단하게 정리해두려고 한다. 서브넷(Subnet)하나의 큰 네트워크를 더 작은 네트워크로 분할한 것을 의미한다. 서브네팅(Subnetting)하나의 IP 네트워크를 더 작은 네트워크 영역으로 나누는 과정이다. 서브넷 마스크(Subnet Mask)IP 주소에서 네트워크 부분과 호스트 부분을 구분하는 데 사용한다. IP 주소 클래스클래스옥텟 IP최상비트A Class0 ~ 1270B Class 128 ~ 19110C Class 192 ~ 223110  예제. 다음 조건일 때 사용되는 네트워크 주소와 브로드캐스트 주소는?IP 주소 : 200.64.33.14서브넷 마스크 값 : 255.255.252.0 서브넷 마스크 3번째 옥텟 252 -> 11111100..

[소프트웨어 공학] 모듈 구현 - 결합도와 응집도

모듈 구현이란?소프트웨어를 기능 단위로 분해하여 개별적으로 구현하는 것을 말한다. 효과적인 모듈화를 하려면 어떻게 해야 할까?🤔결합도를 낮추고, 응집도를 높여 모듈의 독립성을 강화한다. 결합도모듈과 모듈 간의 관련성/의존성 정도를 나타낸다. 그렇기 때문에 결합도가 낮을수록 좋다.자료(데이터) 결합도(Data Coupling) : 값 전달스탬프 결합도(Stamp Coupling) : 배열 등 전달제어 결합도(Control Coupling) : 제어 요소 전달외부 결합도(External Coupling) : 다른 모듈 변수 사용공통 결합도(Common Coupling) : 전역변수 사용내용 결합도(Content Coupling) : 다른 모듈 기능 이용 ✔️ 암기 방법(결합도는 점점 높아짐)데(테)스형 제..

[Database] 키(Key)의 개념 및 종류

키(Key)의 개념키는 데이터베이스에서 튜플을 식별하고 구별하는 데 사용되는 컬럼으로, 기본키, 외래키, 후보키, 슈퍼키, 대체키가 있다. 🔑 키의 종류후보키(최소성)릴레이션에서 튜플을 유일하게 식별할 수 있는 속성들의 집합반드시 하나 이상 존재해야 하며 유일성과 최소성을 동시에 만족하는 키기본키Primary Key를 줄여 PK 또는 프라이머리키라고 부름후보키 중에서 선택한 주키(Main Key)특정 튜플을 유일하게 식별할 수 있으며, NULL 값을 가질 수 없고, 중복된 값을 가질 수 없음대체키둘 이상의 후보키가 있을 때, 기본키로 선택되지 않은 나머지 키슈퍼키(유일성)튜플을 유일하게 식별할 수 있는 속성들의 집합최소성은 만족시키지 않음외래키Foreign Key를 줄여 FK 라고 부름다른 릴레이션의 ..

[Database] 정규화

정보처리기사 필기를 공부하다가 정규화 과정에 대해 간단하게 정리해두려고 한다. 정규화(Normalization)이상 현상을 제거하기 위해 데이터베이스를 구조화하는 과정이다.정규화를 통해 데이터 간의 종속성을 제거하여 중복되는 데이터를 줄이고 데이터의 일관성과 무결성을 보장한다. 정규화 과정은 정규형 원칙을 기반으로 정규형을 만들어가는 과정이며, 정규화된 정도는 정규형(NF, Normal Form)으로 표현한다.기본 정규형 - 제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형고급 형규형 - 제4정규형, 제5정규형 1NF(제1정규형)릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자값만으로 구성되어야 한다.릴레이션의 속성 값 중에서 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있..