잔재미코딩
전체 목차
파이썬 기초 부트캠프
파이썬 기초 (문제풀이)
파이썬 입력과 출력
파이썬 조건문과 문자열
파이썬 반복문과 리스트
파이썬 데이터 구조
파이썬/자료구조와 알고리즘
파이썬과 객체지향 프로그래밍
프로그래밍 언어론
객체지향 프로그래밍 (OOP)
객체지향 (class와 object)
객체지향 (생성자와 소멸자 메서드)
객체지향 (public, private, protected)
객체지향 (상속)
클래스 속성과 메서드
다형성(polymorphism)
연산자 중복 (Operator Overloading)
다중 상속
포함 (Composition)
5가지 클래스 설계의 원칙 (S.O.L.I.D)
디자인 패턴
특별한 파이썬 클래스 작성법 (namedtuple)
파이썬과 컴퓨터 사이언스(자료구조)
데이터 구조와 알고리즘이란?
알고리즘 복잡도 (시간 복잡도)
대표적인 자료구조: 배열
대표적인 자료구조: 큐
대표적인 자료구조: 스택
대표적인 자료구조: 링크드 리스트
대표적인 자료구조: 해쉬 테이블
가볍게만 이해하는 블록체인과 해쉬
대표적인 자료구조: 트리
대표적인 자료구조: 힙
알고리즘 복잡도 (공간 복잡도)
파이썬과 컴퓨터 사이언스(기본 알고리즘)
알고리즘 복잡도 표현 방법
알고리즘 작성 연습하기
버블 정렬 (bubble sort)
삽입 정렬 (insertion sort)
선택 정렬 (selection sort)
재귀 용법 (Recursive Call)
동적 계획법과 분할 정복
병합 정렬 (merge sort)
퀵 정렬 (quick sort)
순차 탐색
이진 탐색 (Binary Search)
이진 트리 탐색 (Binary Tree Search)
파이썬 특수 문법(데코레이터, 이터레이터등)
중첩 함수 (Nested function)
First-class function
Closure function
데코레이터 (Decorator)
이터레이터 (iterator)
파이썬 Comprehension
파이썬 제너레이터 (Generator)
파이썬과 컴퓨터 사이언스(고급 알고리즘)
그래프 이해
깊이 우선 탐색 (DFS)
너비 우선 탐색 (BFS)
탐욕 알고리즘의 이해
최단 경로 알고리즘의 이해
최소 신장 트리 (Kruskal Algorithm)
최소 신장 트리 (Prim's algorithm)
백 트래킹 기법의 이해
크롤링/데이터 분석
웹크롤링 기본
웹 기반 기술 이해
크롤링(crawling) 이해 및 기본
Open API를 활용한 크롤링
CSS Selector를 사용한 크롤링
연습문제와 흥미로운 예제
웹크롤링 심화
쿠키(Cookie)와 세션(Session)
로그인이 필요한 웹페이지 크롤링 이해 및 실습
Selenium 과 PhantomJS를 활용한 크롤링 이해 및 실습
Selenium 과 PhantomJS에서 CSS3 Selector 이용하기
XPATH 이용하기
페이지 로딩 시간을 기다린 후, 크롤링하기
웹사이트 자동 조작하기
다양한 포멧의 데이터 수집
다양한 Open API 사용하기
다양한 데이터 저장/읽기 - CSV 파일
다양한 데이터 저장/읽기 - 엑셀(xlsx) 파일
다양한 데이터 읽기 - PDF/워드(docx) 파일
다양한 데이터 읽기 - XML/JSON 파일
데이터 분석(추천시스템)
추천 시스템이란? (Recommendation System)
Recommendation 기본 알고리즘
유사도(Similarity) 계산 방식
유사도와 KNN을 활용한 예측 값 계산 및 추천 목록 생성 기법
Latent Factor 모형 (PCA와 Latent Factor 모형)
SVD (SVD와 Latent Factor 모형)
파이썬 surprise 라이브러리의 SVD 모델
정확도(Precision), 재현율(Recall)과 참고사항
컴퓨터 공학/리눅스와 클라우드
운영체제(OS) 부트캠프
운영체제란?
History로 이해하는 운영체제
시스템콜과 사용자/커널 모드
프로세스 스케쥴링
인터럽트
프로세스 구조와 컨텍스트 스위칭
프로세스간 커뮤니케이션 (IPC)
스레드와 동기화 (Thread)
가상 메모리 (Virtual Memory)
파일 시스템 (File System)
부팅과 현대 운영체제의 이해
가상 머신의 이해
리눅스 (linux) 익히기
리눅스 기본 이해
리눅스 쉘(bash), 기본 명령어 이해 및 실습
쉘 스크립트
Ubuntu(우분투) 이해하기
VIM 에디터 이해 및 실습
crontab 사용법
터미널 (terminal) 사용법
클라우드 컴퓨팅 (AWS)
클라우드 컴퓨팅과 AWS 이해
AWS 무료 서비스 가입과 서버(EC2) 만들기
Security Group, CloudWatch, S3 만들기
RDB로 MySQL 데이터베이스 만들기
서버(EC2)에 파이썬 환경과 쥬피터 노트북 설치하기
AWS 서비스 프로그래밍으로 제어하기
웹/앱서비스 개발
웹서비스 기술 익히기
웹서비스 개발과 파이썬 flask 를 활용한 웹서비스 개발
flask 기본 사용법
웹페이지(HTML)를 파이썬 flask로 만들기
flask 다양한 기능
AWS에서 초간단 flask 웹서버 띄우기
데이터베이스 (SQL/NoSQL)
데이터베이스 기본 (MySQL)
RDBMS(Relational Database Management System) 이해
MySQL 이해 및 실습
SQL DDL(Data Definition Language) 이해 및 실습
SQL DML(Data Manipulation Language) 이해 및 실습
SQL DCL(Data Control Language) 이해 및 실습
pymysql 모듈 이해 및 실습
데이터베이스 심화 (MySQL+AWS)
웹크롤링 데이터 MySQL 저장 (한글 처리와 AWS RDS 활용 예)
pandas DataFrame to_sql 메서드 사용 예제
서브 쿼리 (MySQL SubQuery)
외래키 (FOREIGN KEY)
인덱스 (MySQL INDEX)
데이터베이스 예제코드 (MySQL+AWS)
Sakila 데이터베이스로 MySQL 실습하기
파일로 실행하는 SQL: mysql CLI 명령어
pymysql 로 실습 환경 만들기
GROUP BY, SUM, AVG, MAX, MIN, DISTINCT 익히기
Sakila 데이터베이스로 익히는 MySQL 연습 실제
복잡한 조건의 데이터 SQL로 추출하기 예제1
복잡한 조건의 데이터 SQL로 추출하기 예제2
JOIN 구문 익히기
JOIN 활용 실제 예제1
JOIN 활용 실제 예제2
JOIN 활용 실제 예제3
테이블에서 데이터 바로 추출하기
데이터베이스 NoSQL 기본 (mongoDB)
NoSQL 이해
mongoDB 설치 및 환경 구축
mongoDB 바로 다뤄보기
mongoDB 데이터 입력/수정/검색/삭제 (CRUD)
파이썬으로 mongoDB 제어하기 - pymongo 라이브러리
크롤링과 함께 쓰는 mongoDB 예제
예제로 이해하는 find 의 다양한 문법
mongoDB 인덱스(INDEX)
데이터베이스 NoSQL 심화 (mongoDB)
mongoDB aggregation 사용법 익히기
실제 데이터를 이용한 aggregation 실습 환경 구축
aggregation 주요 명령 (project/limit)
aggregation 주요 명령 (group/match/sort/sum)
실제 예제로 익히는 aggregation
aggregation 연산과 활용 예제
project에 표현식 활용하기
pymongo aggregation 작성 스타일과 참고사항
클라우드 컴퓨팅과 AWS 이해
혹시 본 자료가 도움이 되셨다면, 이런 식으로 잘 정리된 코드/자료로 만든 제 강의 한번 봐주실래요?
풀스택을 위한 탄탄탄 프런트엔드 기본기 다지기
순수 HTML / CSS / 바닐라 자바스크립트로 모던 웹페이지 만들기
자세히 알아보기
모든 강좌 보기
1. 클라우드 컴퓨팅과 AWS 이해
¶
1.1. 클라우드 컴퓨팅 이해
¶
클라우드 컴퓨팅: 클라우드 서비스 플랫폼에서 컴퓨팅 파워, 데이터베이스, 응용프로그램 및 다양한 IT 자원을 필요에 따라 사용하는 시스템
서버, 데이터베이스, 저장 시스템, 다양한 응용프로그램 서비스를 제공
클라우드 컴퓨팅 시대
이전: 서비스 런칭 전, 서버 및 시스템 대규모 투자, 해당 서비스를 얼마나 고객이 사용할지를 사전에 예측해야 함
현재: 클라우드 상에 서비스를 런칭하고, 고객 반응을 보며 필요시 사용 자원 확대
이전: 자체 서버 구축 비용이 높음
현재: 클라우드 업체에서 규모의 경제를 실현하여, 구축 비용을 낮출 수 있음
이전: 얼마나 서비스를 사용할지 사전 예측, 서버 구입, 설치에 시간 소요
현재: 단 몇 분만에 사용 자원 확대 가능
이전: 자체 데이터 센터 관리 및 유지에 많은 비용 발생
현재: 서버 관리 및 유지 비용 불필요
이전: 글로벌 서비스를 위해 지역별 자체 서버 및 데이터 센터 구축 필요
현재: 단 몇 분만에 전세계 서비스 가능
클라우드 컴퓨팅 유형
서비스 인프라(IaaS, Infrastructure as a Service): 서비스 기본 빌딩 블록, 네트워크 기능, 컴퓨터(서버), 데이터 스토리지 제공
서비스 플랫폼(PaaS, Platform as a Service): 서비스를 개발 할 수 있는 안정적인 환경(Platform)과 해당 환경을 이용하는 응용 프로그램 개발까지 가능한 API 제공
서비스 소프트웨어(SaaS, Software as a Service): 응용프로그램 형태, 예로 메일 서비스등
1.2. AWS 이해 및 주요 서비스 (focusing on 기본 서비스 제공)
¶
AWS: Amazon Web Service (아마존 회사에서 제공하는 클라우드 컴퓨팅 서비스)
VPC(Virtual Private Cloud): 네트워크 할당, 사용자의 AWS 계정 전용 가상 네트워크
논리적으로 격리된 가상의 네트워크 공간을 제공하는 서비스
인터넷에 연결되어야 하는 리소스에는 퍼블릭 서브넷을 사용하고, 인터넷에 연결되지 않는 리소스에는 프라이빗 서브넷 사용
Security Group: 네트워크 방화벽/보안 설정
ELB(Elastic Load Balancer): 트래픽 분산
혹시 본 자료가 도움이 되셨다면, 이런 식으로 잘 정리된 코드/자료로 만든 제 강의 한번 봐주실래요?
풀스택을 위한 탄탄탄 프런트엔드 기본기 다지기
순수 HTML / CSS / 바닐라 자바스크립트로 모던 웹페이지 만들기
자세히 알아보기
모든 강좌 보기
EC2(Elastic Compute Cloud): 서버(Computing Unit), 모든 서비스의 근본 EC2 유형:
https://aws.amazon.com/ko/ec2/instance-types/
RDS:RDBMS(관계형 데이터베이스) 설치/관리 작업을 제공해주는 서비스
데이터베이스는 설치 구성, 가용성 관리를 위한 백업/이중화 작업이 필요하므로, 이를 대신 해주는 서비스
S3:높은 내구성과 가용성을 가진 스토리지 서비스
데이터를 내부 복제하여, 데이터 훼손 가능성을 현저히 낮춤
CLOUD FRONT:AWS에서 제공하는 CDN 서비스
CDN: 다수의 네트워크 노드에 Cache 서버를 분산 배치하고, 사용자의 요청에 따라 가장 가까운 Cache 서버에서 데이터를 전달해주는 서비스
ROUTE53:AWS에서 제공하는 DNS 서비스
터미널 (terminal) 사용법
AWS 무료 서비스 가입과 서버(EC2) 만들기