본문 바로가기

전체보기178

실시간 유저 재화를 위한 kafka 도입 1.  작업 배경앱 내에 기존에 유저 테이블에서 유저들의 보유한 재화를 포함한 정보들을 저장하고 있었다. 실시간으로 update 될 만한 기능이 존재하지 않아서 API 요청에 따른 RDB데이터를 업데이트하곤 했었는데 이번 신규 기능 업데이트로 인해 유저가 보유한 재화를 실시간으로 지급, 소모시켜야하는 경우가 생겼다. 현재 구조로는 실시간으로 update를 할 시, DB 부하가 심할 것으로 예상되어 다른 구조로 개선 작업이 필요 했다. 2.  작업 방향유저가 보유한 재화를 redis에 저장하고 비동기로 메세지 큐(MQ)를 사용하여 RDB에 최종적으로 히스토리를 저장하는 형태로 구조를 변경하기로 했다. 빠르게 데이터를 저장하고 삭제, 수정할 수 있는 한 휘발성 데이터이기에 재화에 관련된 데이터가 날아간다면 .. 2024. 8. 16.
젠킨스로 CI/CD 자동화 구성 1. 구성 배경팀 내 서비스들이 젠킨스를 통해 배포하도록 구성이 되어있었다. 입사하고 나서 개발 작업을 완료하여 gitlab에 push하고 나서 develop 브랜치에 merge 한 뒤 젠킨스 웹에서 해당 서비스를 develop 브랜치로 배포하여 개발서버에 적용하곤 했었는데, 이러한 젠킨스 배포 라인을 어떻게 구축했는지 궁금했고 하나의 mock 서비스를 직접 구성해보기로 했다. 2. 구성하기 위한 관찰ssh로 접근가능한 개발 원격서버에 컨테이너가 띄워져 있고 컨테이너에서 각기 다른 서비스들의 이미지가 올라가있었다. 알고 있는 도커 상식으론 Dockerfile로 프로젝트 서비스 이미지를 만든 뒤 컨테이너 이미지를 만들고 이미지 레포지토리에 push -> 배포 하는 것을 자동화해야한다고 생각했다. 환경변수 .. 2024. 8. 16.
임베디드 리눅스 마이닝 펌웨어 개발 보호되어 있는 글 입니다. 2024. 8. 15.
온체인 마켓 플레이스 개발 1. 역할과 기여외부 SDK와 API를 연동하여 서비스 내에 존재하는 유저들의 NFT를 사고 팔 수 있는 마켓플레이스를 개발한다.클라이언트와 서버 모두 작업하며 웹 퍼블리싱 파일은 초기 구조만 전달 받아 React 기반 nextJs로 재구현한다.추가 기획에 따른 기능들은 퍼블리싱 없이 nextJs에서 직접 구현한다.2. 온체인 마켓 플레이스 소개1. 개발 배경서비스 내에 유저들은 NFT를 소유하고 있다. 해당 NFT를 블록체인상에서 자유롭게 구매/판매 할 수 있는 공간이 필요했고 이를 통해 거래 수수료로 부가적인 수익을 얻을 수 있었기에 개발을 시작하였다. 특히 과거에 KIFT라는 온체인마켓 플레이스를 개발해본 경험이 있었으며 블록체인과 지갑 그리고 거래 방식에 대해 잘 알고 있었기에 개발에 더욱 적극적.. 2024. 8. 15.
(2) 타입스크립트 type Symbol 고유하고 수정 불가능한 값으로 만들어준다. 접근제어에 용이 1. 타입으로 사용하여 소문자 symbol 2. 함수로 사용하여 대문자 Symbol Symbol("value") // 고유한 값 생성 Undefined & Null 둘다 소문자로만 존재한다. config를 만지면 모든 타입에 서브타입으로 존재할 수 있다. --strictNullChecks를 사용하면 null과 undefined를 자시자신 타입에만 사용 할 수 있다. 이 경우 유니온 타입으로 사용 할 수 있다. void 타입에는 undefined만 올 수 있다. 자바스크립트 런타임에서 typeof로 null은 object가 나오고 undefined는 undefined가 나온다. object 타입이 object { } | [ ] decl.. 2022. 7. 14.
(1) 타입스크립트 설정 기본 타입스크립트 설치 1. npm i typescript -g 로 전역설치 타입스크립트 컴파일러 tsc test.ts 처럼 tsc 명령어를 사용해 컴파일해서 plain한 자바스크립트 파일로 만들어줌 tsc로 전체 컴파일시 컴파일 옵션 설정 tsc --init 를 사용하여 tsonfig.json을 생성후 tsc명령어시 폴더안에 든 ts파일들이 옵션에 맞게 모두 컴파일 됨 .ts 파일 변경시 자동으로 자바스크립트가 컴파일 되도록 설정 = 와치모드 (watch mode) tsc -w 2022. 7. 12.