Hot
-
MySQL - SQL 기초 문법(1)
데이터베이스 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. SQL 기초 문법(MySQL) MySQL을 사용하여, 데이터베이스을 만들고 테이블의 생성과 변경 방법을 연습하고자 한다. SQL로 데이터베이스 다루기(생성, 목록보기, 사용, 삭제) 기본적으로 데이터베이스는 여러 개의 이름이 존재하며, 각 데이터베이스 이름 안에는 여러 개의 테이블이 존재한다. 데이터베이스 생성 CREATE DATABASE mydata; ``` 결과 : 13:27:21 CREATE DATABASE mydata 1 row(s) affected 0.0019 sec ``` 참고로, CREATE SCHEMA mydata; 코드도 데이터베이스를 생성한다. (..
2021.11.05
-
Docker - docker compose 기본 사용법
도커 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. docker compose 기본 사용법 docker compose의 기본 작성법과 주요 명령들을 이해하고자 한다. docker compose 란? docker compose는 여러 개의 docker container를 모아서 관리하기 위한 툴이다. 웹 서비스는 일반적으로 프론트엔드 서버, 벡엔드 서버, 데이터베이스 서버로 구성되기 때문에 각 서버를 docker container로 연결하여 동작시키고 docker compose를 사용하여 해당 컨테이너들을 관리하는 것이다. docker compose의 기본 작성법 docker compose는 docker-compose.yml..
2021.12.22
-
MySQL - 파이썬으로 다루는 MySQL
데이터베이스 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 파이썬으로 다루는 MySQL 파이썬 코드로 MySQL을 다루는 연습을 하고자 한다. pymysql 설치 pymysql은 Python에서 mysql을 사용할 수 있는 가장 쉬운 라이브러리이다. pymysql 라이브리러 이외에도 MySQLdb, MySQL connector 등의 다양한 라이브러리가 존재한다. 설치 pip install pymysql (터미널 창) mysql 핸들링 코드 작성 순서 1. pymysql 모듈 import 2. pymysql.connect() 함수를 사용하여 MySQL에 연결(호스트명, 포트, 로그인, 암호, 접속할 DB 등을 인자로 지정) ..
2021.11.10
-
Docker - 도커로 nginx 웹서버 구축하기
도커 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 도커로 nginx 웹서버 구축하기 docker를 통해 ubuntu:20.04에 nginx 웹서버를 구축하는 연습을 하고자 한다. ubuntu:20.04 & nginx 웹서버 [1단계] docker run -dit -p 80:8080 --name myos ubuntu:20.04 docker exec -it myos /bin/bash ubuntu:20.04 image로 docker container를 생성하고 실행시킨다. 그 이후에 docker exec 명령을 사용하여, 해당 docker container로 들어간다. *결과 : [2단계] apt-get update apt-g..
2021.12.23
-
Docker - reverse proxy와 nginx 웹서버의 주요 설정
도커 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. reverse proxy & nginx nginx 웹 서버의 reverse proxy 테스트를 통해 proxy server의 개념을 학습하고자 한다. proxy server 란? proxy server는 클라이언트(client)가 다른 네트워크 서비스(server)에 간접적으로 접속할 수 있도록 해주는 시스템 또는 프로그램이다. *참고내용 - forward proxy client가 proxy server에 외부 인터넷 접근을 요청하면, proxy server는 client를 대신하여 외부의 인터넷에 접속한 후 결과를 받아서 이를 client에 다시 전달한다. (client..
2021.12.25
-
MySQL - 파일로 실행하는 SQL
데이터베이스 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 파일로 실행하는 SQL(MySQL) 파일로 SQL을 실행하고, table에 data를 한 번에 입력하는 방법을 연습하고자 한다. 파일로 SQL 실행 mysql Workbench에서 SQL 파일(student.sql)을 불러온 후, SQL 코드를 실행하는 방법이다. Worklbench File -> Open SQL Script -> student.sql file DROP DATABASE IF EXISTS student_mgmt; CREATE DATABASE student_mgmt DEFAULT CHARSET=utf8 COLLATE=utf8_bin; USE studen..
2021.11.10
-
Docker - 컨테이너와 컨테이너를 연결하기
도커 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 컨테이너와 컨테이너를 연결하기 docker run 명령의 --link 옵션을 사용하여 컨테이너와 컨테이너를 연결하는 연습을 하고자 한다. docker container & docker container *dokcer run 명령의 --link 옵션 기본구조 --link : [1단계] mysql이 실행되는 docker container를 생성하고 실행시키는 명령이다. 여기서 mysql이 실행되는 폴더인 /var/lib/mysql를 /home/ubuntu 안에 존재하는 mysqldata에 연결시켜 놓는다. [2단계] "docker inspect 이미지명" 명령을 통해 mysq..
2021.12.19
-
Flask - 다양한 routing 기법
Flask 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 다양한 routing 기법(Python) flask의 다양한 routing 기법을 예제를 통해 연습해보고자 한다. routing 기법으로 정적 페이지 리턴하기(HTML) from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" @app.route("/hello") def hello_flask(): return "Hello Flash!" @app.route("/first") def hello_first(): return "Hello First" if __..
2021.11.24
-
MySQL - Foreign Key
데이터베이스 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. Foreign Key(MySQL) Foreign Key는 두 테이블 사이에 관계를 선언해서, 데이터의 무결성을 보장하는 제약이다. Foreign Key 실습환경 구축 DROP DATABASE IF EXISTS sqlDB; CREATE DATABASE sqlDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; USE sqlDB; DROP TABLE IF EXISTS userTbl; CREATE TABLE userTbl ( userID CHAR(8) NOT NULL PRIMARY KEY, name VARCHAR(10) NOT NULL, birthY..
2021.11.11
-
MySQL - pandas & pymysql 라이브러리
데이터베이스 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. pandas, pymysql 라이브러리 pandas 라이브러리의 많은 기능 중 일부를 연습해보고자 한다. read_sql() pandas 라이브러리의 다양한 기능 중, read_sql() 함수를 사용하면 SQL 코드의 결과를 바로 확인할 수 있다. import pymysql import pandas as pd host_name = 'localhost' host_port = 3306 username = 'root' password = 'mysql pw' database_name = 'student_mgmt' db = pymysql.connect( host=host_n..
2021.11.10
-
Python - 엑셀파일과 크롤링
인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 크롤링 & 엑셀파일(Python) 크롤링으로 추출한 데이터를 엑셀파일의 생성·저장 및 읽기의 방법과 접목시켜 다양한 기능을 구현하고자 한다. 엑셀파일 생성하기 import openpyxl excel_file = openpyxl.Workbook() 우선, 엑셀파일을 읽고 저장할 수 있는 openpyxl 라이브러리를 임포트 한다. 그리고 openpyxl 라이브러리의 Workbook() 함수를 활용하여, 엑셀파일을 생성한 후 변수 excel_file에 할당한다. excel_sheet = excel_file.active excel_sheet.title = '리포트' 이렇..
2021.11.01
-
Python - 크롤링 실전 연습(1)
인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 크롤링 연습(Python) 예제를 통해 크롤링 실전 연습을 하고자 한다. 쇼핑 사이트 크롤링 (예제 연습을 위해 만든 예제 사이트) import requests from bs4 import BeautifulSoup res = requests.get('https://davelee-fun.github.io/') soup = BeautifulSoup(res.content, 'html.parser') items = soup.select('div.mainheading > h1') for item in items: print(item.get_text()) ``` 결과 : T..
2021.10.31
-
Docker - 도커로 주피터 노트북 서버 만들기
도커 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 도커(docker)로 주피터 노트북 서버 만들기 docker를 통해 주피터 노트북 서버를 만드는 연습을 하고자 한다. docker & jupyter notebook docker container 내부에서 jupyter notebook이 실행되는 폴더인 /home/jovyan 폴더를 호스트 PC의 폴더와 연결하여 호스트 PC에서 docker를 실행하는 폴더에 있는 주피터 노트북 파일을 작업할 수 있다. (docker 활용) [1단계] ubuntu에 주피터 노트북이 실행되는 폴더와 연결할 2021_LEARN 폴더가 있는지 확인한다. [2단계] docker container를 ..
2021.12.19
-
Flask - MVC 패턴과 flask blueprint
Flask 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. MVC 패턴과 flask blueprint(Python) MVC 패턴과 flask의 blueprint를 예제를 통해 연습해보고자 한다. MVC 패턴 MVC 패턴은 Model-View-Controller의 줄임말로 소프트웨어 공학에서 나온 아키텍쳐이다. MVC 패턴대로 코드를 작성하면, 유지보수가 쉬워진다는 주장이 있지만 실제로는 그렇지 않은 경우가 많다. MVC 패턴은 하나의 기능을 구현하는데 각 기능이 여러파일에 쪼개져 있으므로, 코드이해 및 디버깅에 어려움이 있다. 또한, 코드 수정 시 MVC의 특정 부분만을 수정하기 보다는 전체적으로 연결된 기능의 코드를 수정하..
2021.11.29
-
Flask - jinja2 template
Flask 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. jinja2 template(Python) jinja2 template를 사용하여, 파이썬(flask) 코드로 웹 페이지(HTML)를 만드는 연습을 하고자 한다. jinja2 template jinja2 템플릿은 웹 페이지에서 필요한 부분을 변경할 필요가 있을 때, 사용하는 간단한 문법이다. (웹 페이지에서 파이썬 프로그래밍 가능) *참고 jinja2 템플릿 엔진이 해당 HTML 코드를 템플릿으로 만들면, 템플릿 안의 존재하는 파이썬 코드를 실행시켜 템플릿을 채운 후 최종 HTML 파일을 생성하는 원리이다. jinja2 template 변수(문법) *HTML 파일 H..
2021.11.25
-
Algorithm - 다이아몬드 모양의 합
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [다이아몬드 모양의 사과나무 합] 현수의 농장은 N*N 격자판으로 이루어져 있으며, 각 격자안에는 한 그루의 사과나무가 심어져 있다. N의 크기는 항상 홀수이며, 가을이 되어 사과를 수확해야 하는데 현수는 격자판안의 사과를 수확할 때 다이아몬드 모양의 격자판만을 수확하고 나머지 격자안의 사과는 새들을 위해서 남겨놓는다. 만약 N이 5이면, 아래 그림과 같이 진한 부분의 사과를 수확한다. 현수가 수확하는 사과의 총 개수를 출력하는 프로그램을 작성하시오. *입력 설명 첫 줄에 자연수 N(홀수)이 주어진다. (3 ≤ N ≤ 20) 두 번째 줄부터 N줄에 걸쳐 각 줄에 ..
2021.11.17
-
Python - 네이버 검색 Open API를 활용한 크롤링
인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. Open API를 활용한 크롤링(Python) Open API를 사용해서 크롤링을 연습하고자 한다. 네이버 검색 Open API를 통한 크롤링 연습 import requests client_id = 'p_9ZJktltCKZd9gF3OH4' client_secret = 'lsOUE9wiJD' naver_open_api = 'https://openapi.naver.com/v1/search/shop.json?query=갤럭시노트10' header_params = {"X-Naver-Client-Id":client_id, "X-Naver-Client-Secret":clie..
2021.11.01
-
Algorithm - 사과나무(BFS)
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [사과나무(BFS)] 현수의 농장은 N*N 격자판으로 이루어져 있으며, 각 격자안에는 한 그루의 사과나무가 심어져있다. (단, N은 항상 홀수) 가을이 되어 사과를 수확해야 하는데, 현수는 격자판 안의 사과를 수확할 때 다이아몬드 모양의 격자판만 수확하고 나머지 격자 안의 사과는 새들을 위해서 남겨놓는다. 만약, N이 5이면 아래 그림과 같이 진한 부분의 사과를 수확한다. 현수가 수확하는 사과의 총 개수를 출력하는 프로그램을 작성하시오. *입력 설명 첫 번째 줄에 자연수 N(3 ≤ N ≤ 20, 홀수)이 주어진다. 두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연..
2022.01.08
-
Flask - flask의 다양한 기능
Flask 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. flask의 다양한 기능(Python) flask의 다양한 기능을 예제를 통해 학습하고 연습하고자 한다. 에러(error) 다루기 from flask import Flask import requests app = Flask(__name__) @app.errorhandler(404) def page_not_found(error): return "404 Error", 404 # 없는 페이지를 요청했을 때의 에러 @app.route("/google") def get_google(): response = requests.get("http://www.google.co.kr")..
2021.11.27
-
Algorithm - 점수 계산
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [점수 계산] OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같은 점수 계산을 하기로 했다. 1번 문제가 맞는 경우에는 1점으로 계산하고, 1번 문제 이후의 답을 틀리다가 답이 맞은 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우는 두 번째 문제를 2점, 세 번째 문제를 3점, ... , K번째 문제를 K점으로 계산한다. 반면에 틀린 문제는 0점으로 계산한다. 예를 들어, 아래와 같이 10개의 OX 문제에서 답이 맞은 문제..
2021.11.02