전체 글
TIL | 1.17.화 [CS 기초지식 | Index]
데이터 베이스 - Index DB에서 Index란? 인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조이다. 검색연산의 최적화를 위해 DB 내 값의 주소정보로 구성된 데이터 구조 (키:주소) 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장 (인덱스 생성 시 데이터를 오름차순으로 정렬) Index는 검색 성능의 속도를 올려주는 좋은 자료구조이지만 모든 데이터 컬럼에 인덱스를 생성하지 않는다. 그 이유는? 인덱스의 가장 큰 문제점은 정렬된 상태를 계속 유지시켜줘야 한다는 점인데 이런점에서 인덱스는 DML (Data manipulation language)에 아주 취약 인덱스는 테이블의 전체 데이터 중에서 10~15..
TIL | 1.16.월 [CS 기초지식 | Django 질의응답]
Django 질의 응답 - Django 란? 파이썬이라는 개발언어에서 웹을 개발하기 위해 만들어진 프레임워크이다. [프레임워크 란?] 프레임워크는 프로그래밍언어에서 복잡한 기능을 수행하기 위해 만들어진 틀이며, 다양한 기능을 구현하기 위해 사용합니다 [프레임워크와 라이브러리 차이점?] 프레임워크와 라이브러리의 차이 라이브러리는 어플리케이션의 흐름을 사용자가 직접 제어하지만 프레임워크는 흐름을 제공해준다. - 백엔드 스택 | Django Django는 템플릿부터 데이터베이스까지 웹을 구현하는데 필요한 기본적인 기능을 전부 제공하는 프레임워크이고, 쉽고 빠르게 구현이 가능하다 Python 기반 웹프레임워크이기 때문에 파이썬에서 가능한 모든 동작들이 가능하며, 다양한 라이브러리가 있다. 웹 사이트 로그인, 회..
TIL | 1.6.금 [CS 기초지식 | 우선순위 큐]
우선순위 큐(Priority Queue) - 원리 이유 : 큐의 성질을 가지고 있긴 하지만 데이터의 우선순위순으로 데이터를 꺼내게 되는데 이 부분에서 우선순위 큐는 2차원 형태의 이진 트리구조를 갖게 되고 최대 힙을 이용해 구현하게된다. - 시간 복잡도 시간 복잡도 : O(NlogN)
TIL | 1.5.목 [CS 기초지식 | 해시 테이블]
- 해시테이블 [해시 테이블] 연관 배열 구조(key - value 연관)를 이용하여 key에 value를 저장하는 자료구조 [해시테이블의 특징] 해시 테이블은 적은 자원으로 많은 데이터를 효율적으로 관리할 수 있다. 하드 디스크나, 클라우드에 존재하는 무한한 데이터들을 유한한 개수의 해시 값으로 매핑하면 작은 메모리로도 프로세스의 관리가 가능하다. [해시 테이블 | 충돌 해소] 해시 충돌이란? 해시 함수가 서로 다른 두 개의 입력 값에 대해 동일한 출력 값을 내는 상황 충돌 해소 전략 체이닝 방법 : 충돌 시 연결 리스트를 만들어 값을 할당하고 이어서 연결하는 방식 Open Addressing 방법 : 충돌 시 해시 테이블에서 놀고 있는 인덱스에 할당하는 방식' [참고 링크] https://velog...
TIL | 1.4.수 [CS 기초지식 | 배열 / 링크드리스트]
- 배열 [Array] 배열은 특정 크기만큼 연속된 메모리 공간에 데이터를 저장하는 자료구조로 데이터를 빈번하게 추가하거나, 삭제할땐 효울적이지 못하다. - Linked-List [linked-list] 배열과 달리 연속된 메모리 공간에 저장되어 있지 않다. 각각의 데이터가 메모리 공간 상에 고유한 노드로 존재한다. 그리고 이 노드는 자신의 앞에 있는 데이터와 뒤에 있는 데이터에 대한 주소를 기억하고 있다. → 따라서 데이터를 추가 하거나 삭제할때 복잡도가 현저히 줄어든다. 왜? 각 노드들이 가리키는 주소만 변경해주면 되기 때문에 [참고 링크] https://kimmeh1.tistory.com/473 [자료구조] Array와 Linked List의 차이는 무엇일까? Array와 Linked List가 무..
TIL | 1.3.화 [CS 기초지식 | 스택 / 큐]
자료구조 [스택 / 큐] - 스택 [Stack] 차곡차곡 쌓아 올린 형태의 자료구조 즉, 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 구조적 특징으로 후입선출(LIFO, Last-In-First-Out) 구조를 갖고 있다. - 큐 [QUEUE] 사전적 의미처럼 줄을 서서 기다리는 형태의 자료구조 즉, 선입선출(FIFO, First in first out) 방식의 자료구조 이다. → 한쪽 끝에서 삽입 작업이, 다른 쪽 끝에서 삭제 작업이 양쪽으로 이루어짐
TIL | 1.2.월 [CS 기초지식 | 이분 탐색 / 이진 탐색]
- 이분 탐색 이분탐색(=이진 탐색)이란? 데이터 탐색 방법 중 하나로 내가 찾고자 하는 값이 정렬된 배열의 중간 값보다 크면 중간값을 포함한 하위 값들은 탐색 대상에서 제외된다. 반대로 찾고자 하는 값이 배열의 중간 값보다 작으면 중간 값을 포함한 상위 값들은 탐색에서 제외된다. 정리하면 중간값과 찾으려는 값의 대소를 비교한 뒤 탐색 범위를 반으로 줄여가며 값을 찾는 탐색 알고리즘이다. 이분 탐색 | 시간 복잡도 중간을 기준으로 탐색 대상을 절반씩 줄여나가기 때문에 배열을 전수 조사하는 O(N)에 비해 훨씬 빠른 O(logN)이다.
TIL | 12.30.금 [CS 기초지식 | 시간 복잡도 / 공간 복잡도]
- 시간 복잡도 [시간 복잡도] 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 알고리즘을 수행하는 데 연산들이 몇 번 이루어지는 지 (알고리즘의 절대적인 실행시간과는 다름) [시간 복잡도 줄이기] 제일 시간복잡도에 영향을 많이 끼치는 반복문의 숫자를 줄여야 한다. 자료구조를 적절하게 이용 알고리즘을 적절하게 이용하는 것 - 이진 탐색, 그리디 알고리즘, 정렬 알고리즘 등 효율적인 알고리즘을 학습해 본 뒤 적절히 이용 - 공간 복잡도 [공간 복잡도] 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 프로그램을 실행시킨 후 완료하는 데 필요로 하는 자원 공간의 양 [공간 복잡도 줄이기] 배열의 크기 → 줄이기 얼마 만큼의 동적 할당인지 → 줄이기 몇 번의 호출을 하는 재귀 함수 인지 → 호..
WIL | 1.1.일 [12.26.월 - 12.30.금]
(B2 | 6_team_project) 팀프로젝트 주간 : 최종 발표 - KPT 회고 [프로젝트 개요] BeeSolution 웹서비스 - 익명으로 고민을 작성하고 추천 솔루션 시스템으로 고민 솔루션을 제안하며 고민을 가진 익명의 유저들과 소통할 수 있는 커뮤니티 서비스 프로젝트 명 : BeeSolution 필수 작업 : DRF CBV 사용, serializer, custom user model, CRUD, CORS, 회원가입/로그인, 추천시스템, 백엔드 AWS EC2 배포 K(keep) 태도 각자의 의견을 최대한 존중하고 배려하는 모습 기한 내에 안정적으로 프로젝트를 마무리하는 습관 구성원 각자의 메인/서브 파트를 설정하고 효율적으로 분업 하는 것 오류 부분에 대한 협업 코드 슬랙/git을 통한 활발한 ..