///////
Search

알고리즘,DB_이연재

1. 알고리즘(자릿수 더하기 문제)

1. 프로그래머스 자릿수 더하기 문제

코드

2. 코드업1278번

코드

3. 코드업1620번

코드

2. AWS EC2에 docker로 mysql 띄우기

1. region 선택하기(서울)

2. 결제 대시보드

결제 대시보드에서 금액을 확인할 수 있다.

3. EC2(Elastic Compute Cloud)띄우기

1) 인스턴스 시작

인스턴스 시작버튼 클릭

2) 인스턴스 설정

이름을 설정해준다.
<서버스펙>
t3.nano, t3.micro 는 너무 작아서 추천하지 않는다.
t3.small: 2core 2GB
docker와 mysql을 실행하면 35%의 메모리를 사용한다.
새 키페어 생성 클릭
스팟 인스턴스 요청을 체크해야 가격이 저렴해진다.
인스턴스 시작 클릭
인스턴스를 클릭하면 위와같이 인스턴스 요약을 확인할 수 있다.

3. git bash or xshell 접속

1. 관리자 권한으로 변경

sudo su -
Plain Text
복사

2. ssh 접속

ssh ubuntu@<퍼블릭 IPv4 DNS> -i ~/Downloads/<키페어 이름>
Plain Text
복사
퍼블릭 IPv4 DNS에 인스턴스 요약에 있는 퍼블릭 IPv4 DNS를 복사 붙여넣기한다.
키페어 이름에 아까 만들어서 다운로드한 키페어 이름을 넣는다.

3. oh my bash 설치하기(선택사항)

bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh
Plain Text
복사

4. git 디렉토리 만들기

mkdir git
Plain Text
복사

5. git clone

git clone https://github.com/Kyeongrok/docker_minikube_kubectl_install
Plain Text
복사

6. docker 설치

sh docker_install.sh
Plain Text
복사

7. nginx 실행

docker run -p 80:80 nginx
Plain Text
복사

8. 접속 확인

본인의 퍼블릭 IPv4 DNS로 접속했을 때 welcome to nginx가 뜨면 성공이다.

9. 접속 종료

ctrl + c를 누르면 종료한다.
- docker ps하면 떠있는 docker 컨테이너 목록을 볼 수 있다. - 데몬으로 띄우려면 docker run -p 80:80 -d nginx를 입력 해야 한다.

4. MySQL 띄우기

1. mysql 띄우기

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
Plain Text
복사
password를 password로 설정했다.

2. mysql workbench 설치 후 실행

3. mysql workbench에서 DB연결하기

1) MySQL Connections 설정하기
+버튼 클릭
Connection Name을 설정해준다.
Hostname에 퍼블릭 IPv4 DNS를 입력한다.
Store in Vault...버튼을 클릭한다.
패스워드는 아까 mysql 띄우기에서 설정했던 password를 입력한다.

4. 보안 그룹 설정하기

mysql workbench에서 연결해도 포트를 열지 않았기 때문에 연결이 되지 않는다.
mysql 포트: 3306, 웹서버 포트: 80, sprint boot 포트: 8080
따라서 aws에서 보안그룹을 설정 후 접속해야 한다.1) 보안 클릭
2) 보안 그룹 클릭
3) 인바운드 규칙 편집 클릭
4)규칙 추가클릭후 위 사진과 같이 수정 후 규칙 저장

3. MySQL 실습

1. DB와 파일의 차이점

2. DB를 쓰는 이유

1. 데이터의 중복 문제

길벗 출판사가 서울시 서초구에서 서울시 종로구로 이사 갔다면 모든 데이터를 바꿔야 한다.
따라서 다음과 같이 DB를 구성하면 중복문제를 해결할 수 있다.

2. ERD(Entity Relationship Diagram)

개체-관계 모델로 테이블간의 관계를 설명해주는 다이어그림이다.
위의 책과 출판사의 DB를 ERD로 표현하면 다음과 같다.
외래키(Foreign Key,FK): 한 테이블의 필드(attribute) 중 다른 테이블의 행(row)을 식별할 수 있는 키를 말한다.
기본키(Primary Key,PK): 한개의 record또는 row를 데이블 안에서 고유하게 식별할 수 있는 인식표, 중복될 수 없다.출판사 id = book 입장에선 외래키 / publisher 입장에선 기본키
ERD예시)

3. MySQL 실습

1. schema 생성

schemas에 우클릭 후 Create Schema...클릭
Name에 schema이름 입력 후 Apply클릭

2. Table 생성

만들어둔 DB에서 Table에 우클릭 후 Create Table...클릭
table 이름을 생성한 후 Column을 설정한다.
INT: 정수형, VARCHAR(45): 문자형, 45글자까지 입력할 수 있다.
PK: Primary Key(기본키), NN: Not Null(Null값이 들어갈 수 없음), AI(auto increment): 하나씩 늘어난다는것, 디폴트 값을 설정해 줘야 그 값부터 하나씩 증가한다.
생성 후 Select Rows를 클릭하면 선택한 테이블을 확인 할 수 있다.

3. 데이터 삽입

테이블 우클릭 후 Send to SQL Editor > Insert Statement 클릭
values에 데이터 넣고 상단의 번개 모양을 클릭하면 아래와 같이 데이터가 삽입된다.

4. Foreign Key 설정

Foreign Key는 함부로 설정하면 안된다. 주의해서 사용할 것
테이블 생성시 하단 Foreign Keys 선택
다음과 같이 설정한다.
Foreign Key를 설정하고 publisher_id에 없는 숫자를 입력하면 에러가 난다.
따라서 먼저 출판사를 등록해주어야 한다.
파일
DataBase
저장하는 기능
인덱싱, 검색기능, 구조를 잡아서 저장하는 기능, 데이터를 중간에 끼워 넣는 기능, 특정 부분만 업데이트 하는 기능, 특정 조건에 해당하는 데이터 고치는 기능이중화 하는 기능, 데이터를 넣기 전에 Check하는 기능
단점 : 쓰는법을 배워야 한다.