잔재미코딩
전체 목차
파이썬 기초 부트캠프
파이썬 기초 (문제풀이)
파이썬 입력과 출력
파이썬 조건문과 문자열
파이썬 반복문과 리스트
파이썬 데이터 구조
파이썬/자료구조와 알고리즘
파이썬과 객체지향 프로그래밍
프로그래밍 언어론
객체지향 프로그래밍 (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 작성 스타일과 참고사항
프로그래밍 언어론
혹시 본 자료가 도움이 되셨다면, 이런 식으로 잘 정리된 코드/자료로 만든 제 강의 한번 봐주실래요?
처음하는 파이썬 머신러닝 부트캠프
쉽게! 캐글 문제와 함께 분류,회귀,군집화 익히기
자세히 알아보기
모든 강좌 보기
1. 프로그래밍 언어론
¶
프로그래밍 언어론 이론 중 핵심부분만! (특히 갈색 표시 용어만 가볍게 들어두고, 추후 그런 용어를 들어본정도면 충분)
¶
이론은 이번 달에 이 내용이 처음이자 마지막임!
프로그래밍 언어
¶
인간이 컴퓨터와 의사소통할 수 있도록 컴퓨터가 이해할 수 있는 명령으로 프로그램을 작성할 수 있도록 만든 언어
프로그래밍 언어 - 결국 인간과 컴퓨터간의
의사소통
¶
컴퓨터는
기계어
만 이해한다.
기계어
란: 0과 1로 된 이진수 형태로
CPU
가 이해할 수 있는 코드
¶
CPU
가 수행할 수 있는 명령 -
instruction set
(기계어로 표시되는 명령어 집합)
¶
Instruction set (명령어 집합)
더하기, 빼기, 데이터 저장, 불러오기, if, return 등
다음 예에서는 더하기의 예로, OP Code 가 일종의 Instruction set
혹시 본 자료가 도움이 되셨다면, 이런 식으로 잘 정리된 코드/자료로 만든 제 강의 한번 봐주실래요?
처음하는 파이썬 머신러닝 부트캠프
쉽게! 캐글 문제와 함께 분류,회귀,군집화 익히기
자세히 알아보기
모든 강좌 보기
저급 언어와 고급 언어
: 원하는 언어로 컴퓨터에 명령을 전달할 수 있습니다.
¶
저급 언어
¶
기계어: 0과 1로 된 2진수 언어
어셈블리어: 기계어 명령을 알기쉬운 기호로 표시
예: ADD A B
A 저장소에 있는 데이터에 B 저장소에 있는 데이터를 더해서, A 저장소에 저장해라!
고급 언어
¶
하드웨어의 기술적 요소를 상세하게 몰라도 쉽게(?) 작성하고 수정
일상 언어(영어)에서 사용하는 표현으로 작성 가능
예: +는 덧셈, -는 뺄셈
기계어나 어셈블리어는 데이터 저장 주소를 정확히 알아야 하지만, 고급 언어는 주소 대신 변수 이름으로 저장 장소에 접근 가능
명령어 하나로 다수 동작 지시 가능
예: y = x + (z * k)
대표적인 언어: C 언어, JAVA 언어, Python 언어 등
In [ ]:
고급 언어와 기계어를 제외한 저급 언어는 결국 기계어로 변환되서 CPU에 전달되어 실행됨
¶
컴파일러
: 고급 언어로 작성된 코드를 한번에 기계어로 변환하는 프로그램
¶
대표적인 언어: C언어, JAVA언어 등
인터프리터
: 고급 언어로 작성된 코드를 한줄씩 기계어로 변환하는 프로그램
¶
대표적인 언어: Python, PHP, Ruby 등
프로그래밍 언어 역사
¶
1950년대: 어셈블리어, 포트란
1960년대: 코볼, PL/I
1970년대:
C언어
, 파스칼
1980년대: Basic
1990년대:
C++언어, JAVA언어, Visual Basic, Python
2000년대:
Spark, Scala, Go
출처:
http://m.insightsemicon.com/m/m_article.html?no=127702
혹시 본 자료가 도움이 되셨다면, 이런 식으로 잘 정리된 코드/자료로 만든 제 강의 한번 봐주실래요?
처음하는 파이썬 머신러닝 부트캠프
쉽게! 캐글 문제와 함께 분류,회귀,군집화 익히기
자세히 알아보기
모든 강좌 보기
In [ ]:
파이썬 데이터 구조
객체지향 프로그래밍 (OOP)