나만의 오픈소스 라이브러리 제작기

CWIN·2023년 7월 15일
0
post-thumbnail

Library

많은 개발자들은 오픈소스 라이브러리를 사용합니다.

라이브러리와 개발자는 때놓을 수 없을 정도로 중요한 사이죠.

그래서 저는 이번에 서버를 만들면서 생긴 함수와 기능들을 라이브러리화 시켜서
저만의 Cachero라는 라이브러리를 직접 제작했습니다.

이 글에서는 제작 과정느낀점들을 작성해보죠.

필요성

서버에서 캐시는 빠질 수 없을 정도로 중요한 요소입니다.

캐싱 전략에는 다양한 방법이 있는데 가장 일반적인 방법은

  1. 캐싱된 데이터 확인
  2. 있을 경우 캐싱된 데이터 전달
  3. 없다면 DB에서 데이터를 받아온다
  4. 받아온 데이터를 캐시에 저장

일단 이 방법에는 여러 문제점이 있습니다

Get 요청만 캐싱이 가능하고
데이터가 업데이트 되어도 바로바로 적용이 힘들다는 것입니다.

저는 서버를 제작하면서 이런 문제점들을 해결해줄 Cachero를 구상하였습니다.

구현

Cachero는 캐싱된 데이터를 DB처럼 사용합니다.

캐싱된 데이터에 Create, Update, Delete를 적용하고
Get 요청이 오면 데이터를 알맞게 재가공해서 전달해줍니다.

마치 Hero처럼 SQL 쿼리가 실행 될뻔한 요청들을 구해줘서
Cachero라는 이름으로 작명하게 되었습니다

저장된 데이터들을 스케줄러를 통해서 특정 시간마다 DB에 일괄저장이 되고

만약 서버가 다운되도 데이터가 저장되도록
Redis 클라우드에 자동 저장 되는 기능도 제공이 됩니다.

과정

  1. 셈플 라이브러리 제작 (가능성 확인)
  2. 기능 정리와 세분화
  3. Select의 Form 해석과 실행 구현
  4. Create, Update, Delete 구현
  5. 일괄 저장과 스케줄러 제작
  6. Javascript에서 Typescript로 언어 변경
  7. 모듈 버전에 맞게 적용되도록 build 코드 작성
  8. README 작성
  9. NPM Publish

제작에는 딱 1개월이 걸렸네요.

라이브러리 제작을 하면서 생각보다 너무 재밌게 만들어서 놀랐고
만들면서 배운점도 많았고 직접 나만의 라이브러리를 만든다는 느낌이 정말 좋았습니다.

간단히 오늘은 제가 직접 만든 라이브러리인 Cachero에 대해 소개해 봤습니다
다른 개발자분들도 자신만의 라이브러리를 한번 만들어 보는게 정말 좋은 경험이 될것같아요.

Github에 스타 하나 주신다면 큰 힘이 될겁니다!

Github : https://github.com/KAWAN426/Cachero
NPM : https://www.npmjs.com/package/cachero

profile
Love Self Study & 1 Day 1 Commit

0개의 댓글