2022. 01. 06일 일기

병아리의최후·2023년 1월 6일
0

일기

목록 보기
38/60

오늘 팀 프로젝트가 끝났다.

이번 프로젝트는 개인적으로 만족했던게 사정상 백앤드쪽 기능 구현할 사람이 많지않아 내가 많이 맡아서 했다.

처음에는 너무 막막하고 힘들었는데 계속 하다보니 자신감도 어느정도 생기고 결국은 대부분의 기능을 잘 구현했다!!

깃허브 주소

정신적으로 조금 지쳤지만 실력이 많이 늘은것 같아서 많이 뿌듯하다 ㅎㅎ

오늘은 프로젝트를 진행하면서 막혔는데 해결했던 부분들에 대해 써보겠다.

  1. 트랜잭션(transaction)의 사용

이번 프로젝트에서는 한쪽의 돈이 빠져나가면 한쪽은 돈이 올라가는 기능을 구현해야 했다.

그래서 어떻게 구현하는게 좋을지에 대해 고민을 하다가 transaction이라는걸 찾았다.

간단하게 설명하면 transaction안의 여러 문법은 동시에 처리된다고 한다.

transaction()을 변수(t)에 할당을 해 주고 transaction이 들어있는 문법은 전부 동시에 처리되는 개념이다. 만약 모두 잘 작동했으면 커밋을 해서 완료를 하고,

하나라도 문제가 있으면 롤백을 시켜서 처음부터 없던일로 만든다.

처음에 공식문서를 봤었던 것 같은데 transaction : t 쪽에 중괄호가 써져 있었다. 그대로 하니 전혀 작동하지 않아 중괄호를 뺐다. 그런데도 작동이 안된다?

진짜 기본적인 문제 였는데 모델에서 sequelize를 가져오는데 중괄호가 없었다…

중괄호를 씌어주니 잘 작동했다!

  1. 중복 로그인 문제

처음에 고객과 업체를 어떻게 구별할까? 굉장히 고민을 많이 했었다.

그래서 처음 생각해 낸 방법이 유저 테이블과 업체 테이블에 각각 BOOLEAN 형식으로

true와 false를 디폴트 값으로 넣어줘 구별하는 방법이었다.

일단 구별은 잘 됐다. 예외처리 할때도 잘 될 것만 같았다.

하지만 큰 문제에 직면했는데

미들웨어에서 로그인한 사용자의 정보를 넘겨주는 try구문을 2개 써줘야 하는 문제

저렇게 붙여서 쓰면 위에있는 것만 정보를 가져왔다.

그래서 차라리 미들웨어를 2개 나누는게 편할 것 같아서 그렇게 했다.

끝난 줄 알았는데 또 문제가 발생했다. 로그인이 중복으로 된다는 문제.

만약 내가 고객의 아이디로 접속을 하면, 그 접속한 아이디와 동일한 id의 업체 아이디도

로그인이 되고 있었다.

뭐가 문제고 어떻게 해결할까 고민을 하다가

시크릿키를 하나 더 만들어 각각 다르게 줘보기로 했다.

그랬더니 문제가 해결됐다!!! 하지만 정확히 알고 쓴건 아니고 대충 유추해서 했던 거라 추가 복습이 필요해 보인다.

0개의 댓글

관련 채용 정보