211213 백엔드 GraphQL

211213

백엔드

  • 배포 채크리스트
    • 보안 관련한 키가 포함되어 있지 않은지?
    • 보안의 위헙이 되는 로그를 남기지 않는지?
    • 반응으로 민감한 정보를 넘기고 있지 않은지
    • API reate limits 를 정해야 한다. 사용자가 계속 API 요청을 반복적으로 하지 못하도록 막는것
  • mysql Aws 에서 사용하는 방법
    • 서비스 → RDS (관계형 데이터 베이스 생성)→ 대시보드 → 데이터 베이스 생성 → 표준생성 , 손쉬운 생성은 알아서 늘어남.. 과금 될 수도
    • mysql 설정
    • 텝플릿 ? 무료로 쓰려면 프리티어로
    • DB 인스턴스 → DB 이름 정하기
    • 자격 증명 설정 (꼭 기억) - 이름 비밀저호 설정
    • 스토리지 기본 20g , 스토리지 자동 조정 활성화 켜져 있으면 늘어나고 그럼 과금이 시작됨. 무료로 사용하려면 비활성화 해줌.
    • 퍼블릭 엑세스 예로 체크 dbeaver 같은데서 접근 가능하도록
    • 외부 접속 방법?
      • 서비스 → EC2 → 인스턴스 → 네트워크 및 보안 → 보안 그룹 → 인바운드 규칙 (외부로부터 열어놓을 포트)
      • 인바운드 규칙 편집 → 규칙 추가 → MySQL/Aurora 선택 → 기본포트로 3306 설정됨 aws msql default 값→ IP 대역 설정 0.0.0.0/0 어떠한 주소에서도 가능. → 규칙 저장
      • 다시 RDS 이동 → 열결및 보안 → 엔드포인트 및 포트 에서 엔드 포인트 확인 → 확인한 정보로 접속

GraphQL

  • 기존 RestAPI 의 단점을 보완해서 쿼리를 보내서 원하는 정보만 가져오도록 함.
  • 다양한 방법이 있는데 Apollo로 Server을 만들어서 구현해 볼 수 있다. (apollo-server)
  • typeDef : grapQL 스키마, Object(데이터 스키마), Query (쿼리 형태, 조회 할때), Mutaion( 생성, 변경, 삭제 할때 , resolve 도 mutation으로 설정해야 함.), Input → gql + tagged template Literals
  • resolvers : 구현체