길고 길었던 프로젝트도 끝나고 이번 주 금요일이면 수료를 하게 된다. 이번 년도 목표였던 ‘기수이동 없이 수료하기’ 를 이뤄냈다. 이제 끝이라는 생각을 하니 뭔가 시원섭섭하고 후련한데 후련하지 않은 그런 느낌이다. 약간 수능 보고 난 후에 기분이랄까?🤔
프로젝트를 진행하면서 백앤드에 대한 공부가 정말 많이 되었다. 이해가 잘 안되었던 배포 파트도 백앤드를 같이 진행했던 팀장님 덕분이 많이 알게 된 것 같고, 코스를 진행하면서 공부했던 것 보다 프로젝트 과정에서 더 많이 배운 것 같다. 프로젝트를 진행하면서 만났던 오류들을 따로 저장해놓으니 같은 오류를 만났을 때 당황하지 않고 수월하게 진행할 수 있었다. 지금의 기억이 휘발되지 않게 블로그에 남겨놓으려고 한다. 이제 코드스테이츠를 수료하게 되니 매주 공부하면서 정리했던 카테고리는 없어지게 되겠지만, 취업 준비를 하면서 개념들을 정리해보아야겠다✊
[Winner's Record]
랜딩페이지
메인페이지
토너먼트 진행
채팅
마이페이지
프로젝트 진행 중 오류 해결
[AWS 연결 거부]
- 브라우저는 80 포트가 기본포트로 잡혀있기 때문에 포트번호를 입력하지 않으면 자동으로 80포트를 잡음
∴ Tomcat 포트를 80 포트로 변경하는 방법 or 80 포트로 접근하게 하고 CentOS 에서 80 포트 접속시 8080 포트로 리다이렉트 해주는 방법
- 추가 : [root@localhost~]# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
- 삭제 : [root@localhost~]# iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
- iptables 저장 : [root@localhost~]# service iptables save
- iptables 확인 : [root@localhost~]# iptables -t nat -L
- iptables 재시작 : [root@localhost~]# service iptables restart
DB에 저장되어 있는 테이블이 가져오지 않을 때 해결방법
ES6 문법으로 프로젝트를 진행 => sequelize는 ES6문법이 접근이 불가
- models 폴더에 package.json 추가
{
"type": "commonjs"
}
- config 파일을 만들어서 config.cjs 추가
const dotenv = require('dotenv');
dotenv.config();
const development = {
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: 'WR',
host: process.env.DATABASE_HOST,
dialect: 'mysql',
port: process.env.DATABASE_PORT,
};
const production = {
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: 'WR',
host: process.env.DATABASE_HOST,
dialect: 'mysql',
port: process.env.DATABASE_PORT,
};
const test = {
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: 'WR',
host: process.env.DATABASE_HOST,
dialect: 'mysql',
port: process.env.DATABASE_PORT,
};
module.exports = {development, production, test};
[https://github.com/gyoogle/nodeStudy/blob/master/MYSQL%20%EC%8B%9C%ED%80%84%EB%9D%BC%EC%9D%B4%EC%A6%88%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0.md]
sequelize babel / sequelizerc 에러 해결
바벨 사용을 위해 .sequelizerc 생성
$ npm i --save-dev babel-register
require("babel-register");
const path = require('path');
module.exports = {
'config': path.resolve('config', 'config.json'),
'models-path': path.resolve('models'),
'seeders-path': path.resolve('seeders'),
'migrations-path': path.resolve('migrations')
}
[https://pjt3591oo.github.io/sequelizejs_translate/build/html/OtherTopics/Migrations.html]
root의 plugin이 'mysql_native_password'로 설정이 안되어 있어서 db:migrate 진행시 root로 들어가도 진입 불가
mysql에 접속 후
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------------------+
| User | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
plugin이 auth_socket으로 되어 있는 부분을 변경
mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;
*sequelize 진행 시 오류 발생하는 경우*
npx sequelize db:seed:all --debug로 오류를 상세히 파악 가능
[https://bscnote.tistory.com/77]
mysql utf-8 (한글깨짐 문제)
사용할 테이블을 utf-8로 설정 후 생성
mysql> CREATE DATABASE [테이블명] DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
or mysql을 재설정 [https://soreal13.github.io/ubuntu-mysql-utf8/]
EC2 접근 오류
EC2 root로 로그인
[ec2-user@ip-172-31-7-114~]$ su -root //루트 사용자 권한을 가정
[ec2-user@ip-172-31-7-114~]$ passwd root //root 사용자의 암호를 생성
// 메시지가 표시되면 임시 루트 암호를 입력한 다음 다시 입력하여 확인
[ec2-user@ip-172-31-7-114~]$ passwd –d root //작업을 완료한 후 다음 명령을 실행하여 루트 암호를 삭제
*sudo su 명령어로 root 얻어오고 작업할 수도 있음*
고생 정말 많았으셨어요!! 수료 축하드립니다 선배님!!!!!! 😇