오늘 한일
- Node.js 심화 과제를 배포하였습니다. 기존에 사용하던 mongoDB로 배포를 하지 않고, MySQL을이용해 배포하다보니 설정방법에서 많은 차이가 있었습니다. DB에서 사용하는 캐릭터셋을 한글 사용이 불가능한 latin1 에서 UTF8로 변경하고, 유저를 생성하며 기존에 사용하던 Sequelize와 맞추는 작업과 파일을 수정해 MySQL을 동기화 시키는 작업이 있었습니다. 어렵지는 않지만 설정이라는 것 자체가 주는 햇갈림은 아직까지도 적응되지 않습니다.
- 심화주차 마지막날 조에서 작게나마 주제를 정해 20분가량의 발표를 진행하였습니다. 저는 테스트 코드라는 주제로 진행 하였는데, Supertest, jest와같은 테스트코드 작성 라이브러리 사용법과 테스트코드를 작성하는 이유, 제가 겪었던 테스트코드가 필요했던 순간에 대해 발표하였습니다.
오늘 배운 것
- Node.js 심화 과제 배포
- Node.js 미니 발표
- Supertest, Jest 라이브러리 사용법
내일 할 것
- Node.js 미니프로젝트 진행
필기노트
- 보안을 위해 3306 포트번호를 AWS 보안그룹에서 열어주지 않음.
$ npm i sequelize mysql2 sequelize-cli express mysql socket.io joi nunjucks jsonwebtoken chokidar
$ npm install -g pm2
- AWS가 종료되더라도 Node.js 서버가 실행되기 위해 pm2를 설치
$ sudo apt-get update
$ sudo apt-get install mysql-server
$ sudo mysql
mysql> use mysql;
- mysql Database에 접속한다.
mysql> select user, host, authentication_string from user;
- DB의 존재하는 User의 목록을 출력시켜준다.
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '1234';
- root@localhost 아이디의 비밀번호를 1234로 지정한다.
mysql> exit
- 접속중인 sudo 아이디에서 로그아웃한다.
$ sudo mysql -u root -p
$ 1234
- 정상 동작하는 mysql을 확인
mysql> exit
$ npx sequelize db:create
- Sequelize의 설정 파일을 기준으로 DB를 생성
$ npx sequelize db:migrate
- Sequelize의 설정 파일을 기준으로 Table을 생성
$ node app.js
- 정상 작동하는 서버를 확인할 수 있음
-- DB의 한글 깨짐 수정
$ whereis mysql;
- mysql을 실행하는 파일이 어디에 위치해있는지 확인
$ sudo vi /etc/mysql/my.cnf
- mysql 설정 파일인 my.cnf 파일에서 utf8 형식으로 캐릭터 셋을 변경한다.
맨밑줄에 삽입후 저장 (:wq)
[mysql]
default-character-set = utf8
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
init_connect=’SET NAMES utf8’
$ sudo service mysql restart;
- my.cnf파일을 수정후 mysql을 재시작한다.
$ mysql -u root -p
$ 1234
$status
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
- Server, Db가 utf-8로 설정되어 있는 것을 확인할 수 있음
mysql> SHOW CREATE TABLE Users;
- ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
- 캐릭터 셋이 latin1로 설정된 것을 확인할 수 있다.
mysql> ALTER TABLE Users CONVERT TO CHARACTER SET UTF8;
mysql> ALTER TABLE Posts CONVERT TO CHARACTER SET UTF8;
mysql> ALTER TABLE Comments CONVERT TO CHARACTER SET UTF8;
- 모든 테이블의 캐릭터 셋을 UTF8로 변경한다.
mysql> SHOW CREATE TABLE Users;
- 정상적으로 UTF8로 변경된 캐릭터 셋을 확인할 수 있다.
mysql> exit
$ node app.js
- 정상적으로 한글이 입력되는것을 확인 할 수 있다.
$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
- 80번 포트로 들어오는 클라이언트를 3000번 포트로 보냄
$ sudo pm2 start app.js
- pm2로 AWS의 콘솔창을 종료하더라도 실행되고있도록 설정한다.
$ pm2 delete 0
- pm2로 동작중인 첫번째 서버를 종료한다.
'항해99 > TIL' 카테고리의 다른 글
2021-07-10 항해99 TIL (0) | 2021.07.11 |
---|---|
2021-07-09 항해99 TIL (0) | 2021.07.10 |
2021-07-07 항해99 TIL (0) | 2021.07.08 |
2021-07-06 항해99 TIL (0) | 2021.07.07 |
2021-07-05 항해99 TIL (0) | 2021.07.06 |