전체 글 221

TIL 220914

이번 주 토요일 중간발표 때 발표를 맡게 되었다. 5분 동안 MVP시연과, 서비스 아키텍처 설명, 기술적 의사결정, 추후 개발 계획에 대해서 pr 하는 건데 지난 기수 피드백을 보니 질문 난이도가 상당했다... 서비스에 대해서 냉철하게 말씀도 해주시고, 준비를 좀 해야 할 것 같다. 오전에는 서비스 아키텍처 초안을 짜집기로 만들어 보았고, 발표 때 무슨 얘기를 해야 할지 정리를 간단하게 했다. 오전에 준비한 걸 바탕으로 저녁엔 팀원들에게 보여주면서 피드백을 좀 받고 부족한 부분을 수정받았다. PPT로 서비스 아키텍처 부분을 만들었고, 발표자료는 내일 자정까지니까 내일 오전에 간단하게 만들 생각이다. 어느 정도 어떤 걸 어필할지 정해놨기 때문에 그걸 바탕으로 만들면 오래 걸리진 않을 것 같다. 오후엔 코드..

일지/TIL 2022.09.15

TIL 220913

오늘은 중간발표와 관련한 발제를 들었다. 실전 프로젝트가 시작하고 벌써 3주 차라니.. 시간 참 빠르다. 전에는 그렇게 안 갔는데.. 막상 실전 마무리가 다가오니까 갑자기 조급하게 쪼여드는건 시간인지 내 마음인지.. 그래도 우리 조는 잘 진행하고 있다고 생각했는데 오늘 발제를 듣고, 전 기수들의 중간 피드백 자료들을 보니 정말 다양한 질문과 피드백이 오고 갔다. 그걸 보고 우리 프로젝트를 보니 왜 이렇게 불안할까.. 갑자기 나 잘하고 있는 걸까?라는 의구심이 계속 커지고 있다. 프로젝트 주제도 뭔가 아쉬워 보이고, 스코프도 아쉬워 보이고, 기술 스택도 별거 없어 보이고 갑자기 부정적인 것들만 보인달까? 시험도 아니고 점수를 매기는 것도 아닌데 왜 자꾸 틀린 것 같다는 생각이 드는지 모르겠다. 겁을 먹은 ..

일지/TIL 2022.09.14

node-schedule

