본문 바로가기

TIL&WIL71

250203 TIL - 심야 만담회의 순기능 오늘 저녁 생각지도 못하게 너무너무 유익한 이야기들을 듣게 됐다!! 시작은 발표를 준비하다 생긴 호기심이었는데, 바로 "자바스크립트로 기반 프로그램의 프로세스 메모리 구조에는 데이터 영역이 존재하지 않는다?!"에 대한 의문이었다! 학습한 내용 기준으론 그럴 리가 없고, 이해가 안 가면서도, 뭔가 설명을 찾어보면 그럴 듯 하고... 그래서 동기 분들에게 농담 삼아 던져보던 중, 우연찮게 튜터님이 두 분이나 오시게 됐고, 수많은 파생 지식들을 던져주시고 가셨다!!! 놓치기가 너무너무 아쉬운데 당장 머리에 온전히 넣기는 어려운 수준인지라, 대화 로그를 그대로 보관해두어따... 오늘은 이 대화에서 내가 건져야할 내용들을 정리하며 마치고, 앞으로 틈틈이 이 지식들을 머리에 넣어서 언젠간 튜터님들의 설명을 바로바로.. 2025. 2. 4.
250123 TIL - Connection Pool 실습 개인 과제 회고) mysql2 라이브러리import pools from '../pools.js';import USER_SQL_QUERIES from './user.queries.js';const insertUserData = async (id, password, email) => { const connection = await pools.USER_DB.getConnection(); await connection.beginTransaction(); await connection.execute(USER_SQL_QUERIES.INSERT_USER, [id, password, email]); await connection.execute(USER_SQL_QUERIES.INSERT_DEFAULT_RANK, .. 2025. 1. 23.
250122 TIL - ECS Architecture ECS 구조 맛보기개요"Entity-Component-System"게임의 오브젝트를 엔티티, 컴포넌트, 시스템으로 분할해 다루는 기법!!Entity : 어떤 값도, 어떤 함수도 아닌 순수 식별자!!Component : 어떠한 조작도 가해지지 않는 순수 데이터!!System : 어떠한 데이터도 저장하지 않는 순수 처리 로직!!라고 하면 무슨 말인지 도통 와닿질 않으니, 그림을 하나 그려보자면?!게임 오브젝트들을 이런 느낌으로 분할해볼 수 있다!! Entity는 명찰 같은 거고, Component는 오브젝트들의 속성, System은 오브젝트들의 행위를 담는다고 생각해보자!! 조금 더 그려보자면?! 각각의 Entity에는 관련된 Component들이 존재하고, (속한다는 개념이 절대 아님!!) System도 .. 2025. 1. 22.
250120 TIL - 소수 관련 알고리즘 팁 알고리즘 회고 - 소수 관련 팁01) 개요최근 알고리즘 문제에 소수와 관련된 이슈들이 많아서, 한 번 정리해보기로 결심했다!!02) 소수 초급 판별법소수는 1과 자기 자신만을 약수로 갖는 자연수지요? 그렇기 때문에 그 수가 소수인지 알아보는 가장 직접적인 방법은 1부터 그 숫자까지 1씩 더한 수들을 전부 나누기 해보고, 나머지가 0이 나오는 경우가 1과 본인인지 보는 방법이다!!예시 코드const isPrime = (num) => { let isPrime = true; // 1이랑 본인은 빼고 확인 // 하나라도 자기 약수면 즉시 중단하고 false 반환 for (let i = 2; i 이리 하면 거의 num만큼의 수를 다 확인해야 할 수도 있어서 썩 좋지 않음!!!03) 소수 중급 판별법사실 약.. 2025. 1. 20.
250117 TIL - 알고리즘 풀이 회고 소소한 기록 며칠 전에 꼬리 재귀 이야기를 했는데, 알고보니 자바스크립트가 ES6부터 지원하는 게 맞긴 한데, 정작 브라우저들이 지원을 하지 않는 경우가 있다고.... 그 문제 때문인지는 몰라도, 오늘 풀이했던 문제에서 재귀를 사용하는 버전과 반복을 사용하는 버전의 차이가 심했다!! 미리 정리하자면 반복의 복잡도를 걱정해서 재귀를 쓰는 짓은, 구더기 잡으려고 초가삼간 다 태우는 일이다!!!재귀 버전function solution(n, m, section, answer = 0) { if (section.length wall > paintOnce); return solution(n, m, leftWalls, answer + 1);} 먼저 생각해냈던 로직!! 간만에 간결한 풀이가 나와서 싱글 벙글 했고,.. 2025. 1. 17.
250116 TIL - 개인과제 정리 멀티플레이 실습 프로젝트개요TCP 소켓 통신 기반의 서버를 구축해 멀티플레이 게임을 실습해보는 프로젝트입니다!!주요 학습 대상으론 소켓 통신, 직렬화-역직렬화 바탕의 바이트 배열 패킷 활용, 멀티 플레이 위치 동기화 등이 있으며,추가 도전으론 채팅 기능을 시도해보았습니다!!디렉토리 구조환경변수들을 일괄 관리하는 config, 프로토버프 정의를 위한 protobuf,DB 연동 및 조작을 위한 database는 추가 설명이 없으며,❌ 표시된 디렉토리 및 파일은 사용되지 않고 있습니다!!init서버가 listen 상태에 진입하는 시점에 실행되는 파일들을 관리하는 디렉토리입니다!!DB 연결 상태를 체크하고, 프로토버프 정의를 로드하고, 게임 세션(=룸)을 하나 생성하는 일 등을 수행합니다!!📦init ┣ 📜.. 2025. 1. 17.