본문 바로가기

TIL&WIL71

250224 TIL - MVC 패턴 MVC 패턴프로그래밍 디자인 패턴의 일종으로, 애플리케이션을 모델, 뷰, 컨트롤러의 세 컴포넌트로 구분해 구현하고 관리하는 것 모델 Model"플레이어의 HP 데이터를 보관하는 모듈"데이터 자체 그 이상 그 이하도 아님다른 두 컴포넌트와 직접적으로 관계 맺지 않음 (= 모델에는 뷰나 컨트롤러와 관련된 코드가 있어선 안 됨)대신 이벤트 등을 통해 느슨하게 연결돼있음 (모델의 데이터가 변경되는 이벤트 발생 -> 뷰에서 리스너가 감지)뷰 View"플레이어의 스테이터스 UI를 담당하는 모듈"데이터를 사용자에게 보여주는 것 그 이상 그 이하도 아님 다른 두 컴포넌트와 직접적으로 관계 맺지 않음 (= 뷰에는 모델이나 컨트롤러와 관련된 코드가 있어선 안 됨)컨트롤러 Controller "사용자의 스텟 포인트 분배에 .. 2025. 2. 24.
250213 TIL - 자료구조 (그래프, 트리) 그래프 Graph"정점들과 그 정점들을 연결하는 간선들로 이뤄진 자료 구조"정점 Node, Vertex 연결된 개체 하나하나간선 Edge정점들을 이어주는 선 (정점 간의 관계를 표현해줌)차수 Degree하나의 정점에 연결된 간선 개수경로 Path하나의 정점에서 다른 정점으로 갈 때 거치게 되는 간선과 정점들의 집합방향성 Directed, Undirected간선의 연결이 단방향인지, 양방향인지순환성 Cyclic, Acyclic모든 간선을 한번씩만 지나며 모든 정점을 순회할 수 있는지, 순회할 수 없는지곁들이는 용어이외에도 모든 정점을 순회하는 경로인 Cycle, 노드가 본인에게 간선을 연결하는 Self-Loop 등이 있슴다!!트리 Tree"부모-자식 관계로 계층화된 노드들과 그 노드들을 연결하는 간선들로 .. 2025. 2. 13.
250207 TIL - Array와 Linked-List Array 각 칸에 Index란 고유 번호가 부여돼있다는 특성이 장점이자 단점으로 작용합니다!!조회원하는 값의 인덱스 번호만 알면 그 값에 바로 접근 할 수 있어서 압도적으로 빠름다!! 복잡도는 O(1)삽입 또는 삭제배열의 마지막 값에 대한 처리는 조회와 마찬가지로 빠름다!! 복잡도는 O(1)하지만 문제는 중간 위치에 대한 처리를 할 때인디, 바로 기존 요소가 위치한 칸들도 조정해줘야 한다는, 즉 위치가 변하는 값들에 대한 인덱스 매칭을 하나하나 새로이 해줘야한다는 불상사가 발생합니다...! 최악의 경우인 배열의 0번째 인덱스에 대한 처리라면 기존 모든 요소들의 인덱스 매칭을 다시 해야하니 복잡도 O(N)Linked-List매 값마다 포인터가 부착돼있어서, 그 포인터를 통해 다음 값을 식별할 수 있슴다!.. 2025. 2. 7.
250206 TIL - 슨배님들 훔쳐보기 슨배님들의 우아한 최종 프로젝트 훔쳐보기 - 서버 아키텍처우리 프로젝트에서 활용할 기술 스택을 참고해볼까하고 슨배님들의 깃허브를 염탐해보았는데, 같은 기간에 해낸 게 맞는지 경이로운 프로젝트를 발견했다... 특히 충격적이었던 점은 딱 해보고 싶던 분산 서버 구조였는데, 구성이 기가 막혀서 시간 여유가 된다면 찬찬히 따라해보고 싶은 그런 느낌이었다!! 오늘 염탐한 내용을 간단히 정리해보자!대략적인 디렉토리 구조크게 apps와 common이란 디렉토리로 구분하고 계셨는데, 전자는 각 마이크로 서버들이 존재하는 디렉토리였고, 후자는 그 서버들의 뼈대 및 패킷 정의나 DB 연동 로직 등 공통으로 활용하는 코드들이 있는 디렉토리였다!!commonconfig과 constants : 공용 환경변수 및 상수 들을 중앙.. 2025. 2. 6.
250205 TIL - BullMQ 학습01 - Introduction & connection bull과 bullmqbull먼저 개발된 녀석이고, Redis 기반의 큐 시스템을 제공해주는 라이브러리임다! ioredis 라이브러리를 내부적으로 사용하고 있는디, 현재 유지보수만 하고 신기능 개발은 하고 있지 않음!!bullmq같은 개발진이 만든 bull의 후속작임다! 당근 ioredis 라이브러리 내부 지원하구, Redis Streams 기반으로 동작해서 성능과 확장성이 더 좋대유! 특히 분산 환경(cluster)에서 더 안정적이고, TypeScript 지원이 더 잘 된다능. 그리고 이쪽이 계속 개발되는 중이라 미래지향적이라면 이쪽을 선택!!Redis StreamsRedis에서 제공하는 로그 기반의 메시지 큐 시스템이래요! 기존 Redis List 방식과 다른 점이 크게 둘인디, 첫번째는 스트림 기반.. 2025. 2. 6.
250204 TIL - protoc 실습해보기 protoc 설치https://github.com/protocolbuffers/protobuf/releases/tag/v29.3 위 링크에서 window 버전 protoc를 설치해준다!! 난 윈도우니까는...그리고 시스템 환경 변수에서 Path에서 protoc.exe가 있는 디렉토리를 추가해준다!!(아마 압축 해제해보면 bin 폴더가 있을 텐디, 그안에 protoc.exe가 있다) protoc 설치 확인 (버전 확인)터미널에 아래 명령어 입력해보자!! libprotoc 29.3 이런 느낌으로 출력되면 설치 및 설정 잘 된 것이여!!저게 그 전설의 립버전할 때 그 립인가 세상에마상에protoc --version proto 파일 변환protoc : Protocol Buffers Compiler 호출하기--p.. 2025. 2. 5.