TIL 67

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

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

지난주 주말까지 열심히 작업한 프로젝트를 오늘 발표회를 통해 공개하였다.발제를 더 정확히 참고하여 요구하는 점을 파악하고, 우리 팀의 강점을 위주로 발표해야하는 것을 배웠다.개발에 대부분의 시간을 사용하여 발표 준비를 비교적 덜하고 가벼운 마음으로 진행하였다. 때문에 발표부분에서 피드백이 많았던 것 같다.발표도 우리 프로젝트의 특성을 타인에세 효과적으로 알려야 하는 중요한 부분임을 상기하게 되는 계기가 되었다.이후 이번 프로젝트를 회고하였다.Keep - 현재 만족하고 있는 부분- 토큰 부분에 이전 프로젝트보다 발전된 형태로 개발하기 위해서 노력했고, 오류가 있었지만 마지막엔 기능 구현까지 잘 -되어서 보람을 느꼈다. - 보안에 대해 생각해볼 기회가 많아 배운점이 많다고 생각한다. - 팀작업인 만큼 팀에 ..

TIL 2024.12.09