728x90
반응형
SMALL

전체 글 50

[Design Pattern] MVVM 패턴

Model-View-ViewModel(MVVM) 패턴에 대한 정리MVVMModel + View + View Model 3가지 그룹으로 이루어진 패턴WPF에서 많이 사용되는 프레임워크 패턴사용 이유화면에 보여지는것과 실제 데이터가 처리되는 로직을 분리하여 유지보수, 개발 효율 증가시키기 위함구조Model : App에서 다루는 DataView  : 사용자에게 보여지는 UI 요소ViewModel : Model이 가지고 있는 정보를 View에 표현하기 위해 만든 중간 단계 Model동작 View를 통한 사용자의 UI 조작 입력사용자 입력을 Command 패턴으로 View Model에 전달View Model은 Model에게 Data 요청Model은 요청받은 Data를 View Model에게 전달View Model..

Design Pattern 2023.10.03

[C++] 스마트 포인터

스마트 포인터에 대한 정리RAII(Resource acquisition is initialization) 패턴객체가 쓰이는 Scope를 벗어나면 Resource를 해제해주는 기법bool error() {    return true;}void fnc() {    int* c = new int[100];    if (error()) return;    delete[] c;}int main(void) {    fnc();    _CrtDumpMemoryLeaks();        return 0;}Detected memory leaks! Dumping objects -> {156} normal block at 0x00C60C58, 400 bytes long. Data: CD CD CD CD CD CD CD ..

Language/C++ 2023.09.25

[Network] REST API

REST API에 대한 설명REST(Representational State Transfer)자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 것HTTP URI를 통해 자원 명시HTTP Method를 통해 자원에 대한 CRUD Operation 적용CRUD Operation기본적인 데이터 처리 기능인 Create, Read, Update, Delete를 묶어 일컫는 말REST 구성자원(Resource) : HTTP URI행위(Verb) : HTTP Method표현(Representations) :  HTTP MessageREST 특징1. Uniform Interface(인터페이스 일관성)URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행 2. Stateless(무상태)작업을 위한..

Network 2023.09.20

[C++] OOP 특징

OOP 특징 및 핵심 개념에 대한 정리OOP(Object Oriented Programming)객체지향 프로그래밍필요한 데이터를 추상화하여 속성과 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 캡슐화(Encapsulation)객체의 속성과 행위를 하나로 묶고 구현 코드를 외부에 감춰 은닉하는 것데이터 번들링(Data bundling) - 변수와 함수를 하나의 단위로 묶는 것멤버 변수 + 멤버 함수 + 접근지정자를 =  클래스로 캡슐화 지원정보 은닉(Information hiding) - 클래스 내부 구현을 외부로 드러나지 않도록 감춤추상화(Abstraction)중요하고 필요한 정보만 표현하기 위해 객체의 공통적 속성과 행위를 하나로 묶는 것 상속(In..

Language/C++ 2023.09.18

[C++] 클래스(Class)

C언어에서의 구조체사용자가 여러 데이터(멤버 변수)를 가지고 새롭게 정의할 수 있는 사용자 정의 타입 struct Person { char* name; int age;}; void PrintPerson(struct Person p) { printf(“%s, %d\n”, p.name, p.age);}void main() { struct Person jane, john; jane.name = “Jane Smith”; jane.age = 20; PrintPerson(jane); john.name = “John Smith”; john.age = 15; PrintPerson(john);} C++에서의 클래스사용자가 여러 데이터(멤버 변수), 데이터를 조작하는 방법(멤버 함수, 매소드..

Language/C++ 2023.09.17

[OS] 뮤텍스(Mutex) & 세마포어(Semaphore)

뮤텍스와 세마포어의 특징, 차이에 대한 정리임계 영역(Critical Section)함수 내에 둘 이상의 스레드가 동시에 실행하면 문제를 일으키는 하나 이상의 문장으로 묶여있는 코드블록쓰레드 동기화동일한 메모리 영역으로 동시 접근이 발생하는 상황에 필요동일한 메모리 영역에 접근하는 쓰레드의 실행 순서를 지정해야 하는 상황에 필요뮤텍스(Mutex)Mutual Exclution임계영역에 여러 쓰레드의 동시접근을 허용하지 않는 기술동기화 대상이 하나일때 사용하기 두 함수를 통해 임계영역 보호pthread_mutex_lock(pthread_mutex *mutex)pthread_mutex_unlock(pthread_mutex *mutex)pthread_mutex_lock(&mutex);// 임계 영역 시작// ...

OS/All 2023.09.16

[git] Permission denied (publickey) 해결 방법

git clone이나 push할때 발생하는 Permission denied (publickey) 에러 해결 방법 정리1. ssh key 생성 명령어 입력ssh-keygen -t rsa -b 4096 -C github 메일 주소ssh-keygen -t rsa -b 4096 -C "email@addrres"2. 경로지정, 비밀번호 설정(안할 경우 엔터)Generating public/private rsa key pair.Enter file in which to save the key (/c/Users/User/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been..

Git 2023.09.14

[C++] 띄어쓰기 포함 문자열 입력

C++로 띄어쓰기(공백)를 포함해서 문자열 입력 받는 방법 정리cincin을 사용하여 아래와 같이 코드 작성 시 띄어쓰기 전 까지만 저장됨string s;cout > s;cout 띄어쓰기 포함 입력 방법1. getline 함수 사용string 헤더에 정의 되어있는 함수#include int main(void) { string s; cout  2. cin.getline 사용instream에 정의 되어있는 함수로, char* 를 입력받고, 마지막 매개변수로 구분자 지정 가능#include int main(void) { char s[100]; cout

Language/C++ 2023.09.12

[OS] 메모리 구조(stack, heap)

메모리 구조에 대한 정리메모리 구조프로그램의 실행을 위해 제공되는 메모리 공간메인 메모리(RAM)에 할당 1. 코드(code) 영역2. 데이터(data) 영역3. 스택(stack) 영역4. 힙(heap) 영역코드(code)  영역실행할 프로그램의 코드가 저장되는 영역데이터(data)  영역전역변수와 정적(static) 변수가 저장되는 영역*정적변수 : 프로그램이 종료되기 전까지 메모리가 소멸되지 않는 변수스택(stack) 영역함수 호출 정보 저장(지역변수, 매개변수)잠깐 사용하고 삭제하는 데이터 저장용정의된 블록을 벗어날때 소멸됨함수 호출 위치 저장힙 보다 속도가 빠름크기에 제한이 있어 매우 큰 데이터는 저장할 수 없음힙(heap) 영역동적할당 되는 변수 저장직접 할당과 해제 필요(가비지 컬렉터 있을 경..

OS/All 2023.09.08

[C] Compile/Build 과정

C로 작성한 소스코드 컴파일/빌드 과정에 대한 정리컴파일(Compile)인간이 이해할 수 있는 언어로 작성된 고수준 언어로 작성된  소스코드를 CPU가 읽을 수 있는 저수준의 언어로 변환하는 작업빌드(Build)소스코드를 기계어로 변환하여 컴퓨터가 이해할 수 있는 실행파일로 만드는 과정 빌드 과정전처리기(Preprocessor)헤더파일, 메크로와 같이 전처리기 구문을 처리.i 파일 생성컴파일러(Compiler)c 코드를 어셈블리어로 변환.s 파일 생성어셈블러(Assembler)어셈블리어를 기계어로 변환.o 파일 생성링커(Linker)여러가지 object 파일들을 연결하고, 다른 라이브러리(.a)가 있을 경우 연결시켜줌.exe 파일 생성

Language/C 2023.09.07
728x90
반응형
LIST