2025/01 9

내일배움캠프 11주차 WIL

이번 주는 백오피스 프로젝트를 새롭게 시작하며, 3계층 아키텍처 구조를 학습하고 이를 프로젝트에 적용한 점이 가장 큰 성과였다. 특히 리뷰 CRUD API를 작성하며 각 계층의 역할을 명확히 이해하는 데 집중했다. 컨트롤러, 서비스, 리포지토리 계층 간의 유효성 검증 작업을 구분하며, 비즈니스 로직은 서비스 계층에 집중하고, 데이터베이스 검증은 리포지토리 계층에서 처리하도록 설계했다. 이러한 구조는 코드의 가독성과 유지보수성을 높이는 데 큰 도움을 줬다.또한, 실시간 알림 기능을 구현하기 위해 웹소켓(Socket.IO)을 활용했다. 초기에는 서버와 클라이언트 간 데이터 흐름이 낯설었지만, 테스트용 HTML 파일과 임시 코드를 작성하며 점차 이해할 수 있었다. 이를 통해 주문 현황을 실시간으로 업데이트하는..

TIL 2025.01.10

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

웹소켓을 통한 실시간 알림을 위해 서버 측 웹소켓 구성과 임시 html파일을 구성 후 테스트하였다.import express from 'express';import dotenv from 'dotenv';import cookieParser from 'cookie-parser';import { Server } from 'socket.io';import http from 'http'; // Node.js 기본 내장 모듈import cors from 'cors'; // CORS 모듈 import 추가import fs from 'fs/promises'; // 파일 시스템 모듈로, Promise 기반으로 파일을 읽고 쓸 수 있게 해줌...// express 객체 생성const app = express();// ex..

TIL 2025.01.10

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

오늘 3계층 코드를 완성하고 API 테스트까지 완료하였다.추후 변경될 여지가 있지만 일단 대부분의 유효성 검사를 서비스 계층에 몰아 작성되는 것을 기준으로 완성시켰다.// src/repositories/reviews.repository.jsimport { prisma } from '../utils/prisma/index.js';class ReviewsRepository { #orm; constructor(orm) { this.#orm = orm; } // 음식점 별 리뷰 findALLReviewByRestaurantId = async (restaurantId) => { const resReviews = await this.#orm.review.findMany({ where: ..

TIL 2025.01.09

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

어제 작성한 reviews.repository.js를 프로젝트에서 팀원들끼리 정한 형식에 따라 변경하였다.// src/repositories/reviews.repository.jsimport { prisma } from '../utils/prisma/index.js';class PostsRepository { #orm; constructor(orm) { this.#orm = orm; } findAllReviews = async () => { // ORM인 Prisma에서 review 모델의 findMany 메서드를 사용해 데이터를 요청합니다. const reviews = await this.#orm.review.findMany(); return reviews; }; fin..

TIL 2025.01.08

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

금일은 베이직반 수업을 통해 3) 3계층 아키텍처 (3-Layered Architecture)의 구조, 구현 순서에 대해 학습하였다.이를 프로젝트에 적용하기로 회의하였고 이후 남은 SA작성과 피드백을 통해 API 명세서, ERD를 수정하였다.이번 프로젝트에서 일단 첫번째로 리뷰 CRUD 기능 개발을 맏고, 프로젝트에 적용하기로 한 계층형 아키텍처 패턴 (Layered Architecture Pattern)을 구성하기 전에 이전에 하던 방식대로 CRUD API를 먼저 구성하였다.import express from 'express';import { prisma } from '../uts/prisma/index.js';import authMiddleware from '../middlewares/auth.mid..

TIL 2025.01.07

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

웹서버 반 백오피스 프로젝트를 새롭게 시작하여 기본 SA 작성을 진행하였다.강의는 약 4개 분량이 아직 남아 완강 후 진행 예정이다.프로젝트 명 : 백오피스 프로젝트소개(가제) 배달의 민족한 줄 정리 : 음식 배달 서비스작성한 와이어프레임 웹환경에 맞춰 기본적인 와이어프레임을 작성하였다. 사진 이외에도 리뷰, 주문, 메뉴 선택 등의 와이어프레임을 추가로 구성하였다.작성한 ERD사용자 테이블은 유지보수와 추후 테이블 컬럼 변경, 사업자 유저와 고객 유저의 차이를 감안하여 user, owner 테이블을 따로 구성하였다.이후 레스토랑, 주문, 메뉴, 리뷰 등의 테이블의 관계를 설정하였다.추가적으로  API 명세 작성을 완료하여 기본적인 SA작성을 완료하였다.

카테고리 없음 2025.01.06

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

오늘은 새로운 팀원들과 인사 한 후 새로운 강의를 지급받아 다음주 월요일까지 완강 후, 팀별  SA작성까지 완성하기로 계획하였다.객체 지향 (Object-Oriented) 좋은 설계란?요구 기능을 정확히 수행하고, 변경을 쉽게 수용할 수 있는 설계. 이해하기 쉬운 코드가 변경하기 쉬운 코드로 이어짐.객체 지향 (Object-Oriented): 소프트웨어 개발에서 기능이 아닌 객체에 초점을 맞추고, 객체의 역할을 명확히 정의하는 방법론. 책임과 권한을 가진 객체들이 협력하여 기능을 수행.객체 지향 프로그래밍 (OOP): 상태(데이터)와 프로세스(메서드)가 같은 모듈 내에 배치되는 방식. 현실 세계의 객체를 유연하게 표현하며, 코드의 추상화를 통해 직관적인 사고를 가능하게 함.가독성이 좋고, 재사용성이 높으..

카테고리 없음 2025.01.03

내일배움캠프 10주차 WIL

지난 일주일 동안 뉴스피드 프로젝트에서 여러 가지 기능을 구현하며 팀원들과 협업하는 경험을 쌓았다. 월요일에는 프로필 저장 및 조회 API를 구현하고, 화요일에는 실시간 채팅 기능을 Socket.IO를 통해 구현했다. 목요일에는 KPT 회고를 통해 프로젝트 진행 상황을 되돌아보며 프론트엔드와 서버 측 코드 구성의 균형을 맞추는 데 필요한 점들을 정리했다.이 과정에서 새로운 기능을 구현할 때 흥미를 느꼈고, 특히 실시간 채팅 기능을 구현할 때는 큰 성취감을 느꼈다. 그러나 프로젝트 초기 ERD 구성에 소홀했던 점이 아쉬웠고, 프론트엔드 작업에 치중하면서 서버 측 코드에 대한 불안감이 생겼다. 때문에 프로젝트의 방향성을 다시 생각하게 만들었다.이번 주를 통해 실시간 통신과 API 활용의 중요성을 깨달았고, ..

카테고리 없음 2025.01.03

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

뉴스피드 프로젝트 kpt 회고keep뉴스피드 프로젝트이지만 실시간 채팅, Open API 활용 등 이전에 시도하지 않았던 기능들을 구현해서 좋았다추가적인 기능구현에 도전적으로 임하는 자세Problem필요한 서버측 Api나 통신을 위한 서버 app.js 구성을 주도하긴 했지만 너무 프론트 위주로 했다는 생각이 있다.ERD 구성에 신경을 그렇게 쓰지 않았는데, 작업중 모델, 컬럼 구조 때문에 문제가 많았다.Try프론트를 많이 하다보니 AI에 더 의존하게된 것 같아 AI를 덜 사용하고 서버측 코드 구성해 집중해보고 싶다.ERD등 프로젝트 초반 아이디어 정리나 구조 설정에 더욱 집중할 필요가 있을 것 같다.

TIL 2025.01.02