본문 바로가기
반응형

cs공부62

정렬 알고리즘 총 정리 +) C# 구현 코드 정렬이란?데이터를 기준에 맞게 순서대로 배열하는 작업이다.정렬 알고리즘이 왜 필요한가요?주요 목적은 탐색 효율성을 높이는 것이다.안정 정렬정렬 후 동일한 키 값의 요소 순서가 유지되는 정렬제자리 정렬추가적인 메모리를 필요로 하지 않는 정렬참조 지역성CPU가 미래에 원하는 데이터를 예측해 캐시 메모리에 담아 놓는데 이때의 예측률을 높이기 위해 사용되는 원리이다. 최근에 참조한 메모리나 그 메모리와 인접한 메모리를 다시 참조할 확률이 높다는 이론을 기반으로 캐시 메모리에 저장해둔다.삽입 정렬데이터 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 삽입하는 알고리즘이다.방식1) 매 순서마다 해당 요소를 앞의 정렬된 배열에서 삽입할 수 있는 위치를 찾아 해당 위치에 넣는다... 2024. 5. 20.
OOP 관련 총 정리(특징, SOLID) OOP(Object Oriented Programming)란?프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고 그 객체간의 상호 작용을 통해 로직을 구성하는 방법을 의미한다.장점 : 코드의 재사용이 용이하므로 유지보수가 쉽다.단점 : 설계시 많은 시간과 노력이 필요하다.01 캡슐화객체의 데이터와 메서드를 하나의 단위로 묶고외부로부터 데이터의 직접 접근을 제한하는 원칙이다. 이를 통해 데이터의 무결성과 객체의 내부 상태를 보호한다. 정보 은닉 기법 중 하나가 캡슐화이다. 추상화도 구현 은닉, 객체의 구체적인 타입 은닉도 업캐스팅이다.ex) protected, private, public02 상속하나의 클래스가 다른 클래스의 특성과 메서드를 물려 받는 기능이다. 이를 통해 재사용성을.. 2024. 5. 17.
자료구조 총 정리 1편 - Array,LinkedList,Queue,Stack,Hash,Set 자료 구조란(Data Structure)?ADT를 실제로 구현한 것을 자료구조라고 한다. 간단히 말해 어떻게 구현할 것인가를 다룬 것을 자료 구조라고 한다.ADT(Abstact data type)데이터의 궂와 연산의 속성과 특징만 다루고 실제 구현 방법은 다루지 않는다. 즉 어떻게 구현하는지에 대한 부분은 배제하고 무엇을 하는지 다루는 것을 ADT라고 한다. how에 대해서는 다루지 않는다. 프로그래밍 시점에서 예를 들어보자면 ADT는 interface, DS는 클래스라고 생각하면 된다.Array01 ADT배열은 같은 타입의 데이터를 연속된 메모리 공간에 저장한다. 각 데이터 요소는 인덱스를 통해 접근할 수 있다. 배열은 연속된 메모리 공간에 저장되므로 CPU 캐시를 효율적으로 사용할 수 있어 성능이 향.. 2024. 5. 17.
운영체제 - 스택 메모리, 힙 메모리 자세히 알아보기 +) args란 메모리 구조에 대해 알아보는데 문서로만 읽고서는 잘 이해가 가지 않아 실제 코드로 이해하고 싶어 게시글을 쓰게 되었다. 우리가 흔히 메모리의 구조에 대해 구글링 해보면 아래와 같은 형식이 나온다.01 코드 영역텍스트 영역이라고도 불린다. 기계어로 이루어진 명령어가 저장된다. 코드 영역에는 데이터가 아닌 CPU가 실행할 명령어가 담기기 때문에 쓰기가 금지된 read-only공간이다. 실행되는 프로그램의 코드가 저장되는 메모리 영역02 데이터 영역프로그램이 실행되는 동안 유지되어야 하는 데이터가 저장되는 공간이다. 대표적으로 전역변수와 정적 변수 등이 이영역에 해당된다. 이 변수들은 프로그램이 시작될때 할당되고 프로그램 종료시 소멸된다.03 힙 영역프로그래머가 직접 공간을 할당/해제하는 메모리 영역이다. 프.. 2024. 5. 15.
운영체제 총 정리 운영체제란?컴퓨터 시스템의 핵심 부분으로 컴퓨터의 자원을 효율적으로 관리하고 응용 프로그램이 원할하게 실행되도록 하는 특별한 프로그램이다. 모든 프로그램은 운영체제의 지원하에 실행된다.1) CPU 관리 - CPU 스케줄링2) 프로세스 관리 - 다중 프로세스 관리, 프로세스 상태 관리3) 메모리 관리 - 새로운 프로세스가 시작될때 해당 프로세슬르 어느 주소로 메모리에 할당할지4) 파일시스템 관리 - 파일 정의 및 디렉터리 관리운영체제는 크게 커널 영역과 사용자 영역으로 나뉜다.커널 영역항상 컴퓨터가 부팅될 때 메모리 내에 따로 적재되어 실행되는 공간이다. 커널은 운영체제의 핵심 부분으로 시스템의 핵심 기능과 자원을 관리한다.사용자 영역커널 영역을 제외한 나머지 영역으로 사용자가 이용하는 응용프로그램이 적재.. 2024. 5. 3.
네트워크프로그래밍 - HTTP와 HTTPS HTTP(Hyper Text Transfer Protocol 또는 HyperTexT Protocol) WWW(World Wide Web)의 토대이며 하이퍼텍스트 링크를 사용하여 웹페이지를 로드하는데 사용된다. 이는 클라이언트/서버 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 요청에대한 HTTP 응답으로 반환한다. 프로토콜이란? 네트워크나 통신 시스템에서 데이터를 주고 받는데 사용되는 규약이나 규칙의 집합이다. 그러므로 특정한 형식과 구조를 가지며 통신하는 장치들 간에 상호작용하는 방법을 정의한다. 프로토콜은 일반적으로 계층 구조를 가지며 대표적으로 TCP/IP 프로토콜이 있다. 이는 인터넷에서 데이터를 .. 2024. 3. 11.
반응형