본문 바로가기

CS16

자료 구조(Data Structure) 개념 및 종류 정리 소개 정의 및 중요성: 자료구조는 효율적으로 액세스, 수정 및 처리할 수 있도록 컴퓨터에서 데이터를 구성하고 저장하는 방법입니다. 자료구조는 알고리즘과 프로그램의 성능과 효율성에 상당한 영향을 미칠 수 있으므로 컴퓨터 프로그래밍에서 중요한 역할을 합니다. 특정 작업에 대한 자료구조의 선택은 프로그램의 속도, 메모리 사용량 및 전반적인 효율성에 큰 영향을 미칠 수 있습니다. 자료구조의 종류: 다양한 유형의 자료구조가 있으며 각각 고유한 강점과 약점이 있습니다. 가장 일반적인 자료구조에는 arrays, linked lists, stacks, queues, trees, and graphs, hash tables, bloom filters 등이 있습니다 시간복잡도와 공간복잡도: 데이터 구조를 선택할 때 데이터 .. 2023. 2. 8.
REST(Representational State Transfer)란 무엇인가? 1. 소개 REST(Representational State Transfer)는 웹 서비스 및 API를 구축하기 위한 아키텍처 스타일입니다. 2000년 Roy Fielding이 박사 학위 논문에서 처음 소개했으며 이후 API 구축에 가장 널리 사용되는 접근 방식 중 하나가 되었습니다. REST의 목적은 GET, POST, PUT 및 DELETE와 같은 표준 HTTP 메서드를 사용하여 웹을 통해 데이터와 기능에 액세스하고 조작할 수 있는 간단하고 유연한 방법을 제공하는 것입니다. RESTful API는 HTTP 요청 및 응답을 사용하여 데이터를 교환하며 웹 브라우저, 모바일 앱 및 서버 측 애플리케이션을 비롯한 다양한 클라이언트에서 사용할 수 있습니다. 단순하고 확장 가능하도록 설계되었으며 작업보다는 리소.. 2023. 2. 8.
API(Application Programming Interface)란 무엇인가? 1. 소개 API의 정의: API 또는 응용 프로그램 프로그래밍 인터페이스는 소프트웨어 및 응용 프로그램을 구축하기 위한 일련의 프로토콜, 루틴 및 도구입니다. 서로 다른 시스템, 응용 프로그램 또는 서비스 간의 통신을 허용하여 데이터를 교환하거나 기능에 액세스할 수 있습니다. API의 목적: API는 서로 다른 소프트웨어 시스템 간의 다리 역할을 하여 상호 작용하고 정보를 교환할 수 있도록 합니다. 이를 통해 조직은 다른 시스템의 기능과 데이터를 활용하여 효율성을 높이고 데이터 통합을 개선할 수 있습니다. API는 또한 기업이 외부 개발자에게 서비스를 제공할 수 있는 방법을 제공하여 기업의 제안과 통합되는 새로운 애플리케이션 또는 서비스를 구축할 수 있도록 합니다. 서로 다른 시스템이 통신할 수 있는 .. 2023. 2. 7.
교착 상태(dead lock) 교착상태 정의 교착 상태(dead lock)란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태입니다. ex) 식사하는 철학자 교착상태 발생조건 아래 4가지 조건을 모두 충족할 경우에만 교착상태가 발생할 확률이 있으며, 하나라도 만족하지 않을 경우에는 발생하지 않습니다. 상호배제 : 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구 점유와 대기 : 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림 비선점 : 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없음 원형 대기 : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음 교착상태 해결 방법 상호배제 : 모든 자원을 공유 가능하게 만.. 2022. 11. 3.
프로세스 동기화 1. 동기화 동기화는 프로세스를 올바른 순서대로 실행하고, 동시에 접근해서는 안 되는 자원에는 하나의 프로세스만 접근하도록 제어하는 것을 말합니다. 만약 두 개 이상의 프로세스가 동시에 데이터에 접근할 경우에는 어떤 순서로 데이터에 접근했는지에 따라서 결괏값이 달라질 수 있으며 이를 레이스 컨디션(경쟁상태)이라고 합니다. 2. 공유자원 공유자원은 공동으로 사용하는 자원으로 전역변수나 입출력 장치, 보조기억장치 등이 될 수 있습니다. 3. 임계구역 임계 구역은 공유자원에 접근하는 코드 중 레이스 컨디션이 발생할 수 있는 특정 부분을 의미합니다. 이러한 임계 구역으로 발생하는 문제를 해결하기 위해서는 3가지 원칙이 지켜져야 합니다. 상호 배제 : 이미 작업 중인 프로세스가 있으면 다른 프로세스는 임계 구역에.. 2022. 11. 3.
CPU 스케줄링과 알고리즘 1. CPU 스케줄링 CPU 스케줄링은 작업을 처리하기 위해서 프로세스들에게 CPU 자원을 효율적으로 배분하는 것을 말합니다. 2. 스케줄링 큐(queue) 구분 설명 job queue 시스템 내에 있는 모든 프로세스의 집합 ready queue 메인 메모리에 상주하면서 실행될 준비를 하고 기다리는 프로세스 집합 waiting(or device) queue 특정 입출력 장치를 대기하는 프로세스 집합 3. 선점형 비선점형 스케줄링 구분 특징 장점 단점 선점형 스케줄링 운영체제가 프로세스가 사용중인자원을 빼앗아 다른 프로세스에 할당가능 높은 우선 순위를 가진 프로세스를 빠르게 처리하려는 시스템에 유용 빠른 응답 시간을 요구하는 시분할 시스템에 유용 문맥교환 빈번 ->오버헤드 발생 가능 비선점형 스케줄링 프로.. 2022. 11. 3.