Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2017 SW교육 학생동아리 Lecture 4.
Search
Jinny You
December 11, 2017
Education
0
150
2017 SW교육 학생동아리 Lecture 4.
2017 SW교육 학생동아리에서 진행한 "리눅스 서버를 연동한 드론 소프트웨어 프로그래밍"강의 자료입니다.
Jinny You
December 11, 2017
Tweet
Share
More Decks by Jinny You
See All by Jinny You
인디 앱 개발자와 Flutter
tinyjin
0
240
모던 웹 기술로 C++ 렌더링 엔진 테스트 자동화하기
tinyjin
0
16
그래픽 엔진 포팅 사례로 배우는 웹어셈블리 웹 컴포넌트 개발부터 디버깅, 최적화까지
tinyjin
0
170
韩国的打卡地:你喜欢海边吗?
tinyjin
0
21
LottieFiles로 시작하는 빠르고 효율적인 애니메이션 핸드오프
tinyjin
0
49
エンジニアが見つめるLottieアニメーション
tinyjin
0
69
ThorVG's Lottie Model in Action
tinyjin
0
150
국민대학교 사제동행 세미나
tinyjin
0
260
Cumulus - Application Weakness Monitoring Software
tinyjin
0
36
Other Decks in Education
See All in Education
Unraveling JavaScript Prototypes
debug_mode
0
120
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
2.5k
Казармы и гарнизоны
pnuslide
0
150
HTML5 and the Open Web Platform - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
1
2.6k
LinkedIn
matleenalaakso
0
3.4k
Medicare 101 for 2025
robinlee
PRO
0
330
TP5_-_UV.pdf
bernhardsvt
0
120
Mathematics used in cryptography around us
herumi
2
400
Image compression
hachama
0
240
AWS All Certが伝える 新AWS認定試験取得のコツ (Machine Learning Engineer - Associate)
nnydtmg
1
720
Kaggle 班ができるまで
abap34
1
220
子どものためのプログラミング道場『CoderDojo』〜法人提携例〜 / Partnership with CoderDojo Japan
coderdojojapan
4
15k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Adopting Sorbet at Scale
ufuk
73
9.1k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
1
110
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Six Lessons from altMBA
skipperchong
27
3.5k
Music & Morning Musume
bryan
46
6.2k
Transcript
Lecture 04 2017 SW교육 학생동아리 학습 목표 1. 데이터베이스 이해하기
2. Node JS와 MySQL 연동하기
프로 생각해보기 SNS나 게임과 같은 온라인 서비스에 존재하는 방대한 데이터
해당 서비스들의 서버에서는 이렇게 많은 데이터를 어떻게 처리하고 있을까?
프로 데이터베이스 이해하기 정답은 바로! 데이터베이스(DB, DataBase) 오늘날은 많은 서버들이
DB를 활용하여 데이터를 관리하고 있어 DB없는 서버를 찾아보기는 힘들다.
프로 데이터베이스 이해하기 이러한 DATABASE에 데이터를 저장하거나 읽을 수 있게
해주는 프로그램을 데이터베이스 관리시스템 (DBMS, Database Management System) 이라 부른다. 오늘 배울 MySQL이, DBMS의 일종으로 MySQL을 통해 DB를 관리할 수 있게 된다.
프로 데이터베이스의 구조 데이터베이스는 테이블이라고 불리는 데이터 표를 포함하고 있다.
우리가 흔히 데이터베이스를 생각했을 때 떠올리는 표의 형태가 바로 테이블이다. 데이터베이스 = 테이블의 집합 테이블 = 데이터의 집합
프로 데이터베이스의 원리 DB에 데이터를 삽입하거나 수정하는 등의 기능을 수행하려면
SQL이라는 명령문을 활용해야한다. 회원가입 SQL 사용하여 데이터 넘김 저장 응답 응답 [클라이언트와 서버, 서버와 데이터간의 관계]
프로 MySQL? MySQL은 다양한 앱과 서비스에서 쓰이고 있는 DBMS 무료라는
장점때문에, 많은 서비스에서 사랑받고 있는 MySQL 설치방법이나 사용법이 쉽기때문에, 학생이나 초보개발자들도 쉽게 사용가능.
프로 MySQL 설치하기 -> Y! 설치가 완료되었다면, mysql 접속하기 접속
완료!
프로 root 계정 패스워드 변경하기 1. 계정정보가 담겨있는 mysql 데이터베이스에
접속 2. 계정정보가 어떻게 구성되어 있는지 확인해보기 > select user, host, password from user;
프로 root 계정 패스워드 변경하기 3. root 계정 패스워드 변경하기
> UPDATE user SET password=PASSWORD('변경할 패스워드') where user='root'; 4. 최종 저장하기 5. 변경 확인하기 패스워드가 암호화되어있어 내용을 확인할 수 없지만, 문자열이 바뀐것으로 보아 변경됬음을 확인할 수 있다.
프로 외부접속 허용하기 > quit 커맨드로 연결된 DB 빠져나오기 >
cd /etc/mysql/mariadb.conf.d/ 커맨드로 경로이동 > ls 설정 정보와 관련된 다양한 파일들이 있다. -> 50-server.cnf 파일 열기
프로 외부접속 허용하기 bind-address = 127.0.0.1 라인이 외부접속을 막고 있는
문구
프로 외부접속 허용하기 bind-address = 127.0.0.1 앞에 커서를 둔뒤 [i]
-> [#] -> [esc] -> [:w] -> [enter] -> [:q] -> [enter] MySQL 서비스를 재시작하여 외부접속 허용 설정 변경 완료!
프로 데이터베이스 살펴보기 $ sudo mysql –uroot 커맨드를 활용하여 계정
접속 > show databases; 커맨드를 활용하여 기본 데이터베이스 확인
프로 데이터베이스 생성하기 > create database test; 커맨드로 test라는 이름의
DB생성 > show databases; 커맨드로 생성된 DB 확인
프로 테이블 생성하기 테이블은 어떠한 기준에 따라 데이터를 묶어놓은 표를
말한다. 위 표에서는 No, USER, 전화번호 가 그 기준들이 되겠다. 데이터베이스에서는 이 기준을 ‘필드’ 라고 부른다. 데이터가 관리되는 실질적인 공간을 테이블이라 했다. DB를 생성했다면 테이블을 생성해보자! 기준
프로 테이블 생성하기 [생성할 테이블의 구조] [테이블 생성 명령어]
pi@raspberrypi:~ $ cd Desktop/ Node JS와 연동하기 $ npm install
mysql 커맨드로 mysql 모듈 설치하기 지난 번에 만들었던 POST 통신 기반의 라우터 를 DB와 연동하여 업그레이드 하는 것이 이번 시간의 목표 ★ MySQL 모듈 설치하기
pi@raspberrypi:~ $ cd Desktop/ Node JS와 연동하기
pi@raspberrypi:~ $ cd Desktop/ 소스코드 살펴보기 host 에는 자기 팀의
[서버 로컬 IP] 주소 입력 팀 A 192.168.35.133 팀 B 192.168.35.123 password 에는 아까 설정한 비밀번호 입력
pi@raspberrypi:~ $ cd Desktop/ 소스코드 살펴보기 SQL 명령문을 활용하여 입력받은
ID 및 PW를 데이터베이스에 저장
프로 테스트하기 업그레이드된 user 라우터는 POST 통신기반이므로 [포스트 맨] 프로그램을
활용하여 테스트 화면과 같이 id, pw 값을 넣은뒤, 우측 상단 [Send] 클릭
프로 테스트하기 putty로 돌아가 mysql 커맨드 창에서 > select *
from user; 커맨드 입력 -> 화면과 같이 전송한 ID, PW가 조회된다면 성공ㅋ!
프로 마치면서… 라즈베리파이에 MySQL DB를 설치하여 Node JS서버와 연동해 보았다.
Node js의 mysql 모듈과 SQL 명령어를 활용하면 연동이 쉬웠다. 회원가입 SQL 사용하여 데이터 넘김 저장 응답 응답 [클라이언트와 서버, 서버와 데이터간의 관계]
프로 참고 강의 & 심화 강의 http://blog.naver.com/wlsdml1103/ 221159758141 http://blog.naver.com/wlsdml1103/221159964626 http://blog.naver.com/wlsdml1103/221160038986
http://blog.naver.com/wlsdml1103/221160122735 MySQL 관련 강좌 - 3건 http://blog.naver.com/wlsdml1103/221160152394
감사합니다. 2017 SW교육 학생동아리