문제 1. AWS RDS (MySQL) 에 프로젝트 관련 Database 를 생성하고, 접근 가능한 사용자 계정을 생성하세요.
제출 1.
# oneday 라는 이름의 DATABASE 만들기 #한글과 이모티콘 포함
CREATE DATABASE oneday DEFAULT CHARACTER SET utf8mb4;
# oneday라는 이름의 유저 만들기 # % = 외부에서 접근한다는 뜻
CREATE USER 'oneday'@'%' identified by '1234';
# 접근 가능 권한 부여
GRANT ALL ON oneday.* to 'oneday'@'%';
# 확인
SHOW GRANTS FOR 'oneday'@'%';
문제 2. 스타벅스 이디야 데이터를 저장할 테이블을 다음의 구조로 생성하세요.
# DATABASE 사용
use oneday;
# TABLE 생성 1
CREATE TABLE COFFEE_BRAND
-> (
-> id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> name varchar(10)
-> )
-> ;
# 확인
DESC COFFEE_BRAND;
mysql> DESC COFFEE_BRAND;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
# TABLE 생성 2
# 위도경도 양식 참고
CREATE TABLE COFFEE_STORE
-> (
-> id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> brand int NOT NULL,
-> name varchar(32) NOT NULL,
-> gu_name varchar(5) NOT NULL,
-> address varchar(128) NOT NULL,
-> lat decimal(16,14) NOT NULL,
-> lng decimal(17,14) NOT NULL,
-> FOREIGN KEY (brand) REFERENCES COFFEE_BRAND(id)
-> );
# 확인
DESC COFFEE_STORE;
+---------+----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra
|
+---------+----------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| brand | int | NO | MUL | NULL |
|
| name | varchar(32) | NO | | NULL |
|
| gu_name | varchar(5) | NO | | NULL |
|
| address | varchar(128) | NO | | NULL |
|
| lat | decimal(16,14) | NO | | NULL |
|
| lng | decimal(17,14) | NO | | NULL |
|
+---------+----------------+------+-----+---------+----------------+
문제 3. Python 코드로 COFFEE_BRAND 데이터를 다음과 같이 입력하고 확인하세요.
제출 2.
# VSCode에서 진행
import mysql.connector
conn = mysql.connector.connect(
host= 'localhost',
user= 'oneday',
password= '1234',
database= 'oneday'
#select 할거기 때문에 buffer 줌
cursor = conn.cursor(buffered=True)
#제대로 됐는지 데이터 가져와서 확인
cursor.execute('DESC COFFEE_BRAND')
result = cursor.fetchall()
for row in result:
print(row)
# 확인
('id', 'int', 'NO', 'PRI', None, 'auto_increment')
('name', 'varchar(10)', 'YES', '', None, '')
)
# 미션수행
cursor.execute("INSERT INTO COFFEE_BRAND (name) VALUES ('STARBUCKS'), ('EDIYA')")
# select 로 확인
cursor.execute('SELECT * FROM COFFEE_BRAND')
result = cursor.fetchall()
for row in result:
print(row)
# 결과
(1, 'STARBUCKS')
(2, 'EDIYA')
문제 4. 스타벅스 페이지에 접근하는 코드에서 팝업창이 없는 경우, 팝업창을 닫는 코드에서 에러가 발생합니다. 예외처리 해서 에러
메시지를 출력하고 실행이 중단되지 않도록 수정해주세요.
# 기존
# driver.find_element_by_css_selector('.holiday_notice_close a').click()
# 팝업창 닫기 오류코드 수정
from selenium.common.exceptions import NoSuchElementException
try: #팝업이 있는 경우
driver.find_element_by_css_selector('.holiday_notice_close a').click()
#없는 경우
except NoSuchElementException as e:
print(e)