TIL_2020.06.29(월)~2020.07.03(금) - [Project]sprint1

nRecode·2020년 7월 4일
0

TodayILearned

목록 보기
65/95

2020.06.29(월)

프로젝트 진행

  • 배정받은 팀은 weatherdream이라는 프로젝트로
    날씨 API와 지도 API를 활용하여 지역에 따른 날씨를 보여준다.

  • 내가 맡게 된 포지션은 Back-end이고,
    오늘 프로젝트는 세부적인 계획을 세우는 식으로만 진행되었다.


2020.06.30(화)

github 태스크 카드 만들기

  • github의 issue에 내가 진행하기로 한 task를 올렸다.

git flow 공부

프로젝트를 진행하면서 github를 사용하게 될텐데, 전체적인 git의 flow를 정하였다.

  1. 배포할 하나의 레포지토리를 팀원들이 각자 포크한다(master, dev 브랜치 존재).
  2. 포크한 레포지토리를 내 로컬에 clone한다.
  3. git-hub에 생성해 둔 이슈를 github의 project의 in progress 컬럼에 옮긴다.
  4. 내 로컬에 있는 레포지토리의 dev 브랜치에서 또 다른 브랜치를 생성하여 이슈에 대한 내용을 코딩한다.
  5. 포크한 레포지토리에 그 브랜치의 이름으로 push한다.
git push origin [branchname]
  1. dev 브랜치로 작성한 issue를 link하여 PR한다.
  2. upstream에서 merge를 하면 내가 작업하고 있는 로컬 레포지토리에서 pull한다. (upstream에서 merge가 되면 in progress에 있던 태스크 카드는 done으로 자동으로 옮겨간다.)
git pull upstream dev
  1. 포크한 레포에도 똑같이 맞춰준다.
git push origin dev
  1. 위 작업을 반복하고, upstream에서 merge전 이미 내 로컬에서 작업중이던 브랜치가 있을 경우, 작업중이던 branch에서 checkout한다.(merge전 작업 중이던 다른 브랜치에서 pr했을때 충돌을 방지하기 위해서?)
git checkout dev .

2020.07.01(수)

기본적인 server setting

  • 프로젝트를 진행하면서 사용하게 될 기본적인 서버 세팅을 진행하였다.
  • MVC모델을 바탕으로 하였다.

schema 작성

  • dbdiagram에 설계한 스키마를 기준으로 schema.sql파일을 작성하였다.
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)
);

2020.07.02(목)

sequelize

sequelize라이브러리를 프로젝트에 활용하기 위해서 기존에 작성한 schema.sql을 바탕으로 진행하였다. 기존에는 설정한 sequelize를 바탕으로 코드를 작성해서 몰랐는데 기초를 세팅하고 이해하는게 생각보다 오래 걸렸다...완성은 못했다.

db 테스트

생성한 sequelize를 바탕으로 db가 잘 생성됐는지 test를 진행하였다.

그 외

  • mysql 비밀번호를 그대로 pr날려버리는 실수를... 저질렀다 ㅜㅜ 다음부턴 그러지 말아야지 ㅜㅜㅜㅜ 아아아아ㅏ아아
  • npm 설치할때 --save를 넣어줘야지 안그러면 다른 협업하는 사람이 사용할 수 없다... package.json이 존재하는 이유는 그것인데, 잘 인지하지 못하고 있었다. 다행히 같이 back-end하시는 분이 잘 설명해 주셔서 이해할 수 있었다.
  • commit 규칙이라던가 template 적용 시켰다.

2020.07.03(금)

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를 확실히 이해할 수 있도록 공부해야 할 것 같다.

profile
안정성, 확장성 있는 서버를 구축하고 가꾸는 개발자를 목표로 공부하고 있습니다. 🤔🤔🤔🤔 부족하기에 맞지 않는 내용이 있을 수 있습니다. 가감없이 피드백 해주시면 정말 감사하겠습니다..🙏

0개의 댓글