일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- DP
- Hash
- 이진탐색
- String
- MYSQL
- Dijkstra
- SQL
- Trie
- 그래프
- binary search
- Two Points
- union find
- two pointer
- 스토어드 프로시저
- Stored Procedure
- 다익스트라
- Brute Force
- Today
- Total
목록전체 글 (418)
codingfarm
OOP -기존의 프로그래밍은 컴퓨터 사고 중심이었지만 oop는 인간 중심적 프로그래밍 기술이다. -실제 세계를 모델링 한다. -정보은닉에 대한것이다. -모듈화에 대한것이다. -코드 재사용을 위한것이다. -메시지 전달에 대한것이다. --메시지 전달이란 한 객체에서 다른 객체로 데이터를 전달하거나, 다른 객체의 메소드를 실행시키는 것이다. -행위자(object)와 행위(method)에 대한것이다. 4대 특징 1.추상화(Abstraction) -현실세계에 존재하는 사물을 객체라 보고 이들로 부터 개발하고자 하는 어플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는것이다. 즉, OOP란 실제 세계를 모델링 하는 것이다. -절차지향적 프로그래밍에서도 구조체와 같은 형태로 존재했던 개념이다. - 하나의 새로운 데이..
C++에서 객체를 생성하는 것은 매우 까다롭다. 어느 메모리 영역? 스택할당 힙할당 어떤 포인터로? 일반 포인터 스마트포인터 객체의 생성방법은? native 코드로 생성 패턴으로 builder, factory 생성패턴 정의 : 까다로운 객체 생성 절차에 대한 어려움을 해소하는 디자인패턴 생성패턴에 대해 본격적으로 배우기 전 C++의 기본적인 부분을 알아야 한다. 스택(stack) 할당 스택 메모리를 할당받아 객체를 생성하면 stack에 할당됨 scope를 벗어날 때 자동으로 소멸되며 소멸자가 호출됨 힙(heap) 할당 원시 포인터를 이용하여 동적 할당을 통해 객체를 생성하면 heap에 할당됨 scope를 벗어나도 소멸되지 않는다. 메모리 해제를 비롯한 뒷정리에 대해 불분명한 문제가 생긴다. 스마트 포인터..
3.리스코프 치환 원칙(LisCov Substitution Principle, LSP) 어떤 자식 개체에 접근할 때 그 부모 객체의 인터페이스로 접근하더라도 아무런 문제가 없어야 한다. LSP가 준수되지 않는경우 아래는 직사각형 클래스 이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Rectangle { protected: int width, height; public: Rectangle(const int width, const int height) : width(width), height(height) {} int get_width() const { return width; } virtual void set_width(const int width) { this->width ..
SOLID는 다음과 같은 디자인 원칙들을 아우르는 약어이다. 단일 책임 원칙(Single Responsibility Principle, SRP) 열림-닫힘 원칙(Open-Closed Principle, OCP) 리스코프 치환 원칙(Liscov Substitution Principle, LSP) 인터페이스 분리 원칙(Interface Segregation Principle, ISP) 의존성 역전 원칙(Dependenc Inversion Principle, DIP) 이 5가지 원칙은 디자인 패턴의 존재 이유에 전반적으로 녹아들어가 있다. 1. 단일 책임 원칙(Single Responsibilty Principle, SRP) 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함 클래스..