분류 전체보기 104

내일배움캠프 13주차 금요일 TIL

전체적인 엔티티 관계 오류 수정 후 스네이크 네이밍 전략까지 적용한 폴더를 dev에 업로드 한후 각자 dev를 소스로 개인 브랜치를 생성하여 작업을 진행하였다.내가 맏은 list 기능 구성을 위해, 먼저 list 엔티티를 참고하였다.// listimport { Board } from 'src/boards/entities/board.entity';import { Card } from 'src/cards/entities/card.entity';import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, OneToMany, JoinColumn,} from 'typeorm';@Entity..

TIL 2025.01.24

내일배움캠프 13주차 목요일 TIL

오늘은 트렐로 팀 프로젝트 API 명세서 작성, NestJS 기본 디렉터리 구조 구성, 엔티티 파일 구성을 진행하였다.CLI 명령어(nest g module, nest g controller, nest g service 등)을 활용하여 폴더/파일을 자동생성하였고 src 폴더 내에 기능별로 폴더가 추가될 예정이다.엔티티 작성기존 작성한 ERD를 피드백 받은 후 db테이블 구조를 적용하기 위한 엔티티 파일을 작성하였다.@Entity 데코레이터로 어떤 테이블에 매핑할 지,  @PrimaryGeneratedColumn(), @Column()으로 어떤 컬럼을 가질지 지정할 수 있었다.// trelloProject/src/users/entities/user.entity.tsimport { Entity, Prim..

TIL 2025.01.23

내일배움캠프 13주차 수요일 TIL

DTO란? 어플리케이션 내에서 데이터 전송을 위한 객체.(클라이언트와 서버 간에 데이터를 주고받을  때, 어플리케이션의 다양한 계층 간 데이터 전달 시)NestJS와 같은 프레임워크에서는 DTO를 사용하여 - 데이터의 구조를 명확히 정의하고, (ex : 유저 등록 시 필요한 필드(이메일, 비밀번호 등)를 명시적으로 지정)- 유효성 검사를 통해 데이터의 무결성을 보장할 수 있고,( class-validator같은 라이브러리를 함께 사용하여 들어오는 데이터의 형식, 조건을 자동으로 검사할 수 있음)- 타입 안정성을 보장받기 좋다. validation 폴더에서 별도로 유효성 검사를 수행하는 것과 비슷?사용법DTO 클래스 정의(dto.ts 파일 구성) > 컨트롤러에 import하여 DTO 사용** 롤 팬 커뮤니..

카테고리 없음 2025.01.22

내일배움캠프 13주차 화요일 TIL

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.function solution(n, m) { let arr = []; // 유클리드 호제법을 통해 최대공약수를 구하는 함수 function gcd (n, m) { if (m === 0) return n; return gcd(m, n % m); } // 두 수의 곱을 최대공약수로 나누면, 최소공배수를 구할 수 있음 function lcm (n, m) { ..

TIL 2025.01.21

내일배움캠프 12주차 금요일 TIL

오늘 프로젝트를 완료하였다.3계층 아키텍처 이해가 API 설계를 수월하게 만들었지만 의사소통 부재가 곧 기능 누락으로 이어진다는 교훈을 얻었다앞으로는 팀원들이 어떤 기능을 어느 정도까지 진행하고 있는지 주기적으로 체크해야겠다고 다짐했다. 프로젝트에서 3계층 아키텍처를 적용해보면서 레이어별 역할과 책임이 명확해져서 API 설계에 자신감을 얻었다.코드 흐름을 파악하기 훨씬 쉬워졌고, 협업에도 큰 도움이 되었다고 느꼈다.

TIL 2025.01.17

내일배움캠프 12주차 WIL

백오피스 프로젝트 KPT 회고Keep3계층 아키텍처에 대한 이해도와 실제 API 구성 경험프로젝트를 진행하며 3계층 아키텍처 구조에 대한 이해도가 크게 높아졌고, 이를 활용해 API를 설계ㆍ구현하면서 자신감이 생김.구동 순서와 흐름에 대한 이해도 향상프로젝트를 진행하며 3계층 아키텍처 구조에 대한 이해도가 크게 높아졌고, 이를 활용해 API를 설계ㆍ구현하면서 자신감이 생김.타인의 코드 파악 및 습관 비교 학습다른 팀원이 작성한 코드와 나의 코드가 미세하게 다른 부분을 분석하면서, 타인의 코드를 빠르게 파악하는 역량과 다양한 코딩 습관을 학습하는 기회가 되었음.추가적인 기능 구현에 대한 도전정신프로젝트에서 요구되는 핵심 기능 외에도 추가 구현이 가능한 기능들에 대해 적극적으로 도전하고, 팀원들과 협력해 나..

카테고리 없음 2025.01.17

내일배움캠프 12주차 목요일 TIL

내가 작성한 리뷰 API 정리Repository (데이터 접근 계층)Prisma ORM을 통해 DB와 직접 통신하는 계층입니다.주로 findMany, findUnique, create, update, delete 같은 메서드를 통해 리뷰를 CRUD(조회/생성/수정/삭제) 합니다.비즈니스 로직 없이 쿼리만 담당하며, 결과를 반환해 줍니다.Service (비즈니스 로직 계층)Repository를 주입받아, 유효성 검사와 비즈니스 규칙을 처리합니다. 예:별점이 1~5 범위인지 검사중복 리뷰(결제 건당 1개) 여부 확인정렬(최신순) 등 추가 로직필요한 로직을 수행한 후, Repository를 호출하여 DB에 접근하고, 결과값을 가공해 Controller로 전달Controller (프레젠테이션 계층)Express..

TIL 2025.01.16

내일배움캠프 12주차 화요일 TIL

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼 있는지 확인해 주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.function solution(s) { let arr = s.split(''); if (arr.length === 4 || arr.length === 6) { for (let i = 0; i 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해 주세요.function solution(arr1, arr2) { let an..

카테고리 없음 2025.01.14

내일배움캠프 12주차 월요일 TIL

// API 호출 및 리뷰 목록 가져오기async function fetchReviews(restaurantId) { try { const response = await fetch( `/api/users/me/restaurants/${restaurantId}/reviews`, ); if (!response.ok) { throw new Error('네트워크 응답이 좋지 않습니다.'); } const data = await response.json(); const reviews = data.data; // // 리뷰가 배열인지 확인 if (!Array.isArray(reviews)) { throw new Error('리뷰 데이터가 배열..

카테고리 없음 2025.01.13