TIL 31일차 (20240206)

박세연·2024년 2월 6일

TIL

목록 보기
26/70


오늘 한 일

  • 어제 못한 swagger 완성하기
  • ubuntu 중 발생한 git pull 문제 해결하기

🥨 swagger 생성

app.js와 같은 경로에 swagger.js를 생성하고

yarn add swagger-ui-express swagger-jsdoc

import swaggerUi from 'swagger-ui-express';
import swaggerJsdoc from 'swagger-jsdoc';

export const options = {
    swaggerDefinition: {
        openapi: "3.0.0",
        info: {
            version: "1.0.0",
            title: 'spa-resume',
            description: "회원가입, 로그인을 사용하여 내 이력서 작성, 수정, 삭제하기",
        },
        servers: [{
            url: "http://localhost:3022", // 로컬 호스트 요청
            url: "~~~배포 URL" // 배포 요청
        }]
    },
    apis: [
        "./routes/*.js",
        "app.js" //swagger 파일 연동
    ]
}

const specs = swaggerJsdoc(options);

export {swaggerUi, specs};

을 작성해준다.

그리고 app.js에서

import {swaggerUi, specs} from './swagger.js';

app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(specs));

으로 swagger을 연결해준다.
다른 글들은 js 파일을 새로 만들어서 기존 api를 연결하는 듯 했지만 나는 해설 영상에서 api가 있는 js 파일에 @swagger 주석처리를 직접 작성하시는 것을 보고 '오 편한데?'라는 생각으로 그 파일에 직통으로 작성했다. 그리고 분량을 보고 후회했다고 한다...


이것은 회원가입 api swagger... 회원가입 api뿐만 아니라 로그인, 내 정보 조회, 이력서 작성, 이력서 수정, 모든 이력서 조회, 상세 이력서 조회, 이력서 삭제까지 하니까 5시간이 걸렸다 ㅎ. 코드 보니 대략 400줄을 작성했다고 ^ㅠ^... 아무리 노가다를 좋아해도 5시간을 하니 머리가 어지럽다.
와중에 swagger은 극강의 예민함을 갖고 계셔서 띄어쓰기 하나 잘못했다가는 에러가 났다. ':' 안 써서 난 에러도 있었지만 대부분 칼럼 수가 다른 것과 맞지 않으니 수정하라는 영어의 향연이었다. 프리티어가 몹시 그리웠다... 프리티어 기능 확장 기원 1일차 시작


git pull 문제

swagger을 다 작성하고 이제 배포까지 적용을 하려는데
안그래도 우분투 어려운데 더 어렵게 만들어주는 우리 git ^^...

내가 한 일이라곤 prisma db push랑 위의 swagger 패키지 다운받은 것밖에 없는데...! (dev로 받아서 파일 변경되었다고 이러겠지만...)
구글링해도 어려운 도식만 나오길래 튜터님께 찾아갔다.

🍎 해결방법

rebase는 어려운 개념이므로 설명을 듣지 않고 간단하게 첫줄 git config pull.rebase false를 복사해서 터미널에 붙이기
그 이후 아무 안내 문구 없이 잘 넘어가면 git pull
그리고 나는 pm2를 sudo에서 열었으므로 sudo에 가서 pm2를 껐다 다시 켜기
---> 그러면 배포 url에서도 swagger을 불러올 수 있다!!


배포까지 마친 후기
: 자바스크립트에서 swagger는 할 일이 아닌 것 같다.

profile
배워나가는 중

0개의 댓글