Categories
Tags
8
16
32
![커버: [GIT] 브랜치 관리, 다시 이해하기 커버 이미지](/assets/images/post/covers/dalle-til-cover-edit.png)
여태까지는 Git Commit을 관리하는 방법을 잘 알고 있다고 생각했습니다. 하지만 실제 프로젝트에서는 예상치 못한 상황들이 생기면서, 기존의 흐름을 되짚어보는 일이 많아졌습니다. 이런 경험을 통해, 지금까지 이해했던 방식이 실제 현장에서는 다르게 작동할 수 있다는 걸 느꼈습니다. 이번 포스팅은 브랜치 관리와 이전에 이해하고 있던 브랜치 머지 방식이 다시 보니 잘못된 것에 대한 내용을 다룹니다. 고민이 생긴 이유 이직 이후 백엔드 인수인계를 받으면서 깃 관리에 대해 설명을 듣다가 문득 생각이 들었습니다. "브랜치가 이렇게 다양한 이유는 무엇일까?" 브랜치가 많은 이유는 납득할 수 있지만, 어떻게 이 많은 브랜치를 관리해야 할지 관리 방안에 대해 고민이 깊어졌습니다. 현재 프로젝트의 깃 상황은 아래와 같습니다.
2025년 04월 28일웹 게임 개발의 시작 🎮 모바일 게임을 모방해서 게임을 만들고 직접 해보고, 업데이트 하는 등 취미 삼아 시간이 뜰 때 게임을 개발하고 있습니다. 물론 거창한 게임은 아니지만 떠오르는 아이디어나 방법이 생각날 때면 적어두었다가 실행에 옮겨 자기만족하는 수준입니다. 오늘은 타입스크립트를 이용하여 2D 웹게임을 만드는 과정에 대해 이야기해보려고 합니다. 게임을 개발하게 된 계기는 어릴 적에 했던 환세취호전이라는 게임이 떠올랐고, 싱글플레이와 멀티플레이를 구현할 수 있지 않을까 하는 호기심이 생겼기 때문입니다. 어릴 땐 게임이라면 참 좋아라 했는데, 지금 다시 해봐도 흥미가 생기지 않더라구요. 😊 게임의 주요 요소가 무엇일까 🕹️ 제가 경험하고 생각한 게임의 주요 요소는 다음과 같습니다.
2025년 02월 05일제작 과정: SnapPoll 프로젝트 제작개요 SnapPoll은 실시간으로 설문조사와 투표를 생성하고 관리하며, 결과를 분석할 수 있는 플랫폼입니다. 이 플랫폼은 사용자가 설문지를 쉽게 만들고 참여할 수 있도록 하며, 결과를 다양한 방식으로 시각화하는 데 중점을 두고 개발되었습니다. 제작배경 SnapPoll 프로젝트는 제가 TypeORM을 사용하던 중, Prisma의 간결함과 유지보수성을 시험해보고 싶다는 생각에서 시작되었습니다. TypeORM을 사용하면서 큰 불편함 없이 개발에 적용해오던 중에 지인에게서 Prisma를 추천 받아 스터디하게 되었습니다. 한번 사용해보자 싶어서 큰 기대 없이 시작했습니다. 개인적으로 무언가 익히는데는 주제를 잡고 기능을 만들어보는게 가장 빠르다는 생각에 설문을 작성하고 통계 그래프를 도출하는 서비스가 있으면 어떨까 하는 생각에 시작하게 된 프로젝트입니다.
2025년 01월 16일![커버: [SHELL] 스크립트를 활용한 빌드, 배포, 패키징 자동화: 반복 작업에서 해방되기 커버 이미지](/assets/images/post/covers/TIL-shell.png)
자동화의 필요성 프로젝트를 진행하다보면 가끔 한 두번이 아닌 여러번 자주 반복적으로 해야하는 일이 생기기 마련입니다. 이번에는 자동화하는 과정과 사용후기를 정리해보려합니다. 이전 포스팅 중에서 쉘 스크립트 공부와 몇가지 활용한 내용을 다룬 적이 있습니다. 공부했던 내용과 새로 습득한 내용을 같이 버무려 정리해두면 이후에 다시 보는 용도 또는 저와 같은 고민을 하고 계신 분에게 도움이 되었으면 합니다. 현재 발생하는 이슈는 다음과 같습니다. - 운영환경에서 유니티 및 API를 실행해야한다. - 데이터베이스에 고정된 데이터가 있고, 유니티에서 이 데이터가 자주 변경된다. - 유니티 개발자와 협업하고 테스팅하는데 필요한 API프로젝트를 자주 빌드해야한다. - 빌드 후 데이터베이스 및 NodeJS를 설치하는 파일을 포함한 zip으로 패키징해야한다. 위 이슈를 요약해보면, 운영환경에서 실행할 배포파일을 zip으로 패키징해야하고, 개발 단계에서 고정 데이터가 자주 변하기 때문에 빌드 또한 자주 일어납니다.
2024년 09월 22일![커버: [JAVASCRIPT] 검색엔진: 매칭 점수로 연관검색 알고리즘 구현해보기 커버 이미지](/assets/images/post/covers/dalle-til-cover-edit.png)
검색 알고리즘을 구현해보자 기존에 있는 기능이나 기술을 개념부터 보는 순서보다 반대로 먼저 만들어보고 이후에 왜 이 부분은 이렇게 하고, 제작하면서 발생했던 문제가 왜 발생했는지 습득하는 편입니다. 개인적으로 개념을 먼저 읽고 실습하는 방법은 새로운 언어나 정해진 틀이 있는 기술을 배우는데 도움이 되지만, 기능의 이해나 원리를 습득하는데는 이 방법이 좋았습니다. 까먹지 않기 위해서 혹은 시간이 흘러 다시 봤을때 "이걸 내가 어떻게 했지?" 하는 의문을 해소하고자 기록하게 됐습니다. 매칭 점수 검색 기능 초안 문득 잠자리에 들기 전 생각이 났습니다. 매번 멍때릴 때 머리를 스치면서 "아, 이렇게하면 구현되겠네!" 했던 아이디어들을 이번에도 그냥 흘려보내면 공부가 안되겠다 싶어서 곧바로 노트북을 켰지요. 처음 생각은 이랬습니다. 검색어가 이미 많이 등록되었다고 가정했습니다. 그리고 입력한 검색어를 기준으로 등록된 검색어들과 매칭했을 때 어느정도로 매칭이 되는지 점수를 따져보면 되지 않을까? 하는 생각이 시작이었습니다. 프로세스는 다음과 같습니다.
2024년 04월 10일![커버: [JAVASCRIPT] 핵심 이해: Hoisting 톺아보기 커버 이미지](/assets/images/post/covers/TIL-javascript.png)
Hoisting을 알아보자 Hoisting(이하 호이스팅)이란 코드를 실행하기 전에 인터프리터가 함수, 변수, 클래스 또는 가져오기의 선언을 해당 범위의 맨 위로 이동하는 것처럼 보이는 프로세스를 나타냅니다. 함수와 변수가 선언된 위치, 해당 범위가 전역인지 로컬인지에 관계 없이 해당 범위의 맨 위로 이동 되는 것을 의미합니다. 여기서 중요한 점은 선언만 이동한다는 사실입니다. 호이스팅의 개념을 알기에 앞서서 변수의 선언 여부에 따라 어떤 방식으로 동작하는지를 알아보겠습니다. 아래에 코드가 실행 될때 변수의 선언이 존재하는지에 따라 어떤 값인지, 어떤 현상이 일어나는지 예시 입니다. 첫 줄의 콘솔은 "undefined" 라는 문자열을 출력합니다. 선언하지 않은 변수에 대해 type을 도출하면 "myVariable" 자체가 선언되지 않은 "undefined"이기 때문입니다.
2024년 03월 22일![커버: [JAVASCRIPT] 핵심 이해: Lexical Scope와 Execution Context의 모든 것 커버 이미지](/assets/images/post/covers/TIL-javascript.png)
자바스크립트의 기초 지식을 보강하기 위해 시리즈로 작성 중인 포스트입니다. Scope와 Execution Context 스코프와 실행 컨텍스트는 서로 관련이 있기 때문에 이 포스팅에서 묶어서 정리합니다. 가장 기초이고, 필수로 알아야하는 개념입니다. Scope(이하 스코프) 스코프의 개념부터 알아보겠습니다. 스코프는 변수나 함수와 같은 식별자가 접근 가능한 범위를 뜻합니다. 코드의 부분에서 어떤 변수들을 사용할 수 있는지, 어디서 해당 변수의 참조를 찾을 수 있는지를 정의하는게 스코프입니다.
2024년 03월 17일![커버: [TIL] REST를 설명해보세요 커버 이미지](/assets/images/post/covers/dalle-til-cover-edit.png)
누군가 RESTful에 대해 설명해보라고 한다면 "과연 내가 어디서부터 어디까지 이야기할 수 있을까"에 대한 물음이 생겨서 포스팅을 시작하게 되었습니다. 기술면접에서 등장하는 질문 중에 하나로 꼽히고, 그 질문을 저 또한 받아 답하지 못했습니다. 꼭 면접이 아니더라도 백엔드 개발자로서 알고 있어야하는 부분임은 분명합니다. REST는 무엇인가 REST는 크게 서비스 아키텍처에 속하며, 웹 아키텍처 스타일의 한 형태입니다. REST는 일련의 "표준"이 아닌 "소프트웨어 아키텍처 스타일"이라는 점을 유의해야합니다.
2024년 02월 01일