본문 바로가기

필수 개발지식36

[자료구조] 레드-블랙 트리(Red-Black Tree)란? ✅자료구조와 트리(Tree)란? 자료구조란? CS에서 데이터를 다룰 때 접근과 수정을 조금 더 효과적으로 할 수 있는 함수, 혹은 명령을 뜻한다. Array, Stack, Queue, List etc.. 우리가 쓰는 모든 소프트웨어는 알고리즘과 자료구조로 이루어져 있고, 자료구조의 아래항목을 파악하고 있어야 한다. 정의 어떻게 구현할지 사용처 탐색 알고리즘 트리(Tree)란? 그래프를 기반으로 방향성이 존재하는 비순환 자료구조 중 하나이다. 가계도와 같은 계층적인 구조를 표현할 때 사용된다. 일반적인 트리 구조에서는 삽입할 데이터 n이 있을 때 부모 노드부터 탐색하면서 삽입한 데이터보다 n이 해당 노드보다 작으면 왼쪽 노드에, 해당 노드보다 크면 오른쪽 노드에 저장한다. ex) RDBMS에서 인덱스의 알.. 2023. 6. 14.
Redis란 무엇인가? 윈도우에서 Redis 설치하기 ✅Redis를 써보고자 한 이유 2023.06.05 - [분류 전체보기] - 230603 실전프로젝트7 [Node.js/Nest.js_sort별 목록조회 api 보완] 프로젝트에서 user위치를 기준으로 주변 식당 목록을 조회할 때, 매번 main repository에 접근하는 것이 아니라 redis에서 캐싱된 data를 조회하는 방식을 쓰는 것이 효율적일 것 같았다. ✅Redis란 무엇이며 왜 쓰는가? 대용량 데이터 저장, 비정형 데이터 저장, 빠른 응답시간 등의 새로운 요구사항에 기존 RDBMS만으론 대응하기 어려울 때가 있다. 그럴 때 기존 RDBMS와 차별적인 강점을 갖춘 DB 관리 프로그램들, 즉 Nosql을 찾게 된다. NoSql 이란? 기존 RDBMS 방식을 탈피한 데이터베이스를 의미한다. .. 2023. 6. 5.
[Design Pattern] 전략 패턴 (Strategy) ✅행동패턴의 전략 패턴(Strategy Pattern)이란? 전략 패턴은 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴 이다. 즉, 어떤 일을 수행하는 알고리즘이 여러가지 일때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 필요한 경우에 적합한 패턴이다. 네비게이터 앱을 만들어본다고 가정하자! 네비게이터에는 자동차를 위한 길, 걸어갈 길, 대중교통을 이용할 길 등 많은 옵션이 계속 추가될 것이다. 전략패턴(Strategy Pattern)의 구조 전략패턴에선 크게 Context, Strategies 두 가지의 요소가 중요하다. Context : Navigater, Strategies: 여러 옵.. 2023. 5. 23.
PostgreSQL/Docker란 무엇인가? (feat.TypeORM) ✅Docker란 무엇이며 왜 쓰는가? Docker가 뭐야? 컨테이너 기반의 오픈소스 가상화 플랫폼 Docker에서 중요한 개념인 컨테이너(Container), 이미지(Image) 컨테이너는 격리된 공간에서 프로세스가 동작하는 기술이며, 가상화 기술의 하나이다. 하나의 서버에 여러개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행된다. 이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다.(Immutable). 컨테이너는 이미지를 실행한 상태라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장된다. 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.. 2023. 5. 22.