본문 바로가기

programming study/Computer Science

(28)
Queues & Stacks 본 내용은 노마드 코더님의 강의를 토대로 작성하였습니다. 1. Queues & Stacks 실제로 프로그래밍 언어에서 존재하는 것은 아님 일종의 규칙 Abstract Data Type(ADT) 추상적 자료구조 자료구조의 방법이 코드로 정의 된 것이 아니라, 그 구조의 행동 양식만 정의된 것을 뜻함 Queues와 Stacks은 Array에 어떠한 규칙을 설정한 것 2. Stacks 팬케이크를 차곡 차곡 쌓은 것을 생각하기 Array가 수직으로 쌓인 것 요소를 추가, 삭제하는 것이 맨 위에서부터 차례로 할 수 있음 LiFo Last In, First Out Stacks의 예시 웹 브라우저의 뒤로가기를 눌렀을 때 이전의 페이지들은 스택처럼 쌓여 있음 문서 입력 중에 되돌리기 기능을 사용할 때 3. Queues..
Hash Table 본 내용은 노마드 코더님의 강의를 토대로 작성하였습니다. 1. Hash Table이란? Key Value System을 이용하여 자료를 정리 사전 Hash Table Vs. Array 레스토랑의 매뉴를 배열로 정리하면 아래와 같음 한 메뉴의 가격을 찾기 위해서는 선형 검색을 통해서 찾아야 함 O(N)의 시간 복잡도를 가짐 const menu = [ { name: "coffee", price: 10 }, { name: "burger", price: 15 }, { name: "tea", price: 5 }, { name: "pizza", price: 1 }, { name: "juice", price: 5 }, ] 위 레스토랑의 메뉴를 Hash Table로 정리하면 아래와 같음 한 메뉴의 가격을 찾기 위해 k..
Caching(캐싱) 본 내용은 10분 테코톡 파피님의 강의를 토대로 작성하였습니다. 1. Cache 오늘날 캐싱은 하드웨어 수준에서 그치는 것이 아니 운영체제, CNS, DNS등의 네트워킹 계층 그리고 웹 애플리케이션 및 데이터베이스를 비롯한 다양한 기술 계층에 걸쳐 적용되고 활용되고 있음 물건을 일시적으로 저장, 보관하기 위해 사용하는 곳이라는 의미 자주 필요한 데이터나 값을 일시적으로 저장 Caching: Cache를 사용하는 것 2. 캐시메모리 컴퓨터의 동작 흐름 CPU RAM Hard Drive CPU: 중앙처리장치 매우 빠름 기억장치에서 데이터를 받아들여 연산 작업 RAM: 주기억장치 빠름 전원이 꺼지면 데이터가 지워짐 Hard Drive: 보조기억장치 매우 느림 전원이 꺼져도 데이터가 지워지지 않음 CPU와 메모..
상태 패턴 본 내용은 10분 테코톡 포모님의 강의를 토대로 작성하였습니다. 1. 디자인 패턴 반복적으로 나타난 문제에 대해 그것을 해결한 경험 및 노하우를 축적하여 재이용하기 좋은 형태로 이름을 붙여 해법을 제시하는 패턴 양식 2. GOF 디자인 패턴 23가지의 디자인패턴을 목적에 따라 세가지 유형으로 분류 생성 패턴 객체 생성과 관련된 패턴 추상 팩토리 패턴, 빌더 패턴, 팩토리 메서드 패턴, 프로토타입 패턴, 싱글톤 패턴 구조 패턴 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 어댑터 패턴, 브리지 패턴, 컴포지트 패턴, 데코레이터 패턴, 파사드 패턴, 플라이웨이트 패턴, 프록시 패턴 행위 패턴 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 책임 체인 패턴, 커맨드 패턴, 인터프리터 패턴, 중재..
Array 본 내용은 노마드 코더님의 강의를 토대로 작성하였습니다. 1. Time Complexity(시간 복잡도) 데이터 구조의 오퍼레이션 혹은 알고리즘이 얼마나 빠르고 느린지 측정하는 방법 실제 시간을 재는 것이 아닌, 얼마나 많은 단계가 있는가로 측정 단계가 적을 수록 훌륭한 알고리즘 2. Memory volatile(휘발성) 컴퓨터를 끄면 모든 데이터가 사라짐 RAM Random Access Memory 하드 드라이브보다 빠름 데이터 접속을 랜덤으로할 수 있다. 프로그램이 돌아가고, 변수를 생성할 때 RAM에 저장 non-volatile(비휘발성) 하드 드라이브 컴퓨터를 껐다가 다시 켜도 데이터는 그대로 3. 메모리 관점에서의 배열 배열을 만들기 전, 컴퓨터에게 배열의 길이를 예약 / 할당 메모리 안에서 나..
Process vs Thread 본 내용은 10분 테코톡 쪼밀리님, 오구님의 강의를 토대로 작성하였습니다. 1. 용어정리 프로그램(Program) 어떤 작업을 위해 운영체제 위에서 실행할 수 있는 파일 웹 브라우저, 워드 프로세서, 카카오톡 프로세스(Process) 운영 체제 위에서 실행중인 프로그램 프로그램 명령어와 데이터들이 메모리에 올라오고 실행 중 또는 실행 대기중인 상태 프로세스가 동작하는 것은 프로세스의 특정 스레드가 실행 중 그 특정 스레드는 프로세스가 가진 데이터를 참조 스레드 단위 작업을 지원하기 위한 작업 할당의 단위 프로세서(Processor) 프로세스가 동작될 수 있도록 하는 하드웨어(=cpu) 동작: 프로세스가 동작될 수 있도록 하는 하드웨어(=cpu) 멀티태스킹 CPU(프로세서)는 한순간에 하나의 프로세스만 실..
TDD와 단위테스트 본 내용은 10분 테코톡 피카님의 강의를 토대로 작성하였습니다. 1. TDD란? Test-Driven Development 테스트 코드를 먼저 만들고, 실제 프로덕션 코드를 나중에 만드는 개발 기존의 개발 프로세스 vs. TDD 개발 프로세스 2. TDD 사이클 실패하는 테스트를 구현한다. 테스트가 성공하도록 프로덕션 코드를 구현한다. 프로덕션 코드와 테스트 코드를 리팩토링한다. 3. TDD를 사용하는 이유? 변화에 대한 두려움을 줄여준다. (리팩토링이 편하다) 디버깅 시간을 줄여준다. 동작하는 문서 역할을 한다. 4. TDD의 장점 테스트커버리지가 높아진다. 테스트 대상의 전체 범위에서 테스트를 수행한 범위 오버 엔지니어링 방지 오버 엔지니어링: 미래의 구현을 지레짐작하여 불필요한 코드를 작성하는 것 ..
[코드잇] 기본 자료 구조들 (1) (2021.2.26) 본 내용은 해당 강의 토대로 작성 자료 구조란? 01. 자료 구조란? 자료 구조: 데이터를 저장, 관리하기 위해 사용하는 구조 데이터의 효율적인 접근 및 조작을 가능하게 하주는 저장 및 관리 방식 02. 상황에 맞는 자료 구조 각 자료구조마다 장점, 단점이 있다. 모든 경우에 제일 좋은 자료구조는 없다. 각 상황에 알맞은 자료구조를 선택해서 사용한다. 컴퓨터가 데이터를 저장하는 법 01. 스토리지 vs. 메모리 자료 구조의 목적: 자료를 구조화하여 데이터를 효율적으로 사용 컴퓨터에 데이터가 어떻게 저장되는지 알아야 한다. 데이터가 저장되는 곳 스토리지 (Storage) 메모리 (Memory) 스토리지 (Storage) 데이터가 영구적으로 저장되는 곳 사진, 음악, 영상, 워드문서 등 데이터를 저장, 불러..