Hot
-
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 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
-
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
-
Algorithm - 미로의 최단거리 통로(BFS)
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [미로의 최단거리 통로(BFS)] 7*7 격자판 미로를 탈출하는 최단경로의 수를 출력하는 프로그램을 작성하시오. 단, 경로의 수는 출발점에서 도착점까지 가는데 이동한 횟수를 의미하며 출발점은 격자의 (1, 1) 좌표이고 탈출 도착점은 (7, 7) 좌표이다. 또한, 격자판의 1은 벽이고 0은 도로이다. 참고로, 격자판의 움직임은 상하좌우로만 움직이며 미로가 아래와 같다면 다음의 경로가 최단경로(12)이다. *입력 설명 7*7 격자판의 정보가 주어진다. *출력 설명 첫 번째 줄에 최단으로 움직인 칸의 수를 출력한다. 단, 도착할 수 없는 경우에는 -1을 출력한다. 풀..
2022.01.09
-
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 - 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
-
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
-
Algorithm - 사다리 타기(DFS)
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [사다리 타기(DFS)] 현수와 친구들은 과자를 사먹기 위해 사다리 타기를 한다. 사다리 표현은 2차원 리스트에 0과 1로 채워지며, 0은 평면을 의미하고 1은 사다리를 의미한다. 현수는 특정 도착지점으로 도착하기 위해 몇 번째 열에서 출발해야 하는지를 알고 싶어한다. 여기서 특정 도착지점은 2로 표기된다. 위의 조건을 모두 만족하는 프로그램을 작성하시오. 참고로, 사다리의 지도가 10 * 10이면 아래와 같이 2차원 리스트로 표현된다. 위의 조건들을 고려하여, 특정 도착지점인 2에 도달하려면 7번째 열에서 출발하면 된다. 단, 사다리 타기의 특성 상 네 방향(상..
2022.01.18
-
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 - docker 기타 명령
도커 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 도커(docker)의 기타 명령 도커(docker)의 기타 명령을 알아보고자 한다. docker history 해당 명령은 docker image의 히스토리(history)를 확인하는 명령이다. 이처럼 "docker history 이미지명"의 명령을 사용하면, 해당 image의 히스토리를 볼 수 있다. 즉, 해당 이미지는 FROM, LABEL, RUN, ENTRYPOINT 등의 명령에 따라 layer(층) 형태로 생성된 것을 확인할 수 있다. docker cp 해당 명령은 docker container에서 특정 파일을 호스트 PC로 가져오는 명령이다. 또한, 반대로 호스트..
2021.12.18
-
Flask - flask로 REST API 구현 및 테스트
Flask 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. flask로 REST API 구현 및 테스트(Python) flask를 사용하여 REST API를 구현하고 테스트하는 연습을 하고자 한다. REST API 구현 및 테스트(with flask) flask에서는 딕셔너리(dict) 데이터 타입을 응답 데이터로 만들고, 이를 jsonify() 함수를 사용하여 JSON 응답 데이터로 만들 수 있다. 즉, 특정한 URI를 요청하면 JSON 형식으로 데이터를 반환하도록 만들 수 있다. 참고로, flask의 jsonify() 함수는 응답 데이터를 JSON 포멧으로 제공해준다. *참고(1) flask로 REST API 테스트를 하..
2021.11.24
-
MySQL - 데이터 분석과 SQL 문법
데이터베이스 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 데이터 분석과 SQL 문법(MySQL) MySQL 구문으로 데이터를 분석하는 연습을 하고자 한다. GROUP BY, COUNT, SUM, AVG, MAX, MIN, DISTINCT, AS, HAVING COUNT() COUNT() 함수는 테이터 검색 결과에서 row가 몇 개인지를 알려준다. 기본 문법 - SELECT COUNT(*) FROM 테이블명 - SELECT COUNT(컬럼명) FROM 테이블명 SELECT COUNT(*) FROM items; SELECT COUNT(ori_price) FROM items; SELECT COUNT(*) FROM items 코..
2021.11.12
-
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 - 파이썬으로 다루는 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
-
Python - 크롤링 실전 연습(2)
인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 크롤링 실전 연습(Python) G마켓 웹 사이트를 크롤링하는 연습을 하고자 한다. G마켓 베스트 100 상품 타이틀/가격 크롤링하기 import requests from bs4 import BeautifulSoup res = requests.get('http://corners.gmarket.co.kr/Bestsellers?viewType=G&groupCode=G01') soup = BeautifulSoup(res.content, 'html.parser') bestlist = soup.select('div.best-list') bestitems = bestlist..
2021.11.04
-
Python - 엑셀파일과 크롤링
인프런 파이썬 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 크롤링 & 엑셀파일(Python) 크롤링으로 추출한 데이터를 엑셀파일의 생성·저장 및 읽기의 방법과 접목시켜 다양한 기능을 구현하고자 한다. 엑셀파일 생성하기 import openpyxl excel_file = openpyxl.Workbook() 우선, 엑셀파일을 읽고 저장할 수 있는 openpyxl 라이브러리를 임포트 한다. 그리고 openpyxl 라이브러리의 Workbook() 함수를 활용하여, 엑셀파일을 생성한 후 변수 excel_file에 할당한다. excel_sheet = excel_file.active excel_sheet.title = '리포트' 이렇..
2021.11.01
-
Algorithm - 알리바바와 40인의 도둑(동적 계획법)
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [알리바바와 40인의 도둑(동적 계획법)] 알리바바는 40인의 도둑으로부터 금화를 훔쳐 도망치고 있다. 알리바바는 평소에 잘 가지 않던 계곡의 돌다리로 도망가고자 한다. 계곡의 돌다리는 N*N개의 돌로 구성되어 있으며, 각 돌다리들은 높이가 서로 다르다. 해당 돌다리를 건널 때 돌의 높이만큼 에너지가 소비되며, 반드시 최단거리로 이동한다. 즉, 현재지점에서 오른쪽 또는 아래쪽으로만 이동해야 한다. N*N의 계곡 돌다리 격자정보가 주어지면, (1, 1)에서 (N, N)까지 가는데 드는 에너지의 최소량을 구하는 프로그램을 작성하시오. 만약, 위의 예시처럼 N=3인 돌..
2022.02.04
-
Algorithm - 가장 높은 탑 쌓기(LIS 응용)
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [가장 높은 탑 쌓기(LIS 응용)] 밑면이 정사각형인 직육면체 벽돌을 사용하여 탑을 쌓고자 한다. 탑은 벽돌을 한 개씩 아래에서 위로 쌓으면서 만들어 간다. 아래의 조건을 만족하면서 가장 높은 탑을 쌓을 수 있는 프로그램을 작성하시오. (조건 1) 벽돌은 회전시킬 수 없다. 즉, 옆면을 밑면으로 사용할 수 없다. (조건 2) 밑면의 넓이가 같은 벽돌은 없으며, 무게가 같은 벽돌도 없다. (조건 3) 벽돌들의 높이는 같을 수 있다. (조건 4) 탑을 쌓을 때, 밑면이 좁은 벽돌 위에 밑면이 넓은 벽돌을 놓을 수 없다. (조건 5) 무게가 무거운 벽돌을 무게가 가벼..
2022.02.03
-
Algorithm - 계단 오르기(동적 계획법)
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [계단 오르기(동적계획법)] 철수는 계단을 오를 때, 한 번의 한 계단 또는 두 계단씩 올라간다. 만약, 총 4개의 계단을 올라간다면 그 방법의 수는 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2로 5가지이다. 철수가 총 N개의 계단을 올라갈 때, 올라갈 수 있는 모든 방법의 수를 구하는 프로그램을 작성하시오. *입력 설명 첫 번째 줄에 계단의 개수인 자연수 N(3 ≤ N ≤45)이 주어진다. *출력 설명 첫 번째 줄에 올라가는 방법의 수를 출력한다. 풀이(Python) 답안(1) : Bottom-Up import sys sys.stdin = ope..
2022.02.02
-
Algorithm - 수열 추측하기(순열, 파스칼 삼각형 활용)
알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다. 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 문제 [수열 추측하기(순열, 파스칼 삼각형 활용)] 가장 첫 번째 줄에 1부터 N까지의 숫자가 한 개씩 적혀 있다. 그리고 두 번째 줄부터 차례대로 파스칼의 삼각형의 원리로 위의 두 개를 더한 값이 저장되어 진행된다. 예를 들어, N이 4이고 가장 윗 줄에 3 1 2 4가 있다고 했을 때 다음과 같은 삼각형이 그려진다. N과 가장 밑에 있는 숫자가 주어져 있을 때 가장 윗줄에 있는 수열을 구하는 프로그램을 작성하시오. 단, 답이 여러 개 나오는 경우에는 사전 순으로 가장 앞에 오는 답을 출력하시오. *입력 설명 첫 번째 줄에 두 개의 정수 N(1 ≤ N ≤ 10)과 F..
2021.12.28