목록전체 글 (66)
데이터 놀이터
키워드 Docker Flask 대시보드 개념 정리 1. Docker 도커는 개발을 할때 다양한 OS나 프로그램 버젼으로 발생할 수 있는 문제를 해결하기 위한 프로그램이다. 실행 환경을 코드로 작성할 수 있고 OS를 격리화하여 관리하는 기술이다. - 추가 자료 https://hub.docker.com/ : 도커 이미지 관리 https://docs.docker.com/engine/reference/run/ 도커 CLI 2. Flask Flask는 마이크로 웹 프레임워크로 웹 개발, 배포를 위한 도구 모음이다. 프레임워크에 따라 Jinja 등과 같은 다양한 패키지들과 라이브러리들을 활용하여 웹 개발을 지원한다. from flask import Flask ## flask 애플리케이션 생성 app = Flask(..
오늘의 키워드 NoSQL MongoDB Pymongo 개념 정리 1. NoSQL (Not Only SQL) NoSQL은 언뜻 보면 SQL이 아닌건가 싶지만 관계형 데이터베이스(RDB)가 아닌 데이터베이스를 지칭한다. Web시장이 발전하면서 처리해야할 데이터가 늘어났는데 RDB로 처리하기에는 시간, 비용적으로 비효율적이었고 이에 대응하기 위해 발전한 것이 NoSQL이다. RDB는 테이블에 맞춰 데이터를 입력하는 특징이 있는 반면에 NoSQL은 읽어올 때 스키마에 따른다. NoSQL기반의 비관계형 DB는 다음과 같은 타입으로 구분된다. Key-value 형태 문서형 DB Wide-Column DB 2. MongoDB MongoDB는 문서형 비관계형 DB로 Json과 유사한 형식으로 데이터를 문서화하는 것이 ..
오늘의 키워드 API HTTP API REST API 개념 정리 1. API (Application Programming Interface) 프로그램 간 소통할 수 있는 인터페이스를 말한다. 마치 가게 손님이 메뉴판을 보고 음식을 고르듯이 클라이언트는 API를 통해 서버에 어떤 요청을 보낼지 고민한다. 클라이언트는 API Server를 통해서 Service Server에 요청을 전달한다. Service Server에서 요청받은 서비스를 구동한다. 이후 API 응답이 오게 되는데 대다수의 경우 json(파이썬의 dictionary 형태와 같이 {key: value} 형식)으로 오게 됨 2. HTTP API HTTP는 HyperText Transfer Protocol의 약자로 컴퓨터들 간의 통신 규약 중 하..
1. DOM (1) 개념 Document Object Model의 약자 프로그래밍 언어를 통해 HTML, XML 등 문서들에 접근할 수 있도록 돕는 프로그래밍 인터페이스다. (2) 메소드 HTML을 확인할 수 있는 개발자도구를 opt+cmd+i(mac 기준)키로 열어 콘솔창에 자바스크립트를 통해 DOM을 사용할 수 있다. document.querySelectorAll('a') : css의 a 셀렉터와 일치하는 모든 요소 리턴 document.querySelector('a') document.getElementbyTagName('a') : a 태그와 일치하는 문서 요소들 리턴 document.getElementById('a') : a id와 일치하는 요소들 리턴 document.getElemnetByCla..
목차 1. 오늘의 키워드 2. 개념정리 2-1. 웹 스크래핑 2-2. HTML 2-3. CSS 3. 더 알아봐야할 것 오늘의 키워드 웹 스크래핑 HTML CSS DOM 개념 정리 1. 웹 스크래핑 특정 웹 사이트에서 원하는 정보를 긁어오는(scraping) 작업을 말한다. 웹 사이트들을 기어다니며(crawling) 인덱싱을 통해 필요한 정보를 수집하는 웹 크롤링과는 차이가 있다. 웹 스크래핑을 하기 위해서는 기본적으로 HTML, CSS에 대해 이해하고 python의 requests, beautifulsoup라이브러리 활용할 줄 알아야 한다. 2. HTML 참조 : https://developer.mozilla.org/ko/docs/Learn/HTML/Introduction_to_HTML/Getting_s..
오늘의 키워드 Python 디버깅 함수 클래스 데코레이터 개념 정리 1. Python 디버깅(debugging) (1) 개념 버그를 찾는 것을 말하며 Python에서는 pdb(python 3.6이전), breakpoint함수(python 3.7 이후)로 디버깅 기능 지원 ### 예시 def simple_func(num): sum = 0 breakpoint() ## 디버깅을 위한 중단점 설정 for i in range(1, num + 1): breakpoint() ## 디버깅을 위한 중단점 설정 sum += i return sum simple_func(4) (2) 디버거 명령어 참조 : https://docs.python.org/ko/3/library/pdb.html pdb — The Python Debu..
개념 정리 gitignore : git 사용시 버젼 관리를 하지 않아도 되는 파일을 모아놓는 곳 git.init : 깃 초기화, (다른 분야에서 init을 사용할 때는 초기 설정을 의미) DB 정규화(Regularization) : 중복을 최소화할 수 있도록 데이터를 구조화하는 프로세스 1차 정규화 : 각 row마다 컬럼 값이 하나 2차 정규화 : 기본키 중 특정 컬럼에만 종속된 컬럼이 없어야 함(부분적 종속이 없어야 함) 3차 정규화 : 기본키 이외의 컬럼이 다른 컬럼을 결정할 수 없음(이행적 함수 종속이 없어야 함 위 정규화들은 앞선 단계의 정규화를 만족시키는 것으로 봄 참고자료 : https://3months.tistory.com/193 subQuery vs JOIN 문 성능 비교 : 대부분의 경우..
오늘의 키워드 DB API 클라우드 DB PostgreSQL sqlite3 psycopg2 개념 정리 1. Python DB API DB API(Application Programming Interface) python과 DB 간 상호작용을 위해 활용하는 규칙, 툴 sqlite3 : 파이썬 내 가벼운 파일형 DB, 고급 기능을 구현하기에는 무리가 있지만 단순 실험, 개발 단계에서 활용하기 좋음 import sqlite3 ## 1. 데이터베이스 파일 생성 및 연결 conn = sqlite3.connect('DB명') ## 2. 커서(소통 도구) 생성 cur = conn.cursor() ## 3. 커서 메소드 활용 cur.execute(쿼리문) ## 4. commit conn.commit() ## 5. 결과..
오늘의 키워드 Transaction ACID SQL 내장함수 1. 개념 정리 A. Transaction 데이터베이스의 상태를 변화시키는 작업의 모음, 작업들의 모음이기 때문에 하나의 작업이라도 실패하게 된다면 전부 실패함 INSERT, DELETE, UPDATE 등 DML(Data Manipulation Language)을 통해 데이터베이스의 상태를 변화시키고 COMMIT, ROLLBACK 등 TCL(Transaction Control Langauge)를 통해 확정 또는 되돌린다. B. ACID Atonomy, Consistency, Isolation, Durability 등 데이터베이스 내에서 일어나는 하나의 Transaction이 보장하는 성질 Atonomy(원자성) : Transaction이 성공하..
오늘의 키워드 DB SQL RDB Schema 쿼리문 1. 개념 정리 1. 데이터베이스 (DB) 필요성 : 프로그램의 실행 여부와 관계없이 대량의 데이터를 저장, 검색 등을 하기 편하기 때문에 사용함 종류 관계형 데이터베이스 비관계형 데이터베이스 구조 테이블 사용, 서로 다른 데이터 간 구조 파악 용이 테이블 사용X, 스키마에 대한 정의가 없음 언어 SQL NoSQL 프로그램 MySQL, Oracle, SQLite... MongoDB 장점 정렬, 탐색, 분류가 빠르고 정규화로 중복 최소화 융통성 있는 데이터 모델로 대용량 데이터 처리에 효율적 단점 대용량 데이터 처리에 비효율적 데이터 구조 파악에 어려움 MySQL vs SQL : MySQL이 창고(DB)라면 SQL은 창고 안에서 물건을 나르는 지게차와 ..