CS 5

API, 프레임워크, 라이브러리

프레임워크 라이브러리 API 이 세가지를 가지고 차이점을 물어보는 경우가 많음 API : 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 어플리케이션 프로그래밍 인터페이스 인터페이스는 우리가 상호작용할 때 사용했듯 마찬가지 EX ) 손님 - 과일가게 여기서 - 가 API USER - 카카오톡 API - 카카오톡 프레임워크와 라이브러리는 클래스 뭉치 프레임워크 : EX) 차를 만들기 위한 뼈대, 뼈대에 대한 이해가 없더라도 만들 수 있도록 해주는 것 정의 : 응용프로그램 및 소프트웨어 개발을 수월하게 하기위해 제공된 개발환경 프레임워크는 종속성을 우리에게 줌 라이브러리 : EX) 컴포넌트화 된 모듈, 즉 뼈대가 아닌 그 뼈대를 만들기 위한 모..

CS 2024.01.25

가비지 컬렉터

C#은 C++과 달리 매니지드 힙이라는 개념이 도입, 즉 자동으로 힙영역의 메모리를 관리. 이를 가비지컬렉터가 관리해줌 매니지드 힙 : 메모리를 자동으로 관리해주는 힙 가비지컬렉터 (GC) 참조되지않는 메모리를 수집해서 해제해줌 가비지컬렉터가 나온 배경 1. 메모리누수 문제(Memory Leak) 2. 이중 해제 : 이미해제가 된 포인터(댕글링(Dangling Pointer) 포인터)를 해제하는 것 3. 이른 해제 : 사용이 끝나지 않았는데도(참조가 되는중) 해제하는 것 => 스마트포인터도 이를 해결하기 위해 나온 것이지만 직접 사용해야함. 매니지드힙은 순차적으로 메모리가 쌓이는 구조. 특정조건에 루트를 돌면서 참조가 되고 있는지 확인 후 참조가 되고 있지 않는 놈들을 모아서 가비지컬렉터가 해제. 외부단..

CS 2023.12.06

API / STL

API : Application Programming Interface 두 소프트웨어 구성 요소가 서로 통신할 수 있게 해주는 매커니즘이다. 예를 들어 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있다. 휴대폰의 날씨 앱은 API를 통해 기상청의 소프트웨어 시스템과 통신하여 날씨를 표시한다. STL : Standard Template Library 여러 자료구조, 함수, 알고리즘 등을 쓰기 쉽게 정형화해서 라이브러리화 해둔 것이다. 여기서 라이브러리란 프로그램에서 미리 사용할 수 있도록 미리 만들어져 있는 함수와 변수의 모음집이다. STL의 구성 Container 컨테이너 데이터를 저장하는 객체로 컬렉션 혹은 자료구조라고 한다. STL에는 표준 연속 컨테이너인 vector, deque, lis..

CS 2023.07.26

객체지향 프로그래밍이란?

객체지향 프로그래밍이란? 현실 세계를 프로그래밍으로 옮겨와 현실 세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍 하는 기법이다. 객체지향 프로그래밍의 3요소 캡슐화 : 속성과 기능을 캡슐로 감싸 외부로부터 안보이게 하는 정보 은닉 개념. 상속 : 부모의 클래스로부터 모든 것을 상속받는 자식 클래스의 구조를 만드는 것. 다형성 : 상황에 따라 esc키가 다른 역할을 하는 것처럼 하나의 기능이 다양한 역할을 수행하는 것. 객체지향 5원칙 (SOLID 원칙) 1. 단일 책임 원칙( Single Responsibility Principle ) ○ 모든 클래스는 각각 하나의 책임만을 가져야 한다. 클래스를 변경하는 이유 또한 단 하나의 이유여야 한다. 1. 개방 폐쇄 ..

CS 2023.07.13

메모리의 구조 - 메모리 영역

운영체제에서 프로그램을 실행할 때 프로그램의 정보들을 메모리에 로드해야 한다. 이 때 정보들이 저장되는 메모리의 영역은 코드영역, 데이터영역, 힙영역, 스택영역으로 구성되어 있다. 코드영역 코드영역은 실행시킬 프로그램의 코드가 저장되는 영역이다. 텍스트 영역이라고도 부른다. CPU는 코드영역에 저장된 명령들을 처리하게 된다. 코드영역에 저장된 명령들은 프로그램이 시작되고 종료될 때까지 남아있는다. 데이터영역 데이터영역은 프로그램의 전역변수(static)이 저장되는 영역이다. 코드영역과 마찬가지로 프로그램의 시작되고 종료될 때까지 남아있는다. 힙영역 힙영역은 사용자가 직접할당하고 해제할 수 있는 영역으로 런타임에서 크기가 결정된다. 즉 프로그램이 실행중에 할당되고 해제될 수 있다는 것이다. new 연산자를..

CS 2023.07.12