Skip to content

0812

DB

커넥션풀

  • 커넥션이란 무엇인가
    • 애플리케이션과 데이터베이스 간의 통신을 가능케하는 수단
  • 데이터베이스 연결 구조
    • 2Tier: 프로그램이 직접 데이터베이스 서버에 접근하여 데이터를 액세스하는 구조
    • 3Tier: 프로그램과 데이터베이스 서버 사이에 미들웨어 계층이 존재하는 구조
      • 미들웨어: 운영체제와 애플리케이션 사이에서 조정 및 중계 역할을 하는 소프트웨어
  • 커넥션 풀은 뭔가
    • 커넥션 객체를 미리 만들어서 pool이란 곳에 저장 해두는 기법
    • 왜 이렇게 해야되는가: 반복적인 커넥션에 드는 비용을 줄이고, 클라이언트가 DB에 빠르게 접속할 수 있도록 하기 위해서
    • 어떤 비용?
      • 네트워크 관점 -> handshake 비용 ↓
        • DBMS와 애플리케이션의 통신은 TCP/IP. 해당 과정의 모든 요청은 실제 물리적 회선을 거쳐 이뤄짐. 3-way handshake 과정을 매번 반복한다면 비효율적
  • 그럼 커넥션풀을 무조건 크게 만드는게 좋을까?
    • ㄴㄴ 커넥션의 주체는 스레드이기에 얘를 함께 고려해야됨.
  • 참고 자료

zustand VS context api

  • 둘 다 전역에서 상태를 관리하는건데 뭔 차인가?
  • context api를 사용할 시엔 루트 레이아웃에 프로바이더로 감싸줘야된다.
  • 아니면 페이지별로 감싸던가.
  • 근데 굳이 프로바이더로 감싸지 않고 싶고, 보일러플레이트가 있는데 줄이고 싶다면 zustand를 쓰면 된다.
  • 무조건 메모리나 cpu 사용량과 같은 성능 관점에서만 코드를 보는게 아니라
  • 유지보수성을 고려해서도 zustand를 선택하는게 이유가 될 수 있다고 생각한다.