프로젝트 진행
배정받은 팀은 weatherdream이라는 프로젝트로
날씨 API와 지도 API를 활용하여 지역에 따른 날씨를 보여준다.
내가 맡게 된 포지션은 Back-end이고,
오늘 프로젝트는 세부적인 계획을 세우는 식으로만 진행되었다.
github 태스크 카드 만들기
git flow 공부
프로젝트를 진행하면서 github를 사용하게 될텐데, 전체적인 git의 flow를 정하였다.
git push origin [branchname]
git pull upstream dev
git push origin dev
git checkout dev .
기본적인 server setting
schema 작성
DROP DATABASE IF EXISTS weatherdream;
CREATE DATABASE weatherdream;
USE weatherdream;
CREATE TABLE users(
id int NOT NULL AUTO_INCREMENT,
full_name varchar(10) NOT NULL,
email varchar(50) NOT NULL,
password varchar(50) NOT NULL,
created_at TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE chatRoom(
message_id int NOT NULL AUTO_INCREMENT,
context varchar(255) NOT NULL,
country varchar(10) NOT NULL,
chat_like int,
chat_unlike int,
user_id int ,
mypage boolean,
weather varchar(50),
created_at TIMESTAMP,
PRIMARY KEY (message_id),
FOREIGN KEY (user_id) REFERENCES users(id)
);
sequelize
sequelize라이브러리를 프로젝트에 활용하기 위해서 기존에 작성한 schema.sql을 바탕으로 진행하였다. 기존에는 설정한 sequelize를 바탕으로 코드를 작성해서 몰랐는데 기초를 세팅하고 이해하는게 생각보다 오래 걸렸다...완성은 못했다.
db 테스트
생성한 sequelize를 바탕으로 db가 잘 생성됐는지 test를 진행하였다.
그 외
sequelize
npm install --save-dev sequelize-cli
npx sequelize-cli init
위의 명령어를 통해 기초적인 세팅을 마치고 실행하였다.
그리고 models에 있는 파일은 cli로 생성하는 것이 아닌 따로 파일을 생성하여 만들어줬는데 마이그레이션을 적용시키는 방법을 잘 몰라 이것 저것 공부를 많이 했지만 아직도 sequelize와 sequlize-cli의 차이점을 모르겠다... 주말동안 sequelize를 더 공부해야 할 것 같다.
signup
controllers 폴더에 signup 파일을 추가하였다. 회원가입을 할 때 필요하 기능이다.
post: (req, res) => {
const { email, password, username } = req.body;
console.log(email);
users
.findOrCreate({
where: {
email: email,
},
defaults: {
username: username,
password: password,
},
})
.then(async ([user, created]) => {
if (!created) {
return res.status(409).json({ message: 'email exist' });
}
const data = await user.get({ plain: true });
console.log(data);
res.status(200).json({ message: 'successful' });
});
},
열심히 한 것 같으면서도, 뭔가 확실히 알게 된 부분이 없는 것 같아 아쉽다. 확실히 스프린트만 진행하면서 코딩을 했던 것 보다 협업을 하는 것이 신경써야 할 부분도 많고 느낌이 많이 달랐다. 개발자는 대화해야 하는 직업라는데 확실히 어떤 부분에서 그런지 알게 되었다. git을 통해 협업을 진행하는 것이 나중에 취업을 했을 때 업무를 진행하게 될텐데, 그런 부분에서 많은 도움이 될 것 같다는 생각을 하였다. 다음주는 채팅 부분을 구현하고 암호화를 진행해야 할텐데 이번 주말을 통해 사용하게 될 socke io 통신을 공부하고 sequelize를 확실히 이해할 수 있도록 공부해야 할 것 같다.