node-schedule 시간을 설정하여 해당 코드를 시간에 맞춰 자동으로 작동하게 도와주는 모듈이다. 설치 npm i node-schedule 사용 방법 let now2 = new Date(); const compeltionTime = now2.setHours(now2.getHours() + 1); schedule.scheduleJob(compeltionTime, async () => { console.log('hi'); } 시간을 설정해주고, scheduleJob함수의 첫 번째 인자 값으로 시간을 넣고, 두 번째 인자 값으론 실행할 함수를 넣어주면 해당 시간이 되었을 때 함수를 실행시켜준다. 위의 코드는 현재 시간으로부터 1시간 더해준 시간을 설정해 주었고, 1시간 뒤에 콘솔 로그에 hi를 찍는 스케..

coding/Node.js 2022.09.14

TIL 220912

오늘은 추석 연휴의 마지막 날이지만, 나에게는 그런 것은 없다. 그냥 다시 코딩하는 월요일뿐인 날이다. 이게 비관적인 것은 아니고 그냥 똑같은 새로운 한 주가 시작한 느낌이었다. 조금 다르게 느껴진 건, 어제 처음으로 항해를 하면서 컴퓨터를 켜지 않은 날이어서 싱숭생숭한 기분이었달까? 그래서 WIL도 오늘 오전에 작성했었다. 다시 프로젝트에 집중해야지! 오전엔 팀원들이 모두 모이면 가볍게 이번 주 목표나 진행상황을 공유하고 시작하려고 했는데 몇몇 분들이 아직 본가에서 올라오시지 않으셔서 개인 작업을 했다. 채팅방에서 참가자인들의 정보를 보내주고, 추천을 받으면 포인트를 올려주는 로직을 맡아서 주말 동안 구현했고, 미비한 점들을 체크했고, 다른 팀원이 만든 채팅방 검색 기능 쪽도 같이 코드 리뷰 하면서 수..

일지/TIL 2022.09.13

error - entirely different commit histories

프로젝트 중 팀원 한분이 개인 s3 시크릿키를 메인 브랜치에 커밋하는 불상사가 일어났다. 다행히 커밋 기록만 지우는 방법을 찾아내서 적용해서 해당 파일과 커밋 기록을 지울 수 있었다. git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 'file_path/file_name'" --prune-empty --tag-name-filter cat -- --all 위 코드를 작성해서 기록을 지웠고, 자세한 내용은 이전 게시물에서 볼 수 있다. 이렇게 모든 문제가 다 해결된 줄 알았는데 새로운 문제가 있었다. 아마 revert를 하면서 생긴 건지, 커밋 기록을 지우면서 생겼는지 정확히는 모르지만 나를 포함한 다른 팀원의 브랜치와 메인..

coding/Error 2022.09.12

github 커밋 히스토리 삭제

프로젝트 중 팀원 한분이 개인 s3 시크릿 키를 메인 브랜치에 커밋해버린 문제가 생겼다. 파일을 지우더라도 커밋 기록에 시크릿 키가 남게 되면 해커들의 공격으로 해킹될 문제가 있을 수 있다고 들었다. 커밋 기록을 지워버려야 하기 때문에 revert를 이용해서 커밋을 되돌아갔다가 수정해서 다시 커밋해서 올렸는데 파일은 없어졌지만, 커밋 기록은 계속 남아 있었다.(아마 제대로 안 된 거겠지? 모르겠다.) 해결이 안 돼서 레포를 다시 파야하나, s3를 다시 생성해야 하나 등 여러 방법을 생각했지만, 모두 최후의 수단이었고, 커밋 기록만 지우는 방법을 찾기로 했다. 같이 블로그를 뒤져가면서 기록 삭제하는 법을 찾아서 적용해서 해당 커밋 내의 내용을 지울 수 있었다. 해결 방법으로는 아래와 같이 코드로 어떤 파일..

coding/IT, CS 2022.09.12

WIL 220911

이번 WIL은 하루가 지나서 쓰게 됐다.. 추석도 껴있었고, 팀원분들도 본가에 내려가셔서 토요일 멘토링 이후 간단하게 무엇을 할지 정도만 정한 뒤 서로 맞춰 볼 수 없다 보니 나도 이번 기회에 조금 쉬어야겠다 생각했다. 그래서 항해 이후 처음으로 일요일에 컴퓨터를 켜지 않아서 하루 늦게 작성하고 있다. 우리 조는 다행히 초반 기회부터 기능 구현까지 큰 문제없이 나름 잘 진행되고 있어서 기술적으로 막히거나 팀의 불화 같은 건 없었다. 이번 주엔 실시간 채팅과 여러 기능들을 붙였는데 채팅도 주말을 껴서 각자 준비하고, 월요일에 맞춰보니 하루 만에 기능이 붙어서 다행이었다. 어떻게 해야 할지 머릿속으로 생각해보고 노트에 혼자 적어보고, 그걸 프론트와, 다른 백앤드 분들과 공유해서 이렇게 구현해서 만나자라고 먼..

일지/WIL 2022.09.12

TIL 220910

오늘은 실전 프로젝트의 2차 멘토링 시간이 있었다. 이번 주 우리 조가 한 일들은 실시간 채팅과 백앤드 s3 파일 업로드, 노드 스케줄로 마감 데이터 값 바꾸기 프론트와 서버 배포 후 연결 등 나름 많은 일들을 진행했다. 매니저님의 조언으로 해결한 부분도 있었고, 우리끼리 자체적으로 소통하면서 해결한 부분도 많았다. 그리고 현재까지의 진행상황을 보고 다음엔 어떤 것들을 하면 좋을지에 대한 피드백도 받았고, 다음 주 주 업무는 FCM을 이용해서 푸시 알림을 앱으로 보내면 정말 우리가 목표한 것들을 이룰 수 있을 것 같다. 그 외 작은 기능들과 로고 디자인이 돼서 이쁘게 만든다면 더 퀄리티 좋은 프로젝트가 될 것 같다. 오늘은 추석이라 팀원들 중 몇 분은 본가로 내려가셨고, 게더에도 사람들이 많이 비어있었다..

일지/TIL 2022.09.11

multer, S3 - this.client.send is not a function

multer와 S3를 이용해서 이미지 파일을 S3에 업로드하는 기능을 구현하면서 발생한 오류가 있다. s3에 시크릿 키를 넣어 연결을 해주고, multer미들웨어를 만들어 파일을 받으면 바로 s3에 업로드 후 생성된 URL을 req로 받아서 DB에 저장하려고 했다. 모든 준비를 마친 후 postman을 이용해서 파일을 포함한 요청을 보내니 아래와 같은 오류를 만났다. 처음 사용해보는 기능이라서 아 시작부터 안되네.. 생각하고 구글링을 했다. 원인을 보니 다행히 큰 오류는 아니고 multer-s3와 aws-sdk 모듈의 호환성이 맞지 않아서 생기는 오류라고 한다. package.json 파일을 살펴보니 multer-s3는 3.xx버전이고, aws-sdk는 2.xx버전이었다. multer-s3를 다운그레이드..

coding/Error 2022.09.11

TIL 220909 - multer 파일 업로드 성공

실전 프로젝트를 시작한 지 2주가 지났고, 3주 차에 들어섰다. 이번 주 주말에 피드백을 받고 나면 아마 다음 주 중으로 mvp 기능들이 모두 구현돼서 유저들에게 배포 준비를 해야 한다고 한다. 다행히 우리는 주요 기능들은 모두 구현이 되었고, 지금 프론트에서 css 기본 작업도 거의 완성해서 https로 배포해서 서버와 프론트가 만났다. 아직 프론트 배포 상태는 완벽하지는 않지만, 그래도 로그인과 투표 실시간 채팅 기능은 동작한다. pwa를 적용해서 핸드폰으로 보면 홈 화면에 어플로 추가할 수도 있고, css도 핸드폰에서 볼 수 있게 작업해서 깨지는 부분 없이 잘 보인다. 정말 이렇게 보니까 하나의 서비스를 만들어서 배포한 기분이 든다. 너무 잘 만들어줘서 팀원들에게 고맙다. 나도 백앤드에서 많은 기능..

일지/TIL 2022.09.10