프로그래밍(Web)

    [바미] 트리거는 왜 사용할까?

    회사의 Node프로젝트 중 트리거를 사용하는 프로젝트가 있었습니다. 그 트리거들은 특정 작업 전에 동작하거나 특정 작업 후에 처리되는 것들이였기 때문에 그 트리거들을 보면서 미들웨어라는 좋은 게 있는데 왜 트리거를 사용했을까? 라는 생각을 하게 되었습니다. 그러니까 아래와 같이 구성하면 되지 않나? 싶었죠. app.use(async (req, res, next) => { try { const result = await someAsyncTask(); req.customData = result; // 비동기 작업 결과를 요청 객체에 저장 next(); // 다음 미들웨어 함수 호출 } catch (error) { next(error); // 오류 처리를 위해 다음 미들웨어 함수 호출 } }); 그러다 GPT..

    [바미] Postgresql 설치 오류 해결하기

    공식 사이트에서 16.1버전을 다운받고, 설치하려는데 위와 같은 에러창이 떴습니다. 처음에는 AppData\Local\Temp경로에 postgresql...디렉토리 문제인 줄 알고 삭제했지만 문제는 여전했습니다. 방법은 아래 페이지에서 구버전을 다운받아 해결했습니다. https://superuser.com/questions/1475822/postgresql-install-fail-in-windows-10-icacls-error-access-denied PostgreSQL Install Fail in Windows 10 (icacls error / access denied) I am getting the following error when trying to install PostgreSQL on my W..

    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하려는 파일코드에서 위 코드를 삭제해주면 정상적으로 사용자 암호를 입력하라는 창이 뜨며 해결됩니다

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

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