본문 바로가기

Yura68

TypeORM에서의 @DeletedDateColumn를 활용한 Soft Delete 관련 트러블슈팅 문제 상황이전에 생성한 엔티티를 바탕으로 Repository Pattern을 구현할 때 생겨난 문제입니다.(Repository Pattern은 우리가 entity를 통해 만들어준 테이블의 값 들이 어떠한 일련의 과정을 통해 서비스에서 접근 가능하게끔 해야 하는데 그때 repository가 매개체로서 이 과정을 수행한다. 즉, repository에서 entity로 정의해 놓은 DB의 값을 받고, service에 주입시켜 준다고 생각하면 이해하기 편합니다.)제가 생성한 엔티티는 다음과 같습니다.//order.entity.ts 일부 @CreateDateColumn({ type: 'datetime' }) created_at: Date; @UpdateDateColumn({ type: 'datetime' }.. 2025. 2. 20.
좋은 피자 위대한 피자 (2) (Type ORM 적용하여 entity 설정하기) 안녕하세요 반갑습니다.오늘은erd 변경사항과 수정 이유typeORM 소개 및 적용DB 관계 정의하기에 대해 알아보겠습니다.1. 같은 테이블을 바라보기 때문에 중복된 컬럼을 삭제했습니다.기존의 연결테이블입니다. 여기서 script_id는 food_id와 동일한 주문 테이블을 바라보기 때문에 food_id와 ingredient_id 를 order_id로 수정하여 컬럼이 중복되는 것을 방지하고자 수정했습니다. 수정한 테이블로 typeorm을 적용해보겠습니다. 2. TypeORM(Object Relational Mapping)이란?객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업입니다.ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있기 때문에 이번 프로젝트에 도입하기.. 2025. 1. 16.
좋은 피자 위대한 피자 (1) (프로젝트 소개, ERD 정리) 좋은 피자 위대한 피자 레시피 검색 프로젝트 시작!안녕하세요 반갑습니다.오늘은 좋은 피자 위대한 피자 레시피 개인 프로젝트 시리즈 글을 작성하려고 합니다.저는 평소에 핸드폰 게임을 좋아하는데요, 제가 요즘에 꽂힌 피자 만들기 게임 좋은 피자 위대한 피자 입니다. 이 게임은 손님이 주문을 하면 손님의 오더에 맞게 피자를 만들어 내는 게임입니다. 하지만 게임을 진행할수록 피자 토핑의 개수, 손님의 다양한 요구를 레시피 사이트로 만들면 모르는 레시피가 나오더라도 검색해서 바로 알 수 있고 이 게임을 하는 사람들도 편하게 모르는 레시피를 검색해서 사용할 수 있겠다 하는 생각이 들어 개인 프로젝트로 진행하게 되었습니다.  “중국식 돼지볶음 파이"는 놀랍게도 피자 레시피였다. 근데 이제 레시피를 알 수 없는…게임 .. 2025. 1. 6.
[Node.js] Controller, Service, Repository로 계층 분리하기 백엔드 코드 리뷰를 받고, Service와 Controller에 대해 알아보고 계층을 나눠보라는 코드 리뷰가 있어서 이번 기회를 통해 알아보고 계층별로 코드를 분리하는 시간을 가져보겠습니다 ! 우선 기존의 폴더 구조는 최상단에 app.js가 있고 그 아래 routes 폴더에 login 로직이 들어있는 파일이 있습니다. 본론에 들어가기에 앞서 Service와 Controller, 나아가서 Repository로 분리하는 이유와 각각 어떤 역할을 하는지에 대해 알아보겠습니다.Controller는 HTTP 요청과 응답을 처리하고 클라이언트와 상호작용하는 역할을 합니다.Service는 Controller에 의해 비즈니즈 로직 즉, 핵심 로직을 처리하는 부분으로 Repository를 활용하여 DB와 상호작용합니다... 2024. 12. 22.
[백준] 2776 암기왕 [Silver 4] 2776 암기왕문제 링크구분알고리즘 > 이분탐색풀이 요약이분탐색을 활용하여 주어진 배열에 해당 숫자가 존재하는지 풀어내는 문제나의 풀이const fs = require("fs");const input = fs.readFileSync("/dev/stdin").toString().trim().split("\\n");const T = +input.shift();let answer = [];for (let i = 0; i a - b); input.shift(); const Mnum = input.shift().split(" ").map(Number); Mnum.forEach((v) => { let start = 0; let end = Nnum.length - 1; le.. 2024. 11. 3.
[백준] 1920 수 찾기 [Silver 4] 1920 수 찾기문제 링크구분알고리즘 > 이분탐색풀이 요약이분탐색을 활용하여 주어진 배열에 해당 숫자가 존재하는지 풀어내는 문제나의 풀이const input = require("fs") .readFileSync("./input.txt") .toString() .trim() .split("\\n");const N = Number(input[0]);let Nnum = input[1].split(" ").map(Number);const M = Number(input[2]);let Mnum = input[3].split(" ").map(Number);const answer = [];Nnum.sort((a, b) => a - b);Mnum.forEach((v) => { let star.. 2024. 11. 3.