본문 바로가기

자바스크립트27

[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.
[백준] 1018 체스판 다시 칠하기 [Silver 4]1018 체스판 다시 칠하기문제 링크구분알고리즘 > 완전탐색풀이 요약8*8 체스판에서 흰색 또는 검은색으로 시작하는 체스판 패턴과 비교하여 최소한으로 체스판을 다시 칠하는 경우의 수를 구하는 문제나의 풀이const input = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\\n");let [board, ...arr] = input;const [n, m] = board.split(" ");arr = arr.map((i) => i.split(""));let answer = [];const whiteboard = [ "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW.. 2024. 10. 27.
[백준] 10448 유레카 이론 [Bronze 1] 10448 유레카 이론문제 링크구분알고리즘 > 완전탐색풀이 요약세 개의 삼각수 합으로 표현되는 문자임을 알아내기 위해 모든 가능한 조합을 검사해서 각 숫자가 삼각수이면 true, 그렇지 않으면 false를 반환하는 문제나의 풀이const [testCase, ...testCaseArr] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\\n") .map(Number);for (let i = 0; i 삼각수는 각 숫자가 이전 값에 1씩 더해진 합으로 표현됩니다.예를들면,1=13=1+26=1+2+310=1+2+3+4Eureka 함수는 숫자 num이 삼각수인지 확인하는 함수입니다.또 TriangleNum.. 2024. 10. 27.
[백준] 10773 제로 [Silver 4] 10773 제로문제 링크구분알고리즘 > 구현풀이 요약주어진 숫자 배열에서 0이 나오면 이전에 추가된 숫자를 제거하고, 남은 숫자들의 합을 계산하는 문제나의 풀이const input = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\\n") .map(Number);const K = input.shift();const arr = [...input].map(Number);const num = [];for (let i = 0; i a + b));}배운점문제를 풀 때 원하는 답이 출력이 안되서 stack을 떠올려서 풀었습니다. 주의할 점은 숫자 0을 만나면 0과 함께 이전 숫자를 지워야 합니다.또한 re.. 2024. 10. 22.