✔ 자료 구조/ 알고리즘 풀기 (1) ✔ 특강 (코딩 테스트 & 코딩 인터뷰) 1. 코딩 테스트를 왜 하는가? 최소한의 문제 해결 능력을 검증 문제 분석과 해결 방법을 착안 (problem solving) 그리고 이것을 코드로 어떻게 구현하는가 (code imple
실제 코딩 테스트 문제를 바탕으로 자료 구조와 알고리즘을 적용✔ 나의 풀이collections.Counter(list): list의 각 원소를 key로 가지고 그 원소의 count() 값을 value로 가지는 Dictionary를 생성해 준다. (Counter의 사용을
문장의 일부를 보고 비어 있는 단어를 확률적으로 맞추는 모델. 확률적으로 답을 하기 때문에 항상 같은 답을 주지는 않음.텍스트 문서들을 입력으로 받아서 그 패턴을 보고 그 문장 뒤에 자연스럽게 따라나오는 언어가 뭔지 학습한 모델.Temperature (온도)가 100에
웹 브라우저가 이해할 수 있는 언어문서를 예쁘게 꾸미는 언어문서에 기능을 만들어 주는 언어HTML은 기본적으로 콘텐츠를 가지는 태그(열리는 태그와 닫히는 태그가 존재)와 가지지 않는 태그(단일 태그, 셀프 클로징)로 나누어진다.속성(Attribut)과 값(Value)는
✍ 회고
HTML 코드를 분석해 주는 Python 라이브러리.HTML Parser먼저 요청을 보내고 응답을 받는다.이렇게 받은 객체를 그대로 사용하지 않고 HTML Parser에게 전달한다.위에서 우리는 soup이라는 HTML Parser를 통해 Parsing된 객체를 만들었다
읽기 쉽고, 이해하기 쉽고, 수정하기 쉬워야 한다.함수 이름 등의 이름이 명확하고, 의미 있는 주석, 일관된 형식으로 체계적으로 구성되어야 한다. \-> 잘 모르겠을 때는 chatGPT에게 물어보자.테스트가 가능하며 코드와 함께 유닛 테스트를 작성해야 한다.클래스와
No. 끝이 아니다.추출한 데이터들은 대부분 텍스트 상태이며 너무 분산되어 있어 한눈에 알아보기 힘들다.우리는 이 문제를 시각화(Visualization)을 통해 해결해야 한다. Seaborn은 파이썬의 데이터 시각화 라이브러리이다.기본적으로 matplotlib을
1) Python 가상 환경 생성 및 활성화 Python의 가상 환경을 생성하기 위해서는 다음과 같은 명령어를 사용해 준다.이 가상 환경을 활성화하기 위해서는 다음과 같은 명령어를 실행해 준다. 2) 새로운 Django 프로젝트 생성 3) manage.py manag
html을 사용해서 데이터를 잘 보이게 정리해 주는 도구가 템플릿(Templates)이다. 1) HTML 템플릿 생성 뷰(View)를 템플릿(Template)으로 연결해 주기 위해 먼저 템플릿(Template)을 만들어 주어야 한다.polls 앱에 templates/p
model 인스턴스나 QuerySet과 같은 데이터를 JSON 형식의 파일로 변환하는 작업Deserialize는 반대로 JSON 형식의 파일을 model 인스턴스나 QuerySet으로 변환하는 작업이다. 1) API 생성 cmd 창에 python manage.py st
setting.py의 INSTALLED APPS를 보면 django.contrib.admin와 django.contrib.auth가 있는데 이를 통해 admin 기능을 사용할 수 있고, user를 만들 수 있고 그 유저를 사용할 수 있었던 것이다.models.py에서
1) StringRelatedFieldStringRelatedField(many=True, read_only=True)는 model에서 정의된 \_\_str\_\_ 내용을 표시한다. 2) SlugRelatedField.SlugRelatedField(many=True,
팀 프로젝트 주제를 선정했다. 주제는 카테고리별 유튜브의 파급력 (조회 수, 좋아요 수, 구독자 수) 데이터 크롤링 및 시각화로 정해졌다.오늘은 프로젝트의 첫날이라 주제 선정과 어떻게 Youtube API 데이터를 크롤링할지 직접 코드를 짜면서 시각화할 수 있을 정도
📚 오늘 공부한 내용 👊 팀 프로젝트 * 카테고리별 유튜브의 파급력 (조회 수, 좋아요 수, 구독자 수) 데이터 크롤링 및 시각화* 각자 역할 분담을 하기로 하였다. 다들 데이터 분석 및 추출 작업을 하고 싶어해 각 카테고리를 나눠서 추출해 보기로 하였다. 내 카테
Django의 서버를 사용하기 ✍ 회고
카테고리별 유튜브의 파급력 (조회 수, 좋아요 수, 구독자 수) 데이터 크롤링 및 시각화 내가 주로 카테고리가 아닌 개인 유튜버를 다루는 상세 페이지를 담당하게 되었다. 개인 유튜버를 다루는 상세 페이지는 기본적으로 카테고리 페이지의 순위 정보에서 클릭이 발생 시 하
카테고리별 유튜브의 파급력 (조회 수, 좋아요 수, 구독자 수) 데이터 크롤링 및 시각화 프로젝트의 마지막 날이었다. 대부분의 구성은 완료되어 있는 상태였고, 가장 중요한 부분은 일별, 월별, 주별 유튜버 개인의 그래프만 남은 상태였다. 다만 직접 Back-end에서
데이터 관련 직군은 크게 세 개가 있다. 데이터 엔지니어: 파이썬, 자바/스칼라, SQL, 데이터베이스, ETL/ELT (Airflow, DBT), Spark, Hadoop데이터 분석가: SQL, 비지니스 도메인에 대한 지식, 통계 (AB 테스트 분석)데이터 과학자:
📚 오늘 공부한 내용 1. RedShift 환경 세팅 RedShift 역시 일주일 동안 사용할 서비스이기 때문에 Cluster 생성 과정만을 포스트 하려다가 따로 개념을 정리하여 포스트 하였다. 📑 RedShift 개념 정리 Cluster 생성 과정을 따로 포스트
테이블 레코드를 그룹핑해 그룹별로 다양한 정보를 계산하는 함수먼저 그룹핑할 필드를 GROUP BY로 지정해 주고, 그룹별로 계산할 내용을 결정할 때 AGGREGATE 함수를 사용한다. 1) 월별 세션 수를 계산하는 SQL 결과 2) 가장 많이 사용된 채널 SQL 가
두 개 혹은 그 이상의 테이블을 공통 필드(특정 KEY)를 가지고 MERGE 할 때 사용된다.스타 스키마로 분산되어 있는 정보를 통합하는데 사용한다.조인 방식(INNER, LEFT, RIGHT 등)에 따라 달라지는 두 가지 \- 어떤 레코드들이 선택되는지 \
📚 오늘 공부한 내용 1. 트랜잭션 ✔ [특강] 데이터 응용 유스 케이스 1. 요즈음 시대의 마케팅은? 마케팅 = 디지털 마케팅 = 데이터 기반 마케팅 디지털 마케팅이다 보니 사용자에 관한 다양하고 많은 정보들이 생긴다. (빅데이터) 데이터를 수집해 마케팅 성능을
📚 오늘 공부한 내용 1. 클라우드 컴퓨팅이란? * IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 방식. * 물리적인 데이터 센터와 서버를 구입하고, 소유 및 유지를 관리하는 대신 AWS와 같은 클라우드로부터 필요에 따라 컴퓨팅 파워,
1) Route 53이란? Amazon Route 53은 가용성과 확장성이 뛰어난 DNS 웹 서비스.세 가지 주요 기능을 가진다. 도메인 등록DNS 라우팅상태 확인 public host zone과 private host zone이 존재한다.DNS(네임 서버) + 모니
💻 \[AWS] IAM 개념, 기능 및 IAM 사용자 추가하기객체 스토리지 서비스로 업계 최고의 확장성과 데이터 가용성, 보안 및 성능을 제공한다.데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스,
console 명령어를 통해서 대상 파일을 업로드하거나 대상 리스트를 볼 수 있는 등 각종 컨트롤을 할 수 있는 명령 셀 인터페이스를 제공하는 서비스.AWS 서비스를 관리하는 통합 도구.하나의 도구에서 AWS의 여러 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할
다른 인스턴스 위에서 프로그램이 돌아가는 게 아니라 다른 환경 없이 내가 만든 소스 코드, 함수만 등록해서 서버가 서비스를 할 수 있게 만들어 주는 것이 AWS Lambda이다.함수 생성 시 다음과 같이 세 개의 생성 유형을 고르게 된다. 블루 프린트를 사용하면 간단한
📚 오늘 공부한 내용 1. 데이터 팀의 역할 1) 데이터 조직의 비전은? 신뢰할 수 있는 데이터를 바탕으로 부가 가치를 생성 데이터 팀이 어떻게 매출에 기여할 수 있는가? 의사 결정에 데이터를 활용할 수 있도록 해 준다. 즉, 고품질 데이터를 기반으로 의사 결
AWS에서 지원하는 데이터 웨어하우스 서비스최대 2 PB의 데이터까지 처리 가능하고, 최소로는 160 GB로 시작한다. (고정 비용으로 사용했을 때) Still OLAP: 응답 속도가 빠르지 않기 때문에 프로덕션 데이터베이스로 사용하면 장애가 발생할 수 있음.컬럼 기반
일반적으로 사용자별로 테이블에 권한 설정을 하는 것은 사용자가 많아질수록 복잡해지고, 불필요한 정보에 대해 접근이 가능해져서 정보 누출이 생길 수도 있고, 꼭 필요한 테이블에 접근이 불가한 경우가 생길 수도 있어 사용하지 않는다.역할(Role) 혹은 그룹(Group)별
2014 년 클라우드 기반 데이터 웨어하우스로 시작되었다.데이터 팀을 위한 전용 클라우드라고 볼 수 있을 정도로 발전했다. 모든 글로벌 클라우드 위에서 동작한다. AWS, GCP, Azure 등. (멀티 클라우드)데이터 판매를 통한 매출을 가능하게 해 주는 Data S
몇 가지 주제가 대두되었지만 공통적으로 나온 주제가 곧 다가오는 연휴에 맞추어 국내 여행 관련 대시 보드를 만들면 좋겠다는 의견이 주류를 이루었다.그 과정에서 사용할 API들을 찾았는데 TOUR API라고 해서 한국 관광 공사에서 제공하는 두 API를 사용하기로 하였다
📚 오늘 공부한 내용 👊 팀 프로젝트 - TOUR API를 이용한 관광 인프라 및 추이 대시 보드 1. 데이터 모델링 내 담당인 각 코드들의 정보를 담고 있는 CODE_DETAIL 테이블에 데이터를 적재하기 위해 csv 파일로 만드는 과정에서 이전 모델링에서 문제가
📚 오늘 공부한 내용 👊 팀 프로젝트 - TOUR API를 이용한 관광 인프라 및 추이 대시 보드
데이터 레이크 (Data Lake) 구조화 데이터 + 비구조화 데이터보존 기한이 없는 모든 데이터를 원래 형태로 보존하는 스토리지에 가까움 (스토리지에 부담이 없기 때문에)보통은 데이터 웨어하우스보다 몇 배는 더 큰 스토리지데이터 웨어하우스 (Data Warehouse
📚 오늘 공부한 내용 1. Airflow 설치 방법 1) 직접 설치하고 운영 개인 랩탑에 도커 설치 후 Airflow 설치 AWS EC2 등의 리눅스 서버에서 직접 설치 2) 클라우드 사용 (Production 환경에서 사용) 기본으로 서버 세 대를 돌려야 하기 때
📚 오늘 공부한 내용 1. Operators - PythonOperator 먼저 PythonOperator를 import 해 주어 사용할 수 있는 환경을 만들어 준다. 태스크가 실행될 때 python_callable로 지정된 함수가 실행되게 되고 해당 함수에 파라미터
📚 오늘 공부한 내용 1. airflow와 Timezone airflow.cfg에는 두 종류의 Timezone 관련 키가 존재하는데 defaulttimezone, defaultui_timezone이 있다. startdate (시작일), enddate(종료일), sch
📚 오늘 공부한 내용 1. MySQL 테이블 복사하기 INSERT INTO는 내가 적재하려는 데이터의 수가 적을 경우 선호되는 방식이다. 그렇기 때문에 대용량의 데이터를 적재할 때는 COPY 명령어를 사용하는 것이 더 선호된다. 2. MySQL Connections
📚 오늘 공부한 내용 1. Airflow 운영의 어려움 관리해야 하는 DAG의 수가 100 개가 넘어 버린다면? 데이터 품질이나 데이터 리니지 이슈 이외에도 다양한 이슈들이 발생한다. 라이브러리 충돌 (버전 충돌) Worker의 부족 처음에는
📚 오늘 공부한 내용 1. 웹서비스를 Docker로 구동해 보는 실습 1) 실습할 Hangman Repo 구성 app.py flask의 메인 함수가 있고 command line으로 받은 포트를 바인드하고 요청이 들어오기를 기다림 requirements.txt pip
docker build -t image_name IMAGE를 build하는 명령어\-t를 통해 이미지의 이름을 줄 수 있음 (tag)만약 mac 환경이라면 --platform=linux/amd64를 추가하여 다양한 OS에서 사용 가능한 환경을 만듦 docker imag
Image build를 할 때 추가하지 말아야 할 혹은 필요하지 않을 파일들이나 폴더들을 지정해 준다.빌드 프로세스를 짧게 가고, 이미지의 크기가 너무 커지는 것을 방지하기 위함이다.보통 이런 내용이 .dockerignore에 들어가며 운영을 하면서 추가가 가능하다.D
Docker volumes Host volume은 보통 개발 시 소스 코드를 바로 container 안으로 마운트하기 위함이다.내용이 지속성 있게 유지가 되도록 Production에서는 named volumes을 사용한다.Docker Container는 read-onl
📚 오늘 공부한 내용 1. 구글 시트 및 슬랙 연동 1) docker-compose.yaml 설정 curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.5.1/docker-compose.yaml' 해당 명령어를 사
📚 오늘 공부한 내용 1. 구글 시트 연동하기 1) 🔎 어려웠던 내용 & 새로 알게 된 내용 ✍ 회고
📚 오늘 공부한 내용 1. DAG 실행하는 방법 schedule로 지정해 주기적으로 실행할 수 있다. 다른 DAG에 의해 트리거로 실행되도록 처리해 준다. (이 방법이 더 좋음) Explicit Trigger DAG A가 분명하게 다음 DAG인 DAG
서버 한 대로 처리할 수 없는 규모의 데이터 - 아마존 데이터 사이언티스트 존 라우저 분산 환경이 필요하느냐에 포커스기존의 소프트웨어로는 처리할 수 없는 규모의 데이터 여기서 말하는 기존은 오라클이나 MySQL 같은 관계형 데이터베이스첫 번째 빅데이터의 정의와 비슷
외부 데이터에 대해서는 어떻게 작업을 할 것인가. 주기적인 ETL을 통해 HDFS(내부 데이터)로 읽어오게 한다. 혹은 spark에서 필요할 때마다 읽어오게 한다. (배치, Spark SQL 혹은 Spark Streaming)📌 데이터 병렬 처리가 가능하려면?데이터
Spark SQL은 구조화된 데이터 처리를 위한 Spark 모듈이다.데이터 프레임 작업을 SQL로 처리 가능하다.데이터 프레임에 테이블 이름 지정 후 SQL 함수로 사용 가능하다.HQL(Hive Query Language)와 호환을 제공한다. 보통 Hive와 Spark
✍ 회고
그 전까지의 검색 엔진은 기본적으로 웹 페이지 상의 텍스트를 보고 랭킹을 결정했다.1998 년 구글은 웹 페이지들간의 링크를 기반으로 중요한 페이지를 찾아서 검색 순위를 결정한다.이 알고리즘을 래리 페이지 이름을 따서 페이지 랭크라고 부른다.시작점을 만들고 그 웹 페이
Product를 Reading하는 사람이 자신감이 떨어지는 경우 Product의 방향에 대해 고민하는 것이 아니라 새로운 기능을 추가하는 걸 생각한다거나 그런 식으로 숲 대신 나무를 보게 되는 현상을 말한다.지표가 많아질수록 의사 결정을 잘할 수 있을 거라는 착각을 하