일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코린이블로그4일차 #알고리즘공부 #C언어
- 폰노이만의 구조
- 2주차
- 케밥 케이스
- 캡 정리
- 1주차
- EC2 크론탭
- 폰노이만 아키텍쳐
- Section2
- Ubuntu Timezone
- 파이썬
- Django EC2
- 코린이블로그9일차 #알고리즘공부 #C언어
- 코린이블로그17일차 #알고리즘공부 #C언어
- 파스칼 케이스
- 네이밍컨벤션
- Django EC2 gunicorn nginx
- Von Neumann Architecture
- 코린이블로그2일차 #알고리즘공부 #C언어
- CLI
- Linux Timezone
- 코드스테이츠
- AI부트캠프
- 코린이블로그8일차 #알고리즘공부 #C언어
- AIBootcamp
- gzip 알고리즘
- EC2 MySQL
- 하지만희망은두려움보다강하지
- codestates
- 될거라는망상
- Today
- Total
목록분류 전체보기 (71)
찰리의 놀이터
행 기반 데이터베이스(Row Oriented Database) 행 지향 데이터베이스라고도 부릅니다. 일반적으로 우리가 사용하는 Oracle, MySQL, PostgreSQL와 같은 일반적인 데이터베이스가 행 기반 데이터베이스에 해당됩니다. 데이터를 행 단위로 추가하는 것을 의미하며, 레코드 단위의 읽고 쓰기에 최적화 되어있습니다. 데이터 검색을 고속화하기 위해 인덱스를 사용합니다. 인덱스가 없다면 모든 데이터를 로드해야 원하는 데이터를 찾을 수 있어서 데이터 I/O가 많이 발생하고 성능이 저하됩니다. 레코드 단위로 데이터가 저장되어 있기 때문에 필요없는 열까지 디스크로부터 로드됩니다. 위 그림과 같이 행 기반 데이터베이스는 화살표처럼 디스크에 한 행 씩 저장되는 형태입니다. 데이터를 추가하면 위 그림과 ..
배열(Array)이란? 같은 종류의 데이터를 순차적으로 저장하는 자료구조입니다. 파이썬에서는 list로 구현되어 있습니다. 인덱스를 통해 직접 접근이 가능합니다. 장점 : 빠른 접근이 가능합니다. 단점 : 데이터 추가 및 삭제에 비용이 많이 사용된다는 점입니다. 데이터 추가 시, 공간이 많이 필요하며, 삭제 시 빈 공간이 생겨 이를 관리해주어야합니다. 길이 조절이 어렵다는 단점도 있습니다. 대괄호를 통해 1차원 배열부터 고차원 배열로 구성할 수 있습니다. 파이썬 리스트는 리스트의 주소와 리스트 내부의 데이터의 주소가 분리되어 있습니다. 아래 그림과 같이 주소값을 요청하는 경우 다른 것을 확인할 수 있습니다. 그리고 같은 리스트를 다른 값에 넣는다고 해도 같은 값을 가지며 데이터 역시 공유합니다. 얕은 복..
Django Django는 파이썬의 웹 풀스택 프레임워크입니다. "장고"라고 부르며, 다양한 기능이 제공되는 오픈소스 웹 프레임워크입니다. 웹 사이트를 제작하는데 기본적인 기능이 내장되어 있으며 다양한 앱을 추가하여 나만의 서비스를 만들 수 있습니다. 또한, Django는 MTV 패턴을 사용합니다. 위 사진과 같이 하나의 Django 프로젝트에 다양한 앱을 구현할 수 있습니다. 웹 프레임워크란? 웹은 기본적으로 요청(Request)을 통해 응답(Response)를 받는 구조입니다. 우리가 웹에서 그리고 앱에서 누르는 버튼 하나하나가 요청을 보내는 것입니다. 유저는 웹 또는 앱에서 보여지는 UI(User Interface)에 표시되어 있는대로 버튼을 누릅니다. 장바구니를 보기위해 카트모양의 버튼을 클릭하기..
형상관리(Configuration Management) 버전관리(Version Control)이라고도 합니다. 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, 형상 관리는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학술분야의 형태로 넓히는 근간을 이야기합니다. 버전관리(제어)시스템(VCS, Version Control System) 버전관리 시스템은 특정 파일의 시간 경과에 따른 버전 스냅샷(Snapshot) 변경 사항을 만들어 파일의 변경 사항을 추적하는 시스템입니다. 여기서 스냅샷이란, 특정 시간에 데이터 저장 장치의 상태를 별도의 파일이나 이미지로 저장하는 기술을 의미합니다. 스냅샷 기능을 이용하여 데이터를 저장하면 유실된 데이터 복원과 일정 시점의 상태로 데이터를..
Python 내 압축 관련 라이브러리 파이썬에서 사용할 수 있는 라이브러리는 다양합니다. brotli, lzma, zstd, bz2, lz4, zlib, gzip등이 있습니다. 이 중 zlib, bz2, lzma은 파이썬3에 내장모듈로 지원이 됩니다(lzma는 파이썬2에서 지원이 안됩니다). 위 그림을 보시면 zstd와 gzip이 시간도 빠르고 압축률도 높은 것으로 확인할 수 있습니다. 압축 알고리즘을 적용하는 ETL 파이프라인 프로젝트에서 저는 내장 모듈인 gzip을 사용하였습니다. 원리나 이해가 쉬운 자료를 찾기도 쉬웠고, 파이썬 공식문서에서도 자세히 설명되어 있어서 gzip으로 선택하였습니다. 오늘은 내장 모듈인 gzip 라이브러리에 대해서 배워보도록 하겠습니다. gzip gzip의 데이터 압축은 ..
압축 알고리즘(Compression Algorithm) 파일이나 이미지 데이터 등을 압축하기 위한 논리법으로 손실 압축과 무손실 압축으로 나눌 수 있습니다. 기본적으로 압축의 원리는 공간적으로 중복 성격의 데이터가 존재한다는 공간적 상관관계와 영상에서 시간이 지나도 화면에 큰 차이가 없는 경우다 있다는 시간적 상관관계라는 특성을 바탕으로 합니다. 쉽게 얘기해서 유사한 데이터의 반복을 압축함으로써 용량을 줄일 수 있다는 원리에 입각하는 것입니다. 손실 압축(Lossy Compression) 손실 압축은 중복된 그리고 필요하지 않은 정보가 손실되는 것을 허용하는 압축 기법을 말합니다. 데이터를 압축하여 자료를 받은 곳에 압축으로 풀어서 원래의 것과 다르게 보여주는 것을 말합니다. 이름만 들으면 무언가 잃어버..
데이터베이스(Database)란? 구조화된 정보 또는 데이터의 조직화된 모음입니다. 데이터베이스는 그 자체로는 데이터를 저장할 수 있는 창고의 역할이기 때문에 할 수 있는게 거의 없습니다. 그래서 데이터베이스 관리 시스템(DBMS, DataBase Management System) 과 통합된 상태로 제공됩니다. DB가 창고의 역할이라면 DBMS는 크레인과 지게차, 그리고 관리인과 같이 화물(데이터)를 적재 및 관리, 이동시키는 역할을 수행합니다. 데이터베이스의 보안 3요소 무결성(Integrity) : 데이터베이스에서 데이터에 대한 오류가 없어야합니다. 최초 오류가 없더라도 추가, 갱신, 삭제 등으로 오류가 발생할 수 있는데, 권한자만 데이터를 수정이 가능하도록 해야합니다. 가용성(Availability..
개발을 하다보면 변수이름 하나에도 많은 고민을 하게됩니다. 또한 팀원들과의 약속, 컨벤션을 지켜가면서 개발을 진행해야합니다. 컨벤션 중 이름에 관한 네이밍 컨벤션(Naming Convention)에 대해 알아보겠습니다. 스네이크(Snake) 케이스 각 단어 사이에 언더바(_)를 사용하여 연결하는 방식입니다. 언더바가 뱀을 연상시켜 "스네이크 표기법"이라고 합니다. Perl, PHP, Python, Ruby, Rust 등에서 많이 사용하는 방식입니다. ex ) snake_case, birth_date 파스칼(Pascal) 케이스 첫 단어를 대문자로 시작하는 표기법입니다. 프로그래밍 언어 파스칼에서 쓰이면서 "파스칼 표기법"이라고 합니다. Python 클래스 이름을 보통 파스칼 케이스로 짓는 편이고, 자바스..