데브코스 데이터 엔지니어링 WEEK6 WIL(1)
·
Data Engineer/데브코스
관계형 데이터베이스관계형 데이터베이스란? 구조화된 데이터를 저장하는데 사용되는 storage비구조화된 데이터는 저장하기 힘듬 데이터 분석 위한 데이터들은 대부분 구조화가 된 데이터들이다. 관계형 데이터베이스에 저장된 데이터를 가지고 질의 하거나 조작하는데 사용되는 언어가 sql이다. 따라서 데이터가 구조화되었다고 가정만 된다면 데이터 분석과 관련해서 가장좋은 기술 옵션이 된다. datawarehouse나 spark모두 sql을 지원 관게형 데이터베이스는 데이터를 테이블로 나누어서 저장한다.- 각 테이블에는 이름이 있다.- 열에는 이름과 타입이 존재한다.- table이 column들로 형태가 정의가 되면 record들이 행으로 존재한다. table의 schema: table을 구성하는 column들의 이름..
Django 기본(3)
·
Python/Django
Admin페이지 커스터마이징1) 편집페이지QuesionAdmin을 만들고 Question과 함께 등록해줘야한다.QueestionAdmin에서는fieldsets에서는 표시되는 순서 정의, 섹션이름 부여, 'collapse'라는 속성 줘서 숨기거나 할 수 있다. (한글은 안됨)readonly_fields는 편집할 때 수정 못하도록inlines -> Question과 Choice를 한번에 수정할 수 있도록 2) 목록페이지목록에 표시되는 column들 -> list_display로list_filter와 search_fileds를 통해 필터링, 검색 가능choice_choice_text를 넣어줌으로써 choice를 통해 검색할 수 있다. 목록에서 표시되는 column이름을 정의 하기 위해 verbose_name ..
Django 기본(2)
·
Python/Django
View(Controller) & Template장고에서 모델을 통해 데이터베이스에서 정보를 저장하고 읽어오는 것을 해보았다. 그전까지는 모델을 shell에서만 사용했다면 이제는 코드 상(views.py)에서 사용해보자from django.urls import pathfrom . import viewsapp_name = 'polls'urlpatterns = [ path('', views.index, name='index'), path('/', views.detail, name='detail'),] urls.py로 요청이 들어오면 views의 해당 메소드에서 처리하는 방식이다. 상세 페이지도 만들기 위해 url에서 숫자를 입력받을 수 있게 해준다. 그리고 views의 detail메소드로 연결되..
Django 기본(1)
·
Python/Django
Python 가상 환경 설정하기Django는 프로젝트마다 가상 환경을 설정해줘야 한다. 1) 의존성 관리 라이브러리 및 패키지를 각 프로젝트마다 독립적으로 사용할 수 있다.2) 팀 프로젝트 협업 모든 팀원이 동일한 환경과 의존성 위에서 작업하여 버전 간 충돌을 방지한다.py -m venv project-nameproject-name\Scripts\activate.batdeactivate 가상환경(venv) 생성하고 가상환경 활성화 시킨다. 비활성화시키려면 deactivate가상환경은 안으로 들어오는 개념이 아닌 on/off 개념 vscode에서도 python환경을 맞출 수 있다. (이것때문에 코드에 에러 밑줄이..)ctrl + shift + p => interpreter누르고 가상환경 폴더가..
웹 스크래핑
·
Python/Scraping
우리는 일반적으로 웹브라우저를 통해 HTTP 요청을 주고받는다.즉, 웹브라우저에서 요청(Request)을 보내면 응답(Response)을 받게 된다.이때, 응답의 헤더(Header)에는 상태 코드가 포함되며, 본문(Body)에는 HTML 문서가 담겨 있다. 웹 브라우저는 단지 HTML을 렌더링 해주는 프로그램이 역할을 파이썬 코드로 대신할 수 있다. 그리고 원하는 정보를 가져오기 위해서는 HTML 태그를 정확히 파악해야 한다 .웹 크롤링 vs 웹 스크래핑 크롤링은 웹 크롤러 라고 불리는 데이터 수집 소프트웨어 및 봇을 활용크롤러는 한 페이지에서 시작해 그 페이지에 연결된 모든 링크를 따라가며 데이터를 수집 크롤링은 구글, 네이버와 같은 검색 엔진이 웹 페이지를 인덱싱(Indexing)하는 데 사용인덱싱은..
Knapsack 알고리즘
·
Algorithm/Basics
여러 제한 사항들에 따라 문제 유형을 분류해 보았다. 풀면서 익혀보자. 1. 가방문제 (최대, 보석 제한X) 먼저 이러한 dp 테이블을 두자. (0으로 초기화)i번째 칸이 의미하는것은 가방에 i(kg)까지 담을 수 있을 때 최대 가치이다. 그러면 5kg짜리 보석만 있다고 생각하자. dp[5]부터 채우면 다음과 같다.i번째 칸에 5kg을 담는다고 가정했으니까 인덱스는 5빼주고 그 dp[i-5]에서 v(12)의 가치를 더해준다. 마찬가지로 이번에 3kg짜리 보석도 함께 있다고 생각해보자dp[i]=max(dp[i],dp[i-w]+v) 로 점화식을 세울 수 있겠다.예를 들어 dp[6]의 경우에는 기존의 dp[6](=12)보다 dp[6-3]+8(=16)이 더 크므로 바꿔준다. 이런식으로 나머지 6,4도 적용해 최..
네트워크 스택
·
Network
해당 내용을 자주 잊어버려 한번 정리해 둔다. (AWS VPC 사용하기 위해서 알아야 함)  먼저 TCP, UDP, IP 같은 거를 프로토콜이라 하는데 프로토콜이 뭐냐?검색해보면 프로토콜은 메시지를 주고 받는 양식, 규약이라고 나온다.쉽게 말하면 규칙이다. 데이터를 주고받기 위해서는 0과1을 주고받아야하는데 몇번째 구간에 어떤 정보들이 들어가는지들을 정해놓은 거라고 생각하면 된다. 그전에 패킷(여러 프로토콜을 캡슐화한 것)을 캡쳐할 수 있는 프로그램이 있다. 'pcap'이라는 라이브러리를 사용 네트워크는 크기에 따라 분류될 수 있는데 LAN과 WAN이 있다.LAN은 스위치 또는 공유기를 기준으로 형성된다. ('LAN선'이라는 단어)WAN은 여러개의 LAN을 묶어놓은것이다. 만약 내 집에서 롤을 한다하면 ..
서버의 동작원리
·
Network
옛날에 교수님이 수업시간에 공개적으로 이렇게 물어본적이 있었다. "애플리케이션 만들 때 무슨 서버 쓰니?"그 때 SpringBoot? 라고 대답했다. 반쪽짜리 답변이였다..내가 만든게 WebServer 아니야?정확히 말하면 SpringBoot은 WAS이고 SpringBoot에 내장 서버가 있다. 그러면 서버란 무엇인가? 웹서버.. DB서버..?서버는 프로세스이다! 자세히는 데몬 프로세스(백그라운드에서 계속 실행되는 프로세스) 기본적으로 한대의 컴퓨터에서는 여러개의 프로세스가 돌아간다. 그리고 그 프로세스들은 서로 0과 1의 전기신호를 주고받는다. (근본적인 컴퓨터의 동작..) 이거를 있어보이게 IPC라고 한다. ( IPC에는 여러 방법이 있는데... )예를 들어 python에서 print("hi")를 하..