잔재미코딩
전체 목차
파이썬 기초 부트캠프
파이썬 기초 (문제풀이)
파이썬 입력과 출력
파이썬 조건문과 문자열
파이썬 반복문과 리스트
파이썬 데이터 구조
파이썬/자료구조와 알고리즘
파이썬과 객체지향 프로그래밍
프로그래밍 언어론
객체지향 프로그래밍 (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 작성 스타일과 참고사항
운영체제란?
혹시 본 자료가 도움이 되셨다면, 이런 식으로 잘 정리된 코드/자료로 만든 제 강의 한번 봐주실래요?
풀스택을 위한 탄탄탄 프런트엔드 기본기 다지기
순수 HTML / CSS / 바닐라 자바스크립트로 모던 웹페이지 만들기
자세히 알아보기
모든 강좌 보기
1. 운영체제란?
¶
운영체제란?
¶
Operating System 또는 OS 라고 부름
대표적인 운영체제
Windows OS, Mac OS, 그리고 UNIX(유닉스)
UNIX OS
UNIX 계열 OS
UNIX와 사용법이나, OS 구조가 유사
LINUX (리눅스) OS
프로그래머, 전공자
운영체제 역할1: 시스템 자원(System Resource) 관리자
¶
시스템 자원(System Resource) = 컴퓨터 하드웨어
운영체제 역할2: 사용자와 컴퓨터간의 커뮤니케이션 지원
¶
운영체제 역할3: 응용프로그램 제어
¶
정리
¶
운영체제 역할1: 시스템 자원(System Resource) 관리자
운영체제 역할2: 사용자와 컴퓨터간의 커뮤니케이션 지원
운영체제 역할3: 응용 프로그램 제어
정확도(Precision), 재현율(Recall)과 참고사항
History로 이해하는 운영체제