개발일지96 2024-11-19 내일배움캠프 Node.js 트랙 17일차1. ZEP에서 이루어진 Node.js 입문 스터디지난 시간을 복기해보자. Node.js의 정의와 express.js가 가진 이점, 그리고 패키지의 사용법에 대해 알아보았다. yarn이라는 패키지 매니저를 통해 실제로 express.js를 통해 서버를 연결해보았고, 미들웨어의 역할에 대해 간단하게 살펴보기도 했다. 그 내용을 짧게 요약해 보자면, 미들웨어는 서버-클라이언트의 요청과 응답의 흐름에서 중간에 개입하는 메서드들을 통칭하는 개념이다.(단, app.listen()과 같은 서버 시작 함수는 일반적으로 미들웨어로 분류되지 않는다.)Q1. app.METHOD() 와 router.METHOD를 사용하는 것의 차이점은 뭘까?여기서 한 발 더 나아가서 고민을 해 보자... 개발일지/TIL(Today I Learned) 2024. 11. 19. 2024-11-18 내일배움캠프 Node.js 트랙 16일차1. ZEP에서 이루어진 Node.js 입문 스터디Node.js란?오픈 소스 및 크로스 플랫폼 JavaScript 런타임 환경이다.구글 Chrome의 핵심인 V8 자바스크립트 엔진을 브라우저 외부에서 실행한다. 이를 통해 매우 뛰어난 성능을 선보이는 게 특징모듈과 패키지, 그리고 yarnNode.js에선 코드의 재사용성을 높이기 위해 작성된 독립적인 코드 조각들을 "모듈"이라고 부른다. 패키지는 이러한 모듈을 포함하고 있거나 다른 패키지에 의존하고 있는 코드의 집합을 의미한다. 패키지 매니저라는 도구를 이용한다면 패키지의 설치, 업데이트, 삭제 등이 훨씬 편리해진다. yarn은 바로 이 패키지 매니저 중 하나다. Node.js의 대표 패키지 매니저인 npm을 대체하.. 개발일지/TIL(Today I Learned) 2024. 11. 18. 11월 2주차 - FACTS: 이번 일주일 동안 있었던 일, 내가 한 일(1) 로그라이크 게임 만들기ppiok-OwO/Lucky-Draw자바스크립트의 기본적인 문법을 학습한 뒤 덱빌딩 로그라이크를 만들어나갔다. 자세한 개발 과정은 위 깃헙 링크의 README파일과 커밋 히스토리를 통해 확인할 수 있다. GitHub - ppiok-OwO/Lucky-DrawContribute to ppiok-OwO/Lucky-Draw development by creating an account on GitHub.github.com (2) 알고리즘 코드카타알고리즘 코드카타를 진행하면서 잘 알지 못했던 자바스크립트 메서드를 익히게 되었다. 이를 테면 toString()을 통해 정수를 문자열로 변환하거나 map과 reduce를 활용하여 문제.. 개발일지/WIL(Weekly I Learned) 2024. 11. 15. 2024-11-15 내일배움캠프 Node.js 트랙 15일차1. ZEP에서 이루어진 로그라이크 게임 만들기 프로젝트게임에 사용된 주요 함수들카드(배열) 무작위 정렬let array = [1, 2, 3, 4, 5];array.sort(() => Math.random() - 0.5);console.log(array);sort() 메서드에 별다른 compareFunction이 제공되지 않으면 요소를 문자열로 변환하고 두 요소를 비교한다. 기준은 유니 코드의 코드 포인트 값에 따라 정렬된다.function compareNumbers(a, b) { return a - b;}요소가 숫자인 경우, sort() 메서드는 콜백함수를 매개변수로 받는데, 매개변수가 음수를 반환하면 a가 b보다 먼저 정렬되고 양수를 반환하면 b가 a보다 먼저.. 개발일지/TIL(Today I Learned) 2024. 11. 15. 2024-11-14 내일배움캠프 Node.js 트랙 14일차1. ZEP에서 이루어진 로그라이크 게임 개발 프로젝트(1) 지난 시간 복기지난 시간엔 fs와 json을 이용해 업적 기능을 구현해보았다. json은 Javascript Object Notation의 약자로, 텍스트 기반의 데이터 교환 형식이며, fsp를 통해 데이터를 읽고 쓸 수 있었다.// JSON 파일을 로드하는 함수let loadJson = async (filePath) => { try { const data = await fsp.readFile(filePath, 'utf8'); return JSON.parse(data); } catch (err) { console.error('파일 읽기 오류:', err); return null; .. 개발일지/TIL(Today I Learned) 2024. 11. 14. 2024-11-13 내일배움캠프 Node.js 트랙 13일차" data-ke-size="size26">내일배움캠프 Node.js 트랙 13일차ZEP에서 이루어진 로그라이크 게임 개발 프로젝트" data-ke-size="size23">ZEP에서 이루어진 로그라이크 게임 개발 프로젝트json을 이용해 로컬 파일에 게임 데이터를 저장해보자미리 고백하자면 아직 세이브 기능을 완벽하게 만들진 못했기 때문에 한 번 더 되짚어 보자는 생각으로 이 글을 적어두려고 한다. 내용을 정확히 이해한 것도 아니지만 언젠가 이해할 날이 온다면…아마 오늘 내가 괴롭게 고민했던 덕분일 것이다… : )// 새로운 js파일을 만들었다! 이곳에서 json 관련 작업을 해보자.import fsp from 'fs/promises'; // fs/promises에.. 개발일지/TIL(Today I Learned) 2024. 11. 13. 2024-11-12 내일배움캠프 Node.js 트랙 12일차1. ZEP에서 이루어진 로그라이크 게임 개발 프로젝트코드를 짜다보면 자주 쓰게 되는 배열 메서드들이 있다. push, splice, slice 등…. 어떤 메서드들은 서로 하는 일이 비슷해 보이는데, 희한하게도 바라는 결과가 나오지 않을 때도 한다. 왜냐하면 원본 배열을 변경하는 메서드가 있는가 하면 새로운 배열을 반환하는 객체도 있기 때문이다. 또 비슷한 일을 하는데 반환값의 자료형이 전혀 다른 경우도 있다. 오늘 TIL에서는 두 가지 분류에 따라 메서드를 정리해보고자 한다. 아래는 일부 메서드에서 예시로 쓰게 될 원본 배열이다.let iveMembers = ["안유진", "가을", "레이", "장원영", "리즈", "이서"];console.log(iveMemb.. 개발일지/TIL(Today I Learned) 2024. 11. 12. 2024-11-11 내일배움캠프 Node.js 트랙 4일차" data-ke-size="size26">내일배움캠프 Node.js 트랙 4일차1. ZEP에서 이루어진 로그라이크 게임 개발 프로젝트" data-ke-size="size23">1. ZEP에서 이루어진 로그라이크 게임 개발 프로젝트(1) 지난 시간 복기" data-ke-size="size20">(1) 지난 시간 복기지난 시간을 기점으로 자바스크립트 문법 강의를 마친 뒤 본격적인 코드 작성에 돌입했다. 게임의 장르는 덱빌딩 로그라이크. 플레이어, 카드, 몬스터의 인스턴스를 클래스로 생성하였고 메서드와 함수들을 이용해 각자의 기능들을 구현해 나갔다.자연어로 의사코드를 먼저 작성하고 시작했기 때문에 큰 문제는 없었지만, 종종 알 수 없는 결과물을 맞닥뜨릴 때가 있었다."왜.. 개발일지/TIL(Today I Learned) 2024. 11. 11. 11월 1주차 - FACTS: 이번 일주일 동안 있었던 일, 내가 한 일(1) 자바스크립트 문법 공부 자바스크립트 문법 종합반을 완강하였다. 해당 강의를 공부한 방식은 2번 데일리 스크럼 항목에서 더 자세히 기술하도록 하겠다.(2) 데일리 스크럼 팀 노션에도 적어두었는데, 짧은 시간 내에 많은 걸 흡수하기 위해선 반복학습이 필수라고 생각했다. 일단은 이해가 잘 안 되더라도 강의를 들었고, 그 다음에는 강의 자료를 읽어보면서 복습을 하였다. 복습 과정에선 당연히 노트 필기를 병행하였고 마지막으론 예제를 풀면서 내가 제대로 이해하고 있는지를 확인해보았다. 하루에 해야 할 목표치를 팀 노션의 할 일 목록으로 구체화해서 적어두었고 완료하면 체크를 해서 성취감을 자극해보았다. 주차별로 풀어놓은 예제를 정리해두었다.(3) .. 개발일지/WIL(Weekly I Learned) 2024. 11. 8. 2024-11-08 내일배움캠프 Node.js 트랙 10일차1. ZEP에서 이루어진 로그라이크 게임 만들기 프로젝트(1) 로그라이크 게임 기획이번 프로젝트는 개별 과제로, 로그라이크 게임 개발이라는 큰 목표 아래 알고리즘 특강과 실습 시간이 주어졌다. 듣고 있던 자바스크립트 문법 강의를 마무리하고 본격적으로 게임 만들기에 앞서서 주요 골격부터 고민해봤다. 우선 로그라이크라는 장르는 너무 광범위하기 때문에 보다 세부적인 장르를 정할 필요가 있었다. 원래도 내가 개발하고 싶었던 건 턴제 덱빌딩 장르였기에 그리 어려운 선택지는 아니었다. 덱빌딩 기반의 로그라이크. 참 익숙하고 친근하다. 레퍼런스가 되어줄 게임들이 나의 스팀 라이브러리에 산재해있기 때문에 아이디어가 고갈날 염려는 없었다. 다만 '카드로 적을 물리친다'라는 기본 전.. 개발일지/TIL(Today I Learned) 2024. 11. 8. 2024-11-07 내일배움캠프 Node.js 트랙 9일차1. ZEP에서 이루어진 자바스크립트 문법 스터디오늘날 웹 애플리케이션과 모바일 앱 등 대부분의 프로그램은 네트워크 요청, 파일 시스템 작업, 사용자 입력 처리 등 다양한 비동기 작업을 수행합니다. 비동기 프로그래밍은 이러한 작업들을 효율적으로 처리하고 프로그램의 반응성과 성능을 높이는 데 필수적입니다. 비동기 작업을 동기적으로 처리할 경우, 프로그램은 특정 작업이 완료될 때까지 블로킹되어 다른 작업을 처리할 수 없게 됩니다. 이는 사용자 경험을 크게 저하시키고, 전반적인 프로그램 성능을 떨어뜨립니다. 자바스크립트는 본래 단일 스레드 기반의 언어로 설계되어 비동기 작업 처리에 어려움이 있었습니다. 초기에는 콜백 함수를 사용하여 비동기 작업을 처리했지만, 코드의 가독성.. 개발일지/TIL(Today I Learned) 2024. 11. 7. 2024-11-06 내일배움캠프 Node.js 트랙 8일차1. ZEP에서 이루어진 자바 문법 스터디실행 컨텍스트란?자바스크립트에서 실행 컨텍스트(Execution Context)는 코드가 실행되는 환경을 정의하는 중요한 개념이다. EC는 코드가 실행될 때 필요한 정보들을 모아놓은 객체로서 변수, 함수, 객체 등의 정보를 포함하고 있다. 이를 통해 자바스크립트는 여러 실행 컨텍스트를 생성하고 관리하거나 코드의 실행 흐름을 제어할 수 있다. 실행 컨텍스트는 크게 전역 컨텍스트와 함수 컨텍스트로 나눌 수 있다.(또는 eval()을 통해서도 실행 컨텍스트가 생성되기도 한다.) 우리가 코딩을 할 때 주로 생성하는 실행 컨텍스트는 함수 컨텍스트이기 때문에 하기에서는 이에 대해서만 언급하도록 하겠다. 일단은 함수 선언될 때 해당 함수에.. 개발일지/TIL(Today I Learned) 2024. 11. 6. 이전 1 2 3 4 5 6 7 8 다음