처음부터 끝까지 사람이 쓰는 블로그

백엔드 없이 채용공고 검색 서비스 만들기

병무청 병역일터의 채용공고를 간편하게 검색할 수 있는 sangiyo.kr은 최신 공고를 보여주지만 백엔드가 없다. 그렇다고 프론트엔드에서 직접 병무청 API를 호출하는 것도 아니다. sanigyo.kr은 다음과 같이 굴러간다. 병역일터 API를 긁어서 채용공고 데이터 JSON을 만든다. 채용공고 데이터 JSON을 JS 번들에 통째로 삽입해서 프론트엔드에 넘긴다. 프론트엔드에서 JSON을 직접 선형 탐색하면서 조회를 수행한다. 요컨대 DB를 프론트에 통째로 넘기는 것이라고 할 수 있다. 그리고 이렇게 하려면, 기존 서비스를 다음과 같이 악용해야 한다. 로직단: 채용공고를 API로 가져와서 DB에 저장하는 AWS Lambda의 대체재로 GitHub Actions를 악용한다. 프론트단: DB를 통째로 받아와서 직접 검색을 수행하도록 브라우저를 악용한다. 로직단의 구조 로직단에서는 파이썬 스크립트로 병역일터 API를 긁어서 JSON으로 만들고, 프론트엔드 JS 번들에 넣는다. 해당 스크립트가 하는 일은 대략 이렇다. ...

2026년 6월 20일 · 3 분 · TrulyBright

달타냥 확률 일람

달타냥 확률정보 아이템 당첨 확률 $P(item)$은 다음과 같이 계산됩니다. $$P(item) = \frac{grade\_weight(grade)}{total\_weight(max\_grade)} \times \frac{1}{count(grade)}$$여기서: $grade\_weight(grade) = \begin{cases} 55 & \text{if } grade = \text{일반} \\ 31 & \text{if } grade = \text{희귀} \\ 13 & \text{if } grade = \text{영웅} \\ 3 & \text{if } grade = \text{전설} \end{cases}$ ...

2025년 11월 5일 · 6 분 · TrulyBright

유니티와 서버의 코드를 간편히 공유하는 법

유니티로 클라이언트를, .NET으로 서버를 짜면 클라이언트와 서버가 C#으로 짜인 인터페이스를 공유함으로써 API의 변경사항이 바로 반영되게 할 수 있다. 이때 인터페이스를 공유하는 방법으로는 여러 가지가 있는데, Git submodule: client, server, api라는 레포지토리 세 개를 만들고, client 레포지토리에 api 레포지토리를 서브모듈로 추가한다. server에도 똑같이 추가한다. 모노레포: MyGame이라는 레포지토리를 하나만 만들고, 루트 디렉터리에 /Client, /Server, /Api라는 디렉터리 세 개를 만든다. 각 폴더에 그에 맞는 코드를 넣는다. Symlink: API를 가리키는 Symlink를 생성하고 이를 클라이언트와 서버에서 사용한다. …기타 등등. 결국 클라이언트 프로젝트와 서버 프로젝트가 어떤 식으로든 파일을 공유해야 한다. 그러나 유니티 프로젝트의 Assets/ 디렉터리 밑에 서버와 공유하는 코드를 넣는 것은 우아한 방법이 아니다. Assets/ 밑에는 유니티만 쓰는 코드도 같이 들어 있기 때문이다. 공유 프로젝트 폴더를 유니티 프로젝트 바깥에 두고, 유니티와 서버가 제각기 그 공유 프로젝트 폴더를 참조할 수는 없을까? 이 글에서는 그걸 해내는 법을 알아본다. ...

2025년 9월 8일 · 6 분 · TrulyBright

개인정보처리방침

개인정보처리방침 ‘총잡이’는 ‘달타냥’을 운영함에 있어 이용자의 개인정보를 중요하게 생각하며, ‘개인정보보호법’ 등 관련 법규를 준수하고 있습니다. 이 개인정보처리방침은 총잡이가 어떤 개인정보를 수집하고, 수집한 정보를 어떻게 이용하며, 안전하게 관리하는지 설명하기 위해 작성되었습니다. ...

2025년 8월 15일 · 3 분 · TrulyBright