전체보기

    Nest - Swagger에서 변수 optional하게 처리해야 할 때

    Controller 부분에서 아래와 같이 함수를 짜면 잘 보이지만 swagger에서는 잘 잡히지 않는 경우가 있습니다. @Query('쿼리파라미터1') 쿼리파라미터1?: string, @Query('쿼리파라미터2') 쿼리파라미터2?: string, @Query('쿼리파라미터3') 쿼리파라미터3?: string, 위와 같이 optional 하게 주려고 해도 스웨거 상에서 필수값으로 지정 되버리더라구요. 해결 방법은 아래 깃허브 링크를 클릭하면 찾을 수 있습니다. Please Add `optional: boolean` to @Query route param decorator · Issue #2169 · nestjs/nest I'm submitting a... [x] Feature request Current..

    TypeORM vs Sequelize

    안녕하세요. 자바스크립트 계열의 언어를 사용하다시는 분들이라면 한 번쯤은 접해봤을 ORM 라이브러리라고 생각합니다. 오늘은 이 둘에 대해 간단하게 비교해보도록 하겠습니다. 차이점 TypeORM TypeScript와의 통합 TypeORM은 TypeScript와의 완벽한 통합을 제공하며, 타입 안정성과 코드의 가독성을 높일 수 있습니다. Active Record 및 Data Mapper 패턴 지원 두 가지 패턴을 지원하여 사용자가 선호하는 방식으로 데이터 모델을 다룰 수 있습니다. 데이터베이스 독립성 다양한 데이터베이스를 지원하며, 데이터베이스 간의 전환을 비교적 쉽게 할 수 있습니다. Migrations 및 Schema 관리 쉬운 마이그레이션 관리 도구를 제공하여 데이터베이스 스키마를 관리하기 쉽습니다. ..

    sequelize 사용기?

    Intro혼자서 프론트부터 백엔드까지 북치고 장구쳤던 프로젝트가 있었다. 그 코드 구조가 프론트에서 ajax로 통신 -> ajax route처리하는 부분에서 호출 url에 맞는 API 함수 호출 -> DB 실행 -> 데이터 return 형태로 하나의 파일에서 호출URL에 맞는 함수 호출 부분이 전부 담겨있고, 다른 하나의 파일에선 API 호출하는 함수들을 선언하는 부분들이 담당하는 구조였는데 이 부분을 개선하여 조금 더 REST API 형태에 비슷하게 하도록 sequelize를 사용하여 구조를 변경해 보았다. 각 호출에 필요한 Model을 만들었고, API 호출 구조와 동일하게 디렉토리 안에 index파일을 만들어 API 개발할 때 직관적으로 개발 할 수 있도록 만들어보았다.어떻게 사용했는가?예를 들어 ..

    Git의 다양한 브랜치 병합 방법들

    학습 배경 이직한 회사에서 rebase and merge라는 방식의 merge 방법을 채택하고 있었는데 나에겐 rebase and merge라는 개념이 생소하여 학습하게 되었다. Merge 일반적으로 많이 사용되는 병합이며, 커밋 이력을 모두 남길 때 사용한다. 서로 다른 브랜치에서 작업을 했거나, 작업 내용을 합쳐야 하는 경우 merge를 해주면 됨 브랜치 상태 확인 Checkout한 브랜치를 기준으로 —merged, —no-merged 옵션을 사용하여 merge가 된 브랜치인지 아닌지 필터링할 수 있다. git branch --merged git branch --no-merged Merge 하기 ‘현재' 브랜치에서 [브랜치 명]의 변경사항을 병합 예를 들어 master브랜치와 test 브랜치가 있다고..

    Node - koa 프레임워크를 사용하며 느낀점

    요번에 koa 프레임워크로 개발하게 되어 koa 프레임워크에서 REST API를 처리하는 간단한 코드를 만들어 보았습니다. 예제 코드 const Koa = require('koa'); const Router = require('@koa/router'); const app = new Koa(); const router = new Router(); var userList = []; router.get('/', (ctx) => { ctx.body = 'Hello World!'; }); router.post('/users', (ctx) => { const name = ctx.query.name; if (checkDuplicates(userList, name)) { ctx.body = 'User duplicate..

    OpenVPN Options error: --up script fails with './update-resolv-conf': 지정된 파일을 찾을 수 없습니다. (errno=2) 해결방법

    script-security 2 up ./update-resolv-conf down ./update-resolv-conf import하려는 파일코드에서 위 코드를 삭제해주면 정상적으로 사용자 암호를 입력하라는 창이 뜨며 해결됩니다

    [바미] SSR과 CSR

    브라우저 렌더링 먼저 브라우저 랜더링이란 브라우저가 서버로부터 요청해 받은 내용을 브라우저 화면에 표시해주는 작업을 말합니다. 브라우저가 서버로부터 HTML, CSS, JS 문서를 전달받아 브라우저 엔진이 각 문서를 해석해 브라우저 화면을 그려주는 것이죠. 예를 들어, 아무 브라우저에 접속해서 주소창에 https://www.naver.com/ 을 입력한다면 브라우저는 네이버 서버로부터 네이버 웹사이트에 대한 정보를 받아 브라우저 화면에 네이버 홈페이지를 그려 주게 되는 것이죠. 그리고 이러한 브라우저 렌더링은 크게 ' 서버 사이드 렌더링'과 ' 클라이언트 사이드 렌더링' 방식으로 나누어 지죠. 서버 사이드 렌더링 서버 사이드 렌더링은 클라이언트(브라우저)가 서버에 매번 데이터를 요청하여 서버에서 처리하는..

    [바미] 백엔드 개발자로 이직하며 접했던 면접 질문들

    안녕하세요. 3년차 백엔드 포지션 개발자로 이직하며 접했던 면접 질문들을 공유합니다. 저는 Node.js, Go를 사용하는 회사를 주로 지원했기 때문에 Spring개발과 관련된 질문은 없다는 점 양해 바랍니다. 많은 도움이 되셨길 바랍니다. 백엔드 관련 더보기 REST API에 대해 설명해주시고, REST API의 장, 단점을 말씀해주세요 [바미] REST API에 대하여 안녕하세요. 오늘은 REST API에 대해 알아보고자 합니다. REST? 흔히 개발을 하셨던 분들이라면 'REST하다.' 라는 표현을 접해보셨을 겁니다. 개발하면서 흔히 접했지만 정확히 얘기하지 못하는 부분 codesk.tistory.com REST API의 메소드들을 아시는대로 말씀해주세요. [바미] REST API에 대하여 안녕하세..