인프런 커뮤니티 질문&답변

현석오님의 프로필 이미지
현석오

작성한 질문수

Prisma로 알아보는 postgreSQL와 mongoDB

nestjs 와 redis 연결

nestjs caching 관련 docs 도 조금 달라진것 같아요

작성

·

289

0

안녕하세요 강사님

 

nestjs 와 redis 연결 부분도 조금 달라진거 같아요 필요 모듈이 하나로 줄은것 같아요

 

https://docs.nestjs.com/techniques/caching

 

여기까지 강의 잘들었는데요

 

조금 어려운게 인덱스 부분도 그렇고 캐싱 부분도 그렇고 디비 관련 부분들은 좀 생소하고 난해하네요

디비 수정뒤 format push genrate 하는것도 뭘 하는건지 아직 잘 이해가 안가요

 

다음 강의로 디비 이론과 설계만 집중적으로 다루신다고

 

해서 기대중이에요

 

감사합니다

답변 1

0

yongsoocho님의 프로필 이미지
yongsoocho
지식공유자

좋은 말씀 정말 감사합니다 :)

제가 현재 spring 강의를 촬영 중이라 nestjs 에 전혀 신경을 쓰지 못하고 있었네요.. 최대한 빨리 강의를 추가해야 할 것 같아요!

일단 정말 죄송한 소식이지만, db 강의는 준비할 것이 너무 많아 현실적인 문제로 spring과 nestjs(백엔드) 강의를 촬영하고 그 뒤에 나오기로 되어있습니다. 대신 실망 시켜드리지 않을 강의 약속 드리겠습니다 :)

나중에 DB를 배우시면 알겠지만 간단한 답변 드리겠습니다 ~ (정말 깊게 들어가면 정답은 아닙니다.)

  1. 조금 어려운게 인덱스 부분도 그렇고 캐싱 부분도 그렇고 디비 관련 부분들은 좀 생소하고 난해하네요

    1. 인덱스는 꼭 필요한 것이 아닙니다. 검색 속도를 높이기 위해서 원하는 정보가 어디있는지 미리 체크해 두는 것 입니다.
      예를 들어 큰 도서관을 가서 원하는 책을 찾을 때 굉장히 오래 걸릴텐데요.
      책꽂이마다 문학, 자기개발, 소설, 컴퓨터 .. 등 이런식으로 혹은 ㄱ1~ㄱ100, ㄴ1~ㄴ100 ..처럼 표시가 있다면 책을 더 빨리 찾을 수 있겠죠? 이런 원리랑 비슷하다고 보시면 됩니다.

    2. 인덱스가 무조건 정답은 아닙니다. 조회 속도는 빨라지지만, 삽입, 수정, 변경은 느려지기 때문입니다. 정보가 삽입, 수정, 변경이 될 때마다 인덱스가 새로 바뀌기 때문입니다.

    3. 그래서 나온 해결책 중 하나가 캐시입니다. 캐시는 읽는 속도가 굉장히 빨라서 자주 조회되는 정보들을 저장해두었다가 꺼내 읽어주는 것입니다. (캐시는 RAM, DB는 HDD기 때문에, RAM 이 압도적으로 빠릅니다.)

  2. 디비 수정뒤 format push genrate 하는것도 뭘 하는건지 아직 잘 이해가 안가요

    1. 이 것은 깊게 들어간다면 패러다임 얘기로 들어가야 하는데요. 결론적으로 말하면 백엔드와 DB는 태생적으로 다릅니다.

    2. 그렇기 때문에 (백엔드<->영속계층<->데이터베이스) 사이에 하나의 보이지 않는 계층이 생기는데요. 이건 nestjs 뿐 아니라 다른 백엔드도 마찬가지 입니다.
      쉽게말하자면 미국인과 한국인이 대화하는데 사이에 통역사를 두고 얘기한다고 생각하시면 됩니다.

    3. push 는 진짜 데이터베이스(DB) 에 변경사항을 적용하는 것을 의미합니다

    4. generate 는 영속계층(nestjs에서는 prisma client라고 부릅니다)에 변경사항을 적용합니다.

    5. format 은 꼭 안 하셔도 되는데 일단 눈에 보이기에 깔끔히 정리되고, 문법이 틀린 것이 있는지 체크해주기 때문에 거의 다합니다.

현석오님의 프로필 이미지
현석오

작성한 질문수

질문하기