프로젝트 1주차

주현·2022년 9월 14일
0

project

목록 보기
4/9

문제점이랄까? 고민하고 선택해야하는 문제들이 발견되었다

일단 우리는 독서웹을 만들기로 결정을 했는데

  • DB의 문제

  • OPEN API의 문제


  • DB로 모든 데이터를 저장해야하는 건지 open api로 계속 불러올지, 캐시로 나눠서 저장할지
    근데 우리는 서비스 운영 초반이거나 규모가 작은, 사용자가 많지 않은 서비스의 경우중에서 해당된다고 생각하여 모든 데이터를 저장하기로 했다

  • http로된 open api를 https에서 어떻게 불러올건지, 우리는 쪽수가있는 도서 api를 원해서 찾아본결과 알라딘api를 쓰려고 했으나 http로되어있어서 proxy를 통해서 불러오는걸로 찾아보고 멘토분에게도 물어보았는데, 우리 서버를 통해서가져오는경우 AWS를 쓴다고할 경우 과금이 비싸고, 다른 사이트를 이용하려고 했는데 하루 100회라는 무료와 5000원정도의 결제 시스템이 있었다 그러다가 API를 따로따로 쓰는 방법도 있다는걸 알았고 검색에서는 https로 연결된 api와 쪽수만 불러오게하는 api로 나누어서 가져오기로했다. (왜냐하면 쪽수가있는 도서 api가 알라딘api와 중앙도서관에만 불러올수 있었고 중앙도서관은 이미지가 없어서 중앙도서관으로 다 조회하는게 아닌 쪽수만 가져오기로 했다. 그리고 다른 조회는 다른 OPEN API로 필요한 데이터를 가져오기로 했다)

<DB로 모든 데이터를 저장할시 이점과 결점>

  • 이점
  1. open api가 불러올때 오류가 나면 데이터를 못 불러오는 문제가 발생될때, DB에 저장된 모든 데이터를 가져오기때문에 클라이언트는 오류없이 웹을 사용할수있다.
  • 결점
  1. DB에 저장하는 데이터들이 많고 회원의 수가 많아질수록 query가 많아지면서 부하가 올 수 있고 서비스가 느려진다.(DB를 업데이터를 하거나 서버를 늘리기가 쉽지않다.)
  2. open api가 업데이트 되었을때, 업데이트가 빠르게 적용가능하지않다.


<open api로 계속 데이터를 불러오기 이점과 결점>

  • 이점
  1. open api로 데이터를 가져오기때문에 , DB가 과부화(?)가 걸리지 않고 회원자의 수가 많아 져도 부담이 되지않는다.
  2. open api가 업데이트되면 알아서 업데이트가 되기때문에 매번 DB를 수정하지않아도 된다.
  • 결점
  1. 계속 open api를 가져와야하기 때문에 받아오는게 느릴수있다.
  2. 우리가 확인한 바로는 https로 웹을 만들면 http로 되어있는 사이트를 받아올 수 없어서 cors의 오류가 난다.

궁금해서 찾아본

<DB에 저장하되 나눠서 cache로 저장>

  • 캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간, 즉 인메모리 데이터베이스

이 방법에도 이점과 결점이 존재한다

  • 이점
  1. 캐시 서버에서 첫 번째 요청 이후 저장된 결괏값을 바로 내려주기 때문에 DB의 부하를 줄인다.
  2. 반복적이고 동일한 요청과결과값, 자주 조회되는 데이터에 대해 캐시에 저장함으로서 불러오는 데이터 엑세스의 속도가 빨라져 서비스의 속도 빨라진다.
  • 결점
  1. 메모리 관리(처리하는 시간이 오래걸리는 요청이나 명령은 피하는게 좋다.
  2. 서버에 장애가 발생할경우 데이터 유실이 발생할 수 있다.
  3. DB에 저장과 마찬가지로 업데이트가 자주 발생할 수 없다.
  4. 데이터가 업데이트가 잦은경우 비즈니스 로직 문제가 발생할수 있다 그래서 캐싱대상은 될 수 없다.

  • 캐시 서버로 이용할 수 있는 Redis를 사용해 보기
    Redis를 기준으로 캐시를 적용하는 방법을 찾아보고 활용

  • Local Cache vs Global Cache 에 대한 차이는

두개의 내용에 대해서는 다음 벨로그에 써보려한다.

profile
능력있는 개발자가되고싶다!

0개의 댓글