Siner's Blog


awscheat sheetcomputer sciencecontainercrawlingdartdatabasedjangodockergitgolanggraphqlhrhttpiacjavakubernetesmapmonitoringnestjsnetworknodeooppythonsecurityserverlessstorageterraformttbkktypescript,javascriptuxvalidation

https://user-images.githubusercontent.com/34048253/138466775-b360166d-c345-478a-95ce-b437de512469.png
떡볶이맵 제작기 #3 - 지도 API Pagination 적용기
4000개의 지도 데이터를 느려보이지 않게 불러와서 로딩하기
4 min read2021.10.24

떡볶이맵의 데이터가 점점 많아지면서 marker cluster용 api를 구축해야 했지만, 어떠한 라이브러리가 좋은지 파악하지 못했고 (내가 직접 구현할 수도 있고) best practice를 공부하지 못했기 떄문에 해당 작업을 잠시 뒤로 미루게 되었다. 하지만 전국 떡볶이 데이터가 1000개를 넘어가던 시점부터 쎄한 느낌이 들었고, 응답까지 상당히 많은 시간이 소요됐기 때문에 지도에 데이터가 늦게 떠서 상당히 불편했다. 페이지네이션을 적용한 이후인 현재 데이터를 4000개정도이다. 스크린샷 2021-10-22 오후 10 59 00 나름 기발한?생각으로 장소 데이터를 가져오는 api에 페이지네이션을 적용해보기로 했다. 테이블 형태의 페이지네이션 api라면 한번의 요청에서 limit만큼의 데이터를 받으면 될 일이지만, 지도에서는 모든 데이터를 불러와야 하기 때문에 아래와 같은 api 시나리오를 구성했다. 해당 지도 bound내의 count를 가져오는 api…

https://user-images.githubusercontent.com/34048253/134799280-8708fa31-c456-48e6-b9d2-9d7ccd7845ec.png
떡볶이맵 제작기 #2 - 에러 모니터링
홈서버가 죽었을때 슬랙으로 모니터링하기
6 min read2021.9.26

문제점 떡볶이맵의 백엔드 서버는 홈서버에서 운영되고 있기 때문에 해당 서버의 헬스체크는 홈서버 내에서 이루어질 수 없었고, 이로 인해 정전 등의 이유로 컴퓨터가 꺼지는 등의 장애 상황을 신속하게 파악하기 힘들었습니다. 해결방안 이러한 문제점을 해결하기 위해 외부에서 홈서버의 건강상태를 체크해주는 API를 만들어야 했습니다. 떡볶이맵 서버와 상관없는 홈서버 자체의 API를 만들어서 헬스체크를 할 수도 있었지만, 좀더 다양한 상황에 유연하게 대처가 가능하도록 떡볶이맵 클라이언트에서 api 요청시에 실패하는 경우에 모니터링을 받는 식으로 구축을 하고 싶었습니다. 두가지 방식이 생각이 났는데, sentry를 frontend에 연동하는 방법이 있고, 다른 하나는 api 요청 실패시 serverless api를 통해 슬랙으로 노티를 받는 방법이 있었습니다. sentry vs slack sentry를 사용하는건 간단하지만 실시간으로 noti를 받으려면 team plan…

https://user-images.githubusercontent.com/34048253/155850316-5fe00d64-13dc-48cc-8f63-0df29c77f7af.png
리눅스에 구글드라이브 연동하여 백업스토리지로 활용하기
rclone과 crontab을 활용한 데이터베이스 백업 프로세스
4 min read2021.9.10

작년에 지인이 rclone, google drive, cloudbox를 활용하여 구글드라이브에 올린 영상을 plex라는 어플로 감상할 수 있도록 구축한 경험을 들은 적이 있었다. (구글드라이브 저장소를 친구들과 공유하고, plex계정도 친구초대가 가능해서 이부분에서 시너지가 폭발하는 듯 했다) 나는 영화도 잘 보지 않았기 때문에 그냥 그런 좋은 활용방법이 있구나 하고 넘어갔었는데, 최근에 홈서버를 새로 구축하면서 데이터베이스의 백업이 제대로 이루어지지 않아 문제가 발생한 적이 있어서 이번에 새로 서버를 구축하면서 rclone과 google drive를 연동하여 리눅스에 마운트된 디렉토리에 주기적으로 database backup을 남겨야겠다는 필요성을 느꼈고, 구축 경험을 남기고자 한다. rclone homepage / github rclone은 클라우드 저장소와 저장소를 동기화시켜주는 오픈소스 프로젝트이다. 지원하는 클라우드 저장소는 amazon s3, googld drive…

https://user-images.githubusercontent.com/34048253/126061816-16961267-3c95-4978-883c-8621ba16c29e.png
떡볶이맵 제작기 #1
문득 떡볶이가 먹고싶을때, 이곳을 방문하라
6 min read2021.7.18

10주전 새로운 토이프로젝트가 뭐가 있을까 고민하다가 1주일에 한번은 먹어야 하는 떡볶이를 아이템으로 한 떡볶이맵을 만들어 보기로 결심했다. 도메인을 먼저 정하는게 중요했는데, 떡볶이의 영어발음인 tteokbokki는 너무 길고, 한국인이 저 철자를 다 외우는 사람이 많지는 않다고 생각되어 ttbkk.com라는 간단한 도메인을 구입했다. (12달러로 .com치고는 매우 저렴했다) iitc라는 지도 관련 오픈소스를 알고 있었기 때문에, 여기에서 쓰이는 코드를 활용하고자 leaflet이라는 map 라이브러리를 사용해보기로 했고, 기존에 익숙하게 사용하던 react와 요즘 대세?인 recoil을 도입해보기로 했다. typescript는 지도 라이브러리를 사용하기에 매우 불편했다... 이건 js인가 ts인가... 한국은 현재 국외로 지도반출이 불가하여, 구글맵에서는 9호선 데이터 등의 최신정보가 반영되어 있지 않아서 naver맵이나 kakao맵을 사용해야 했다. 하지만 leaflet…

1