목록개발자 학습노트/* 학습일기* (42)
개발자의 logs
실전 팀작업을 하던 중 multer를 이용해서 s3에 사진을 업로드해야했다. 프론트에게 물어보니, 파이어베이스로 프론트 쪽에서 하던 것을 백엔드가 이미지를 알아서 처리해주니 한결 편하다고 한다. 각설하고 소스코드를 우선 공개한다. 블로그나 구글링을 하다보면 코드를 중간중간 . . . 처리를 한다거나 삭제 및 숨김을 해서 붙여넣기하면 온전히 코드가 돌아가기 힘든데, 난 그런 부분들이 오히려 다른사람들의 개발에 어려움을 주는 것 같아 때문에 파일 전체를 올린다. 아래는 게시물 관련 api routes 파일이다. 즉, posts.js const dotenv = require('dotenv').config(); const express = require('express'); const router = expre..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bjJQPC/btrG8JiaGOl/yvxtFCEnazNI7LFzAUKeK0/img.png)
얼마전부터 면접 스터디그룹을 만들어서 cs 공부를 하고있다 참가인원은 5명!! (나포함) 발표순서를 정하고 면접처럼 발표를 하는데, 매번 사다리타기를 했고 어느날부턴 하기 귀찮았다. 그래서 프로그램을 만들었다. (이유단순) 알고리즘을 설명하자면 0,5사이에서 랜덤으로 5명을 뽑고, 혹시라도 중복되면 리스트에 넣지않는다. 그리고 마지막으로 cs 발표를 하는사람에게 면접 질문을 할 사람을 지정해줘야 하는데, 그사람은 내 다음 발표자다. 그래서 인덱스로 다음 발표자를 면접관으로 지정하는 알고리즘을 추가해줬다. 생각보다 간단하다 알다싶이 난 그렇게 알고리즘 고수는 아니다!!!하하.. 이 블로그 글을 봐주는 사람들의 유익함을 위해 소스코드를 공개한다! member = ['김하연', '하율찬', '정오현', '이형..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bRdku7/btrG8RtAXy1/A6PKonLuN1V7bb0NSTgkLk/img.png)
항해 마지막 파이널 실전 3주차! 기획도 어느정도 나오고, api들도 80% 정도는 완성되었다 생각하여 swagger 작업에 돌입했다. 전에 클론 프로젝트때 만들어봤어서 그런지 , 만드는데 노가다적인 부분(?) 빼고는 금새 만들었다. 한 2-3시간에 다 만든듯!!! 스웨거는 포스트맨(api test로 주로 쓰이는 프로그램) 대용으로 쓰이며, 특히 프론트엔드 분들이 개발하실때 유용하다고 한다. 어떤 코드를 삽입하지 않은 상태에서 api 자체로만으로 돌아가는지 테스트하기에 정말 적합하다. 내가 swagger를 만들때 참고한 사이트를 공유해본다 ! https://velog.io/@hyex/Node.js-TS-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-swagger-%..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bLgC3Q/btrGUrbfCa2/YuS43DpirNVY2j4khwKKSk/img.png)
9주차 WIL 실전 프로젝트가 시작되고 2주차가 지났다. 이번주에는 나는 주로 미들웨어 로직수정과, 엑세스토큰과 리프레시 토큰 미들웨어 수정, 서버배포 환경 구축에 힘을 쏟았다. 미들웨어는 소셜로그인 유저와 일반유저의 스키마를 통일하고, 그 안에서 같이 유저정보를 조회하게 함으로써 생각보다 간단하게 끝났다. 다만 docker와 nginx는 다소 어려웠다. docker,nginx 라는 것을 처음 배우기도 했고 완전 본격적인 서버배포환경 구축 같았다. 여러 시도를 했고, 블로그 글과 stackover 글들을 뒤져가며 도커는 완성! 했다 아래는 Dockerfile이다 FROM node:14 WORKDIR /app // 워크 디렉토리 만들기 COPY package*.json ./ RUN npm ci // 이 부..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/vg0XG/btrGnhHqUlM/Tj32gNTC8bAKgsxeQaDbQ1/img.png)
성공했다 passport에서 데이터를 꺼내오는 것을~~!!! 거의 3일간 밤낮없이 시도했는데, 드디어 오늘 새벽에 성공했다. 같이 작업하던 프론트 형과 소리지를뻔...ㅎㅎ 프론트의 도움없이는, 프론트와 협업없이는 불가능한 일이였다. 형섭이형 정말 고마워!!!! 자신감 붙었다. 그대로 KEEP GOING!
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/qH1fq/btrGksva1ze/6hDo1FoacxaRFNVst3yLCk/img.jpg)
마지막 실전 프로젝트의 서막이 올랐다. 아마 지금까지의 노력은 이번 프로젝트를 위한 노력이였을거다 이번에는 front 2 backend3 (나포함) 으로 팀이 배정되었다. 난 처음에 소개팅 웹서비스를 가져갔지만, 팀원들과 회의하고 논의한 결과, 협업툴 웹서비스로 변경되었다. 소개팅 웹서비스가 재밌을것 같아서 많이 아쉬웠지만, 팀원 모두가 흥미를 가지고 진행하는 프로젝트 주제가 맞다고 생각하기 때문에 그 점을 생각하면 마음이 편안하다. 실전 프로젝트에서는 지금까지는 나는 passport 개발을 맡았다. 프론트에서 인가코드를 넘기면 나는 카카오 or 구글 측과 통신해서 엑세스토큰을 발급 받고, 개인정보를 다시 서버에 요청하는 작업이였다. 이 부분에는 여러 변환된 로직과정이 존재하는데, 난 이 부분을 선택했다..