TIL 60

내일배움캠프 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

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

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

TIL 2025.01.02

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

로그인, 회원가입 페이지의 js, css 파일 수정한 후 유저 로그인, 회원가입 라우터와 연계하여 프론트엔드에서 테스트 완료.HTML 요소의 ID가 잘못 사용되어 발생한 문제를 해결하기 위해 ID를 수정하였다하나의 라우터를 합치는 과정에서 오류 메시지를 통해 문제를 진단하고, 코드에서 어떤 부분이 잘못되었는지를 파악하는 방법을 익혔다.

TIL 2024.12.26

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

내가 프로젝트 중 맏은 실시간 채팅 기능은 일단 기본적인 프론트엔드 구성 후 반응을 확인하는 방식으로 진행하였다.웹 소켓을 통해 클라이언트와 서버 간의 실시간 양방향 통신이 가능하므로 다른 깃허브를 참고하여 실시간 채팅서버를 구현하였다.socket.emit 메서드를 통해 서버에 이벤트를 전송하고, socket.on 메서드를 통해 서버로부터의 메시지를 수신하는 방식으로 채팅기능이 구현된다.웹에 연결되자마자 닉네임을 적고 채팅에 참여하는 형태였기 때문에 채팅 참여 버튼을 만들고 클릭 시 채팅에 참여할 수 있도록 script.js를 수정하였다.const socket = io();document.addEventListener("DOMContentLoaded", () => { /* 채팅에 들어가기 버튼 클릭 시..

TIL 2024.12.24

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

금일엔 리얼타임과제를 제출하고 해설영상을 참고해 어떤 부분이 부족하였는지 알 수 있었다.검증 과정에서 실시간으로 획득하는 점수에 대한 부분을 제대로 구성하지 못한 것 같다.또한 이전 프로젝트 처럼 배포에 어려움이 있어 이전 강의 내용을 다시 한번 찾아봐야 할 것같다.다음주에는 결정한 웹서버 프로젝트가 시작되어 팀이 바뀌게 되므로 새로운 강의에 집중할 예정.

TIL 2024.12.20

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

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.function solution(s) {// 짝수인경우 가운데 2글자// 홀수인경우 가운데 1글자if (s.length%2===0) {return s.substr(s.length/2-1, 2 )} else {return s.charAt(Math.floor(s.length/2))}}str.substr( start, length )substr( ) 의 가장 큰 차이점은 두번째 인자가 끝점의 Index가 아니라 '시작점부터 출력할 문자열의 길이' 라는 점이다.String.charAt(Index)는 문자열에서 Index에 해당하는 문자 1개를 리턴합니다. 따라서, 특정 Index의 ..

TIL 2024.12.19

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

이전에 강의를 통해 기본 세팅한 코드에 문제가 생겼다.그래서 내친김에 다시 강의와 자료를 참고하여 처음부터 다시 구성하였다.이 와중에도 서버 실행시 생기는 오류, 서버 실행 후 잠시 뒤 서버가 멈추는 오류를 고쳤다.오류메시지와 DinoGame 웹에 콘솔창을 확인하며 어찌저찌 오류없이 서버가 실행되도록 마무리를 했다.이 과정에서 콘솔창과 터미널을 확인하며 어떤 부분을 수정했을 때 어떤 반응이 있는지 확인해보았다.웹을 처음 열게임 시작 시 메시지를 gamestart에서 고칠 수 있었다.웹에 처음 들어가면 uuid가 표시되고, 새로고침 시 마다 갱신되는 것을 확인하였다.이후 100점에 도달 시 stage가 변경되는 것을 확인했다.다만 100점을 처음 넘었을때만 해당 메시지가 출력되고, 이후로는 발생하지 않는다..

TIL 2024.12.13

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

코드카타0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.function solution(numbers) {// 배열에서 없는 수만 찾아 배열로 만들고, 그 배열의 합을 구하거나// 0~9까지의 합 46 에서 numbers 배열 합 빼기// 아래가 더 쉬워보임const sum = numbers.reduce((first, current) => {return first+current})return 45-sum;}최근 진행한 코트카타에서 학습한 리듀스 메서드를 활용해 비교적 쉽게 해결하였다.콜백함수 작성이 살짝 했갈릭긴 하나 참고하여 적용..

TIL 2024.12.12

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

강의 내용 정리[게임서버개발 심화] 5. 서버 로직 개발1. 데이터 테이블 로드import loadGameAssets from './init/assets.js'; 이렇게 임포트했을때는,./init/assets.js 모듈에서 default로 내보내는(export) 항목이 없다는 오류가 발생하였다 이 문제를 해결하려면 ./init/assets.js의  loadGameAssets 함수가 default로 내보내야 한다.const loadGameAssets = async () => { // 함수 내용};export default loadGameAssets; // default로 내보내기혹은 임포트문을 이렇게 수정한다.import { loadGameAssets } from './init/assets.js';Def..

TIL 2024.12.11

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

코드카타1. 음양 더하기각 배열(absolutes, signs)이 매개변수이다. 빈 배열 생성 후, absolutes의 요소들이 음수, 양수인지를 signs 배열의 boolean 타입 값으로 판단하여 새로운 값을 빈 배열에 푸쉬한다.- 음수일 때signs 요소가 false > 같은 인덱스 번호의 absolutes 요소에 -1 곱하여 음수로 만든 후 빈배열에 푸쉬- 양수일 때signs 요소가 false > 같은 인덱스 번호의 absolutes 요소 그대로 빈배열에 부쉬이후 반복문을 통해 배열의 합을 구한다function solution(absolutes, signs) { let list = []; for (let i=0; i정답이긴 했지만, map(), reduce()를 사용해 스스로 구성한 위..

TIL 2024.12.10