[Clean Architecture] 프로그래밍 패러다임
·
Reference/Clean Architecture
읽어놓고 항상 정리해야지, 정리해야지 하면서 미루던 책.. 이 내용 진짜 진짜 재밌는 파트다. 잠깐 읽으려다가 여기서 충격먹고 날 8시간 동안 의자에 묶어놨던 책. ㅋㅋ 📕 목차 1. 패러다임 개요 2. 구조적 프로그래밍 3. 객체 지향 프로그래밍 4. 함수형 프로그래밍 1. 패러다임 개요 📌 생각할 거리 프로그래밍을 시작하고 이 책을 처음 접하기 전까지 객체 지향이란 그래서 무엇을 이야기하고 싶은 건지를 당췌 알 수가 없었다. 2년 전에 코딩 처음 시작할 때 블로그나 온갖 강의를 봐도, 현실 세계의 객체를 어쩌구 메시징을 어쩌구 그런 추상적인 용어들로 추상적인 개념을 설명하는데 솔직히 "아, 저 인간도 모르는구나"라는 생각밖에 안 들었다. 그나마 함수형 프로그래밍은 이해를 하겠는데, 객체 지향 패러다임..
[Algorithm Strategies] 5-18 선형 자료 구조
·
Reference/알고리즘 문제 해결 전략
구종만님의 "프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략"을 기반으로 공부한 내용입니다. 📕 목차 1. 도입 2. 배열 3. 연결 리스트 4. 예제: 조세푸스 문제 (문제 ID: JOSEPHUS, 난이도: 하) 5. 큐와 스택, 데크 6. 예제: 짝이 맞지 않는 괄호 (문제 ID: BRACKETS2, 난이도: 하) 1. 도입 def. 요소가 일렬로 나열되어 있는 자료 구조 ex. 정적 배열, 동적 배열, 연결 리스트, 스택, 큐, 데크 ✒️ Tip. 자료 구조에서의 시간 복잡도 자료 구조 접근 탐색 삽입 삭제 배열(array) O(1) O(N) O(N) O(N) 스택(stack) O(N) O(N) O(1) O(1) 큐(queue) O(N) O(N) O(1) O(1) 이중 연결 리스트(doubly ..
[Design Pattern] Iterator
·
Reference/Design Pattern
"헤더퍼스트 디자인패턴" + "면접을 위한 CS 전공 지식 노트"에 개인적인 의견과 생각들을 추가하여 작성한 포스팅이므로 틀린 내용이 있을 수 있습니다. (있다면 지적 부탁 드립니다.) 📕 목차 1. Iterator Pattern 2. Menu 관리하기 1. Iterator Pattern 📌 반복자 패턴 💡 Collection 구현 방법을 노출하지 않으면서, Iterator를 사용하여 Collection의 모든 요소에 순차적 접근(순회)을 지원한다. Iterator는 순회 가능(연속적인)한 Collection들의 순차적인 접근을 지원하는 인터페이스 배열이나 리스트는 연속적인 데이터 집합이므로 간단한 for문으로 순회 가능하다. Hash, Tree와 같은 Collection은 순서가 없기 때문에, 순회를 ..
[Design Pattern] Proxy
·
Reference/Design Pattern
"헤더퍼스트 디자인패턴" + "면접을 위한 CS 전공 지식 노트"에 개인적인 의견과 생각들을 추가하여 작성한 포스팅이므로 틀린 내용이 있을 수 있습니다. (있다면 지적 부탁 드립니다.) 📕 목차 1. Proxy Pattern 2. Remote Proxy : Monitoring 3. Protection & Dynamic Proxy 1. Proxy Pattern 📌 프록시 패턴 다른 객체의 대리인을 두어 로직의 흐름을 제어하는 행동 패턴 Client가 대상 객체(Subject)의 메서드를 직접 실행하지 않고, Proxy 객체의 메서드에서 추가적인 로직을 처리한 뒤 접근하게 한다. 대상 클래스가 민감한 정보를 가지고 있거나, 원본 객체의 불변성을 유지하면서 생성 비용이 비싼 혹은 추가적인 기능을 가미하고 싶을..