본문 바로가기

전체 글

(93)
생각정리 그냥 할 것 들어가며운동을 시작한지 어느덧 3개월이 지났다. 학창시절부터 꾸준하게 운동을 해왔지만, 거의 5년 간 직장생활을 하면서부터 운동을 안 해오던 탓에 체력이 아주 형편없을 정도였다. 매번 헬스장 등록을 해야지라고 다짐해도 집에서 헬스장, 직장에서 헬스장 등 여러 동선과 시설 등을 따져보는 과정에서부터 지쳐서 운동을 미뤄왔던 것 같다. 6월 초 토요일, 어느때와 다름 없이 카페에 가서 코딩하고 있는데, 맥북이 고장나버린 탓에 서비스 센터에 맡겨놓고 서점에 들렸다가 시간이 남아 돌아서 직장 근처에 있는 헬스장으로 발걸음을 돌렸다. 등록하자마자 신나서 약 3시간 동안 운동했던 모습이 떠오른다. 그리곤 일요일 하루종일 온 몸이 쑤셔서 그냥 누워서 하루를 보냈다.생각 그릇 비우기위에서 잠깐 언급한 헬스장에 등록하는 ..
생각정리 여름이었다 들어가며8월 말, 여름의 끝자락에 워크샵을 다녀왔다. 몸 상태도 회복이 안 되었을 뿐더러 토요일을 끼고 다녀와야 했던 터라 크게 기대는 하지 않았다.평범한 금요일감기 몸살로 1주일째 고생하고 있었다. 바이러스성 인후염과 편도염까지 동시에 걸린 탓에 시름시름 앓다가 출근했다. 운전을 해야하는 상황이다보니 차마 워크샵을 뺄 수도 없었다.'난 오 늘 신데렐라가 될 것이다. 12시 땡 하면조용히 차에 들어가서 약먹고 자겠노라' 다짐하며 출근했다.오전에 업무보다가 병원에서 진료받고, 오후 3시에 서울에서 가평으로 출발했다. 항생제가 포함된 약기운 탓인지 약간의 몽롱한 기운으로 운전을 했지만, 잘 도착했다.서울을 빠져나오는데 약 2시간 걸렸다.연수원(이라고 불리우는 펜션)에 도착했으나 펜션을 구경할 틈도 없이 밀린..
생각정리 2024년 상반기 회고 들어가며2024년도 벌써 4개월 밖에 남지 않았다. 올해 또한 매우 정신없이 흘러갔구나 싶다. 늦었지만 2024년도 상반기의 내게 있던 주요 일들을 정리하면서 회고하는 시간을 갖고자 글을 남긴다.1. 준비2023년 11월 말에 퇴사한 이후 2024년 04월에 이직을 하였다. 잠시 쉬는 기간 동안에 그 동안 해보고 싶었던 것들을 시도해보고 공부하는 시간을 갖었던 것 같다. 블로그에 올린 것들도 있고, 올리지 않은 것들도 있는데 약 2~3개월 간 집과 카페를 오가며 매일 프로그래밍 공부를 하면서 참 많은 생각이 들던 때가 아니었나 싶었다. 특히, 주변에서 '젊음을 낭비하지 말고 놀아라', '연애나 좀 해라' 등의 말들로 내게 관심을 표현할 때마다 참 많은 생각이 들었던 것 같다. 그러면서 아래와 같은 질문을..
Development/기타 새로운 취미, npm 패키지 배포 과정 정리 들어가며 요즘 또 새로운 취미가 생겼다. 그건 바로, 정리. 여태 진행해왔던 여러 프로젝트의 코드를 주욱 살펴보면서 반복되는 코드를 어떻게 정리할까를 고민해왔다. 처음에는 GitHub Submodule로 관리해오다가(예전에 이와 관련한 글을 올린 적이 있음), 매번 프로젝트를 생성할 때마다 Submodule을 설정하려니 매우 귀찮음을 느꼈다. 그 귀찮음과 더불어 서브모듈의 코드를 수정해야하는 상황이 빈번하게 발생하니, 결국에는 서브모듈을 사용하지 않게 되었다. 이런 삽질을 계속 해오면서 다음과 같은 생각이 문득 들었다. 아, 그냥 나만의 BoilerPlate를 만들자. 여러 서브모듈을 하나의 프로젝트에 녹이기는 꽤나 머리 아픈 작업이었다. 처음에는 NestJS Monorepo로 BoilerPlate를 만..
Development/기타 NestJS ExecutionContext와 ArgumentsHost 들어가며 Docker로 ElasticSearch, Logstash, Kibana를 이것저것 설정하면서 놀다가 실제 로그를 쌓아줄 서버가 필요해서 바로 NestJS 프로젝트를 생성했다. GitHub/choewy/nestjs-logger-boilerplate 이것저것 설정을 변경해보며 구글링하면서 놀던 중에 StackOverflow에서 재미있는 질문을 보았다. NestJS의 Filter에서 host(ArgumentsHost)를 통해 핸들러 정보를 가져오는 방법에 대해 알려주세요. 약 1년 전, 필자가 실제로 겪었던 상황이었기에 자세한 내용을 안 보고도 질문자가 무엇을 원하고 있는지 충분히 짐작할 수 있었다. 해당 질문에 대한 답은 NestJS 공식 문서에 명확하게 기재되어 있었으며, 주말에 따로 시간내서 공..
Development/기타 MySQL 인덱스(Index) 개인 스터디 실습 및 정리 들어가며 요즘 백엔드 개발자의 필수 역량이자 꽃이라 불리우는 대용량 트래픽 처리에 관련한 공부를 하고 있다. 그 중 데이터베이스 인덱스에 관련한 내용을 공부하였고 직접 테스트해보며 정리한 내용을 작성하였다. 1. 인덱스란? 인덱스는 탐색 범위를 최소화할 수 있는 정렬된 자료구조이다. 먼저, 아래 주어진 숫자들 중에서 8을 찾아보자. [2, 5, 3, 1, 4, 7, 6] [1, 2, 3, 4, 5, 6, 7] 사실 위의 두 배열 중에서 8은 없다. 위의 두 배열 중에서 어느 배열이 8이 없다는 사실을 알기까지 더 짧은 시간이 걸리던가? 조금 더 자세한 예시를 살펴보자. 아래 학생들 중에서 수학 점수가 가장 낮은 학생의 이름를 찾아보자(현재 ID에만 인덱스가 적용되어 있다). ID 이름 국어 수학 영어 1..
Development/기타 MacOS(M1, M2) Docker를 활용한 팔월드(PalWorld) 서버 구축 방법 들어가며 지난 글에 이어 MacOS(M2)에서 Docker로 PalWorld 서버를 구축하는 내용을 정리해보았다. M1, M2 MacOS 뿐만 아니라 ARM Linux도 적용 가능할 것이라 생각한다. 만약, 본인의 Mac이 Intel Chip인 경우 본 글을 볼 필요가 없다. 누군가 벌써 Docker Hub에 Image를 올려놓았고, 해당 이미지를 그대로 활용하였다. DockerHub - nitrog0d/palworld-arm64 1. 사전 준비 Docker로 서버를 실행할 것이기에 당연히 Docker가 설치되어 있어야한다. 아래 링크에서 Docker Desktop for Mac with Apple silicon 버튼을 클릭하여 Docker Desktop을 설치한다. 팔월드의 최소 사양은 아래와 같으며,..
Development/기타 MacBook(M2)으로 팔월드 서버 구축하다가 작성한 CPU 종류와 아키텍처 들어가며 요즘 Steam에 Early Access로 출시된 팔월드(또는 팰월드, Palworld)가 핫한 게임인 듯하다. 디아블로4 출시 당시 game-porting-toolkit을 통해 MacBook(M2)에서 플레이한 기억을 떠올려 팔월드 또한 맥북에서 실행할 수 있지 않을까?라는 생각으로 여러 시도를 하였으나, 전부 수포가 되었다. 결국 오랫동안 잠자고 있던 다른 노트북을 꺼내 Windows 11로 업그레이드 하고 팔월드를 설치 후 플레이하였다. 주변에도 팔월드 플레이어가 하나둘씩 늘어가기 시작했고, 멀티 플레이를 하기 위해 팔월드 서버를 구축하고자 하였다. 맥북에서는 팔월드를 플레이할 수 없으니 맥북으로 팔월드 서버를 구축하고자 Docker Ubuntu22.04 이미지를 활용하여 다양한 시도를 하..
Development/Web R U Dead Yet? - RUDY Attack에 관한 궁금증을 풀어내다. 들어가며 오늘은 지난 글에서 언급했던 RUDY(R U Dead Yet?) 공격에 대해서 공부하고, 직접 실습해보면서 얻게된 정보를 정리하고자 한다. 1. DoS RUDY 공격 또한 DoS 공격 중 하나이므로 DoS에 대한 간단한 내용부터 알아보겠다. DoS는 Denial of Service의 약자로, 서비스 거부 공격이라는 의미이다. 이는 공격 대상 시스템 또는 서버에 과도한 부하를 발생시켜 다른 이들이 서비스를 이용하지 못하도록 방해하는 공격 기법이다. DoS 공격에는 여러 공격 기법이 있으며, 알아본 내용에 따르면 크게 두 가지 성격으로 분류할 수 있다. 1.1. DDoS 가장 잘 알려진 DDoS(Distributed Denial of Service, 분산 서비스 거부 공격)가 있다. 이는 서비스 중..
Development/기타 Tistory 본문 글 목차 자동 생성 기능 구현 들어가며 예전부터 해야지... 해야지... 했던 Tistory 목차 생성 기능을 구현했다. 기능 구현 난이도는 매우 쉬움이었으나, 귀차니즘 + 외주 프로젝트 개발로 인해 계속 미루어두고 있었다. 외주 프로젝트 개발이 잘 마무리되어 후기를 작성하다가 목차 생성 기능 구현이 번뜩 떠올라 구현 후 글을 작성하였다. 1. 개요 목차 생성 기능은 매우 간단하다. 해당 제목이 포함된 글 본문 태그를 찾아서 모든 제목 태그를 파싱한 후 새로운 목차 태그를 생성해서 넣어주기만 하면 되기 때문이다. Tistory를 포함한 대부분의 웹 페이지 본문 글에는 제목이 있으며, 이 제목은 주로 ~ 태그로 구성되어 있다. 이를 확인하려면 제목처럼 보이는 텍스트에 마우스를 올려놓고 우클릭하여 검사를 누르면 브라우저 개발자 도구에 해..