APP/하이브리드 앱

3. 앱에 필요한 DB설계

자코린이 2022. 2. 23. 23:23

내가 만들고자 하는 앱은 회원가입, 로그인, 글 작성, 댓글 관리, 글 읽기 등의 활동을 할 수 있는 앱입니다.

 

회원가입, 로그인을 위해 유저 테이블 생성

글 목록을 위해 글 목록 테이블 생성

댓글 관리를 위한 댓글 테이블 생성

 

여기서 설계가 들어갑니다.

글 목록을 만들기 전에 글 테이블 3개를 한번에 묶어 사용할지,테이블 3개로 나누어 사용할지 생각해보아야 합니다.

 

한번에 묶어 사용하면 sql을 날리기 편하고, 관리할 테이블의 수가 줄어듭니다.

하지만 sql의 속도가 늦어지고, 테이블 내부의 관리가 힘듭니다.

 

3개로 나누어 설계하면 속도가 빠르고, 테이블 내부 관리는 쉬워집니다.

하지만 sql을 날리기 어려워지고, 관리할 테이블의 수가 늘어납니다.

 

저는 처음에 앱을 들어왔을 경우, 글 목록이 빠르게 떠야하므로 3개로 테이블을 나누는 방법을 사용하겠습니다.

 

댓글 테이블도 3개로 나눌지, 한 테이블을 사용할 지 생각하고 테이블을 생성합니다.

저는 3개의 테이블로 나누어 사용하겠습니다.

 

만약 사용하는 os가 윈도우라면 heidi sql의 사용을 권합니다. 간편하게 테이블을 관리도록 도와줍니다.

클라이언트, 서버 상관없이 설치하고 사용합니다.

https://www.heidisql.com/

 

HeidiSQL - MariaDB, MySQL, MSSQL, PostgreSQL and SQLite made easy

What's this? HeidiSQL is free software, and has the aim to be easy to learn. "Heidi" lets you see and edit data and structures from computers running one of the database systems MariaDB, MySQL, Microsoft SQL, PostgreSQL and SQLite. Invented in 2002 by Ansg

www.heidisql.com

 

하지만 클라이언트 측에서 서버 DB로 연결하려고 하면 10060error가 나옵니다.

이는 DB가 가진 기본적인 방화벽입니다.(특정한 아이피 빼고 외부 아이피 차단)

해결을 위해 새로운 유저를 만들고,그 유저는 외부 아이피에서 접근할 수 있는 권한을 열어주어야 합니다.

 

일단 mysql(mariasql)기준 3306port를 서버측에서 열어줍니다. 모르시는 분은 아래 내용을 참조하세요

https://jacorinne.tistory.com/30

 

2. AWS EC2 윈도우 서버 설정

서버는 aws의 ec2를 사용하여 간단히 구성할 것입니다. 서버는 리눅스, 윈도우 서버가 대표적입니다. 리눅스는 서버 세팅이 복잡하지만, 서버를 운영하는데 필요한 여러 가지 요소들을 제공해줍

jacorinne.tistory.com

 

일단 유저를 만들기 위해 command prompt(cmd)를 엽니다. 

그리고 wamp 폴더 아래 mariadb/bin으로 위치를 바꿉니다.(기본 설정 값)

cd C:\Bitnami\wampstack-8.1.2-0\mariadb\bin

 

들어간 곳에서 아래 내용을 칩니다.

mysql -u root -p 

위 내용을 치면 비밀번호 입력이 나오는데 wamp를 설치할 때 적은 비밀번호를 입력합니다.

 

이제 mariadb에 들어 왔습니다. 그럼 새로운 유저를 만들어 봅시다.

일단 유저를 변경하려면 mysql database를 사용해야 합니다. 이를 위해 

use mysql;

 을 칩니다.

이는 mysql database를 사용하겠다는 의미입니다.

 

이제 외부에서 접근 가능한 user를 만들어 봅시다.

create user 'userid'@'%' identified by '비밀번호';

%는 외부어느 아이피에서도 연결가능하다는 의미입니다.

완료했다면 확인을 위해 

select user from user;

를 치면 내가 입력한 유저가 잘 만들어진것을 알 수 있습니다.

 

이제 root에서 DB를 만들고, 만든 DB에 새로 만든 유저가 사용할 수 있도록 권한을 주는 순서입니다.

create database 'DB이름';

여기에 권한을 줍니다.

GRANT ALL privileges ON 'DB이름'.* TO '유저이름'@'%' IDENTIFIED BY '비밀번호';

변경한 설정을 저장하기 위해 

flush privileges; 

를 칩니다.

잘 적용됬는지 확인을 위해 

SHOW GRANTS FOR 유저이름@'%';

으로 확인합니다.

이제 만들어진 새로운 유저로 로그인 하고 테이블을 생성하기 위해 root에서 나와 새로운 유저로 접속합니다.

exit

mysql -u 유저이름 -p

use 만든DB

heidisql로 접속하여도 됩니다.

 

 

'APP > 하이브리드 앱' 카테고리의 다른 글

4. DB만들기  (0) 2022.03.01
2. AWS EC2 윈도우 서버 설정  (0) 2022.02.18
1. 디자인 구성  (0) 2022.02.17