미들웨어 작성시 validation과 더불어 적절한 반환값을 반환해야한다.프로젝트를 진행하면서 설계한 사례를 알아보자.아래 API들은 가장 기초적인 형태로만 알아본다.개발환경라이브러리expresssequelizeDBPostgresget전체 데이터조회시에는 아래와 같이 진행.express에서 제공하는 HttpStatusCodes 를 사용하면 명시적으로 status를 간편하게 지정할 수 있다.전체router.get('/', async (_, res) => { const result = await MyTest.findAll({ raw: true }) res.status(HttpStatusCodes.OK).send(result)})단건router.get('/:seq', async (_, res) =>..
Mariadb에서 ON UPDATE CURRENT_TIMESTAMP 옵션으로 수정시 자동 수정시간 갱신되는 컬럼을 설정할 수 있다. 이러한 기능을 PostgreSQL에서도 사용하기 위해 찾아보니 Trigger를 사용해야 했다.Trigger를 사용하기 위해선 시간 갱신 함수를 같이 사용해야한다.아래는 모든 테이블의 updated_at 이라는 컬럼에 대한 트리거 생성, 삭제 하는 PLSQL 이다.updatedAt 갱신 함수CREATE OR REPLACE FUNCTION "fn_update_updated_at"()RETURNS TRIGGER AS $$BEGIN NEW."updated_at" = current_timestamp; RETURN NEW;END;$$ LANGUAGE plpgsql;upda..
전에 게시한 PostgreSQL에 이어 Mariadb도 외래키 다루는데 유용한 구문이다.외래키 제약을 없애고, 인덱스만 생성할 때 참조하면 유용하다.외래키 조회SELECT TABLE_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'cheonil' AND REFERENCED_TABLE_NAME IS NOT NULL;외래키 삭제 구문 생성SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ';') AS drop_queryFROM INFORMATION_SCHEMA.K..
프로젝트를 하면서 성능 이슈 및 편의성을 위해서 외래키를 삭제하기로 결정하였다.그와 관련해서 필요한 쿼리들을 모아보았다.외래키 삭제, 생성 구문을 생성해주는 쿼리들로 간편하게 삭제해보자. 외래키 조회SELECT TABLE_NAME, CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'cheonil' AND REFERENCED_TABLE_NAME IS NOT NULL;외래키 삭제 구문 생성SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ';') AS drop_queryFROM ..
현상centos7 EOL로 인해 repository 변경 후 패키지 설치시에 위와 같은 에러가 발생했다. 해결/etc/yum.repos.d/epel.repo 를 편집한다.metalink 부분에 https로 시작하는 부분이 문제를 일으켰다. https를 http로 바꾸어주기면하면된다.[epel]name=Extra Packages for Enterprise Linux 7 - $basearch#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearchmetalink=http://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearchfailovermethod=priorityenabled=1gpgcheck..
개발 환경vite + vue + typescript필요성개발을 하면서 대부분에 파일에서 필요한 모듈들이 있을 것이다.예를들어, 지금은 vue 프로젝트를 하니 vue 관련된 모듈들은 대부분 파일에서 import하고 있다.이러한 import 구문이 많아지면 가독성이 떨어지기도해서, build tool의 도움을 받아 자동으로 import를 하도록 설정하기로 하였다.설치설치 및 적용은 아주 간단하다.공식문서npm i -D unplugin-auto-import적용vite.config.tsimport AutoImport from 'unplugin-auto-import/vite'export default defineConfig({ plugins: [ vue(), AutoImport({ // global impor..
개발 환경vite + vue + typescript왜 사용하나?우리가 Vue 프로젝트를 하다 보면 전역 컴포넌트를 사용하는 일이 생긴다.또 플러그인으로 전역적으로 컴포넌트를 등록하는 일도 있다. (router, vuetify, pinia 등)이러한 전역 컴포넌트 사용 할 때 자동완성 기능의 도움을 받을려면 전역 컴포넌트에 대한 타입을 설정해주어야 한다.이뿐만 아니라 프로젝트내에 생성된 컴포넌트들도 자동으로 전역 컴포넌트를 등록해주는 기능을 한다.전역 컴포넌트 타입 등록 방법components.d.tsRouter를 Plugin 등록하여 사용하면 RouterLink, RouterView를 전역적으로 사용 가능 한데,이 두 Component 타입을 전역적으로 등록하기 위해 아래와 같이 작성한다.// compo..
상황express로 개발한 backend 서버를 도커 이미지로 만들어 컨테이너로 생성해야 하는 상황이다.관련해서 진행한 내용을 정리해본다.프로젝트 구조Working Directory | dist src Dockerfile package.json package-lock.json빌드 및 실행 환경typescript로 구성하였으므로 build 과정이 필요했다.javascript 프로젝트 인 경우는 빌드 과정은 생략하면 된다.환경express + typescript + esmpackages.json"scripts": { ... "build": "npx ts-node build.ts", "start": "node -r module-alias/register ./dist --env=production"..
- Total
- Today
- Yesterday
- 티스토리챌린지
- unplugin-auto-import
- docker multi stage build
- 스파르타 코딩클럽
- vue 이벤트 해제
- nuxt3 structure
- Oracle Database 19c install
- vue unmounted
- 스마트피싱보호_캠페인
- docker mssql create database
- vue 타이머 해제
- vue watch 위험성
- unmounted setinterval
- nuxt3 quasar 설정
- 외래키 삭제
- Oracle Database 19C 설치
- vue onunmounted
- vue watch 대체
- docker mssql 이미지 생성
- nuxt3 프로젝트 설정
- vue 리팩토링
- unmounted document.addlistener
- vue watch 문제점
- dockerignore
- docker image 경량화
- nuxt3 eslint prettier 설정
- docker mssql
- unmounted composable
- 오블완
- oracle 19c 설치
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
