본문 바로가기

Codestates AI 부트캠프/4. Data Engineering

(9)
[데이터 엔지니어링] 3-1 Docker 1. Docker 윈도우 환경에서 애플리케이션을 개발해 완성했다. 이를 서버로 보내 배포하고자 하는데 서버는 리눅스다. 게다가 파이썬 버전 등 여러가지 환경이 맞지 않는다. 이 경우에 필요한 것이 docker다. 내가 만든 코드와 환경을 묶어서 docker image로 만들어 서버로 보낸다. 서버는 image를 받아서 container로서 활성화 시켜서 코드를 실행시킬 수 있다. 도커 공식문서 https://docs.docker.com/engine/reference/commandline/container_run/#options docker container run docker container run: See [docker run](run.md) for more information. docs.docke..
[데이터 엔지니어링] 2-4. NoSQL 1. NoSQL DB는 RDB(SQL)과 NoSQL로 나뉜다. RDB : 관계형 데이터베이스. SQL 쿼리로 데이터를 가져올 수 있다. 처음부터 정리된 상태(스키마, 테이블간 관계, Primary key)로 저장되기 때문에 꺼내올 때도 쉽다. 하지만 짧은 시간 안에 많은 데이터를 저장하기는 어렵다. NoSQL : 관계형 데이터베이스가 아닌 모든 DB. 몽고DB, 카산드라 등이 있다. 데이터를 막 때려넣을 수 있기 때문에 큰 기업에서 많이 쓴다. 일례로 인스타그램도 처음 출시됐을 때는 RDB를 썼지만 사용자가 많아지자 NoSQL로 넘어갔다. NoSQL은 넣을 당시 막 집어넣었기에 꺼내올 때 생각을 많이 해야할 수도 있다. a. NoSQL의 종류 Key-Value 타입 : 데이터를 Key-Value의 쌍을 ..
[데이터 엔지니어링] 2-3. API 1. API Application Programming Interface. 프로그램들이 소통할 수 있는 인터페이스. 앞서서 RDB를 배울 때 DB API를 배운 적이 있다. 파이썬과 DB를 연결할 때 썼던 인터페이스다. 이를 이용해 DB에서 데이터를 가져오고 DB에 데이터를 넣을 수도 있었다. API도 이처럼 다른 프로그램 또는 서버와 내 파이썬 코드를 연결하는 것이다. 이번에 배우는 API는 날씨 API로, 내 파이썬 코드로 원하는 지역의 원하는 날씨 정보를 가져올 수 있다. 데이터를 가져올 때 JSON 형식일 가능성이 높다. a. JSON Javascript Object Notation. 표기 방식은 파이썬 자료 형식 중 Dictionary와 비슷하게 key-value 값으로 묶여있다. Diction..
[데이터 엔지니어링] 2-2. Crawling 1. 웹페이지 구조 HTML : 구조와 뼈대를 잡는다 CSS : 겉모양을 꾸며준다 Java Script : 기능을 할 수 있게 만든다 a. HTML HyperText Markup Language. MDN에 의하면 프로그래밍 언어가 아니다. 웹페이지의 구성을 표시하는 마크업 언어. head, body, div, li 등의 태그를 통해 구성과 요소를 표시한다. 태그들 사이에는 python 클래스처럼 부모-자식 관계가 존재한다. # 예시 # 태그는 태그의 자식 태그다 Hello World ! 1-2. CSS Cascading Style Sheets. CSS는 웹페이지가 어떻게 표현되는 지 알려주는 스타일시트 언어. 주요 개념 : selector, 상속, class 2. Web Crawling 웹을 돌아다니며 ..
[데이터 엔지니어링] 1-4 파이썬으로 DB 불러오기 1. DB API "Database Application Programming Interface"의 약자로, 데이터베이스와 상호작용하기 위한 프로그래밍 인터페이스를 나타낸다. DB API는 일반적으로 Python과 같은 프로그래밍 언어에서 데이터베이스에 접근하고 SQL 쿼리를 실행하는 데 사용된다. 2. 클라우드 a. 클라우드 VS 온프레미스 - 클라우드 : AWS나 GCP와 같이 회사 외부에 데이터 서버와 서버 관리를 아웃소싱하는 것. 관리가 편리하다. - 온프레미스 : 회사 내부에 서버를 들여와 직접 구축하고 관리하는 것. 보안에 유리하고 속도가 빠르다. b. URI 보통 원격으로 데이터베이스를 연결할 때에는 URI 형식 으로 연결을 하게 됩니다. URI는 다음과 같은 구조를 갖는다. 서비스://유저..
[데이터 엔지니어링] 1-3 SQL(2) 1. HAVING group by 상태에서 출력 조건을 입력하고 싶다면 HAVING을 써야한다 2. INSERT # 생성된 테이블에 데이터 추가하기 INSERT INTO VALUES(1, 'C100', 50); # 원하는 컬럼에만 값을 넣고자 하는 경우 INSERT INTO (컬럼2, 컬럼5) VALUES (40, 100); 3. DROP # 생성된 테이블을 삭제하기 DROP TABLE Teacher 4. SQL 실행순서 ① FROM ② WHERE ③ GROUP BY ④ HAVING ⑤ SELECT ⑥ ORDER BY 5. 집계함수 COUNT() SUM() AVG() MAX() MIN() **그외 RANK() OVER (ORDER BY 컬럼명) → 을 기준으로 랭킹을 매겨줘 RANK() OVER (PAR..
[데이터 엔지니어링] 1-2 SQL 1. SQL이란? Structured Query Langage. 관계형 데이터베이스에 "이러이러한 데이터를 줘"라고 날리는 일종의 '질의문'. *관계형 데이터베이스 : 구조화된 데이터를 의미하는 것으로 테이블이 서로 관계성을 가질 수 있다 통상 .json 파일, 문자열을 데이터로 가진다. 2. 활용 예시 * 사용한 데이터는 chinook.db (첨부) - Customer_Package 테이블을 생성합니다 CREATE TABLE Customer_Package( cp_id INTEGER PRIMARY KEY NOT NULL, customer_id INTEGER, package_id INTEGER, FOREIGN KEY (customer_id) REFERENCES Customer(customer_id), FO..
[데이터 엔지니어링] 1-1 (2) 터미널 / 가상환경 / Git & Github 1. 터미널 터미널은 컴퓨터에 글자 기반 명령을 전달하는 어플리케이션. 이처럼 컴퓨터와 글자 기반으로 명령하는 것을 CLI(Command Line Interface)라고 한다. 그와 반대로 우리가 평소에 컴퓨터를 쓸 때처럼 그래픽 기반으로 명령하는 것은 GUI(Graphical User Interface) 라고 한다. a. 기본 명령어 - pwd : 현재 경로 반환 - ls : 현재 디렉터리 내 파일명들 반환 - mkdir : 디렉터리 생성 - cd : 해당 디렉터리로 이동 * shell과 terminal의 차이 shell은 명령어를 실행시키는 역할을 하고, 터미널은 우리가 명령어를 입력하고 결과를 확인하는 창. - shell : anaconda prompt, git bash - terminal : Wi..