본문 바로가기
반응형

데이터베이스6

AWS RDS PostgreSQL에서 Slow, Error, DDL 쿼리 발생시 Slack 발송하기 이전 글 에서 RDS에서 Slow Query가 발생했을때 Slack을 발송하는 것을 구현했다. 이번 시간에는 해당 코드를 발전시켜서 Slow, Error, DDL 쿼리들을 각각의 채널에 발송시키도록 Lambda 코드를 개선해보자. 이후에 이 코드는 Serverless 등의 프레임워크로 교체될 예정이다. 1. 구조 가능하면 AWS Lambda는 각각 하나의 기능만 담당하도록 구성하고 싶었다. 하지만 CloudWatach의 로그 스트림에서는 구독 필터를 2개밖에 할당하지 못한다. 즉, Slow, Error, DDL 등 종류별로 Lambda를 만들어서 구독을 시킬 수가 없다. 그래서 하나의 Lambda에서 로그 종류를 구분해서 각각 Slack 채널에 전송하도록 구성해야한다. 물론 하나의 Lambda가 Gate.. 2023. 4. 13.
DataGrip 에서 안전하게 Command 수행하기 DataGrip을 포함한 GUI 도구로 운영 DB에 쿼리를 수행하는건 항상 조심해야한다. 하지만, 매번 모든 쿼리를 사람이 주의해서 수행하는건 불가능하며, 사람이라면 무조건 실수를 할 수 있다. 사람인 이상 잘못된 쿼리를 실행할 수 있지만, 이게 최대한 치명적인 실수가 발생하지 않도록 장치를 둘 순 있다. 그래서 가능한 실수를 할 수 없는 환경을 조성해서 진행하는게 필요하다. 1. Reader DB 활용 보통 클라우드 서비스를 사용하거나, 어느정도 정비가 되어있는 상황이라면 Reader DB (Replica DB) 가 존재한다. GUI 도구를 사용하다보면 의도치 않게 UI 상에서 데이터 수정을 일으킬 수 있다. 그래서 단순 조회가 필요한 경우 조회 기능 밖에 지원하지 않는 DB (Reader)를 사용한다.. 2023. 3. 13.
현실 세계의 속성에 의존하지 않기 최근에 들었던 질문 중 현실 세계의 식별자를 데이터베이스 기본키로 써도 되냐는 것이 있었다. 이를테면 현실 세계에서 유일함을 보장하는 값들이다. 주민 등록 번호 전화 번호 여권 번호 이들을 데이터베이스의 기본키 (PK) 로 지정해서 쓰는게 어떤가 하는 것이다. 최근의 ORM 예제들을 보면 auto_increment 혹은 uuid 등 개발자가 직접 생성한 기본키을 지정하는데, 왜 그렇게 하는지 모르겠다는 이야기도 들었다. (나 뿐만 아니라 여러 개발자분들이 같은 생각을 하실것 같은데) 기본키는 절대 바뀌지 않아야 한다. 기본키를 수정하는 것은 항상 많은 문제를 일으킨다. 대부분의 기본키가 여러 테이블의 FK와 인덱스로 지정되어 사용되기 때문이다. 더군다나 위와 같이 현실 세계의 값들은 사용자들이 직접 입력.. 2022. 5. 31.
8) 스프링부트로 웹 서비스 출시하기 - 8. 운영 환경 설정 저번시간까지 배포 환경에 대한 설정을 진행했습니다! 이제는 서비스 중단 없이 배포가 가능한 상태가 되었는데요. 이대로 서비스 하면 될까요? 뭔가 하나 놓친게 있지 않으신가요? 현재는 스프링부트에서 실제 운영 DB의 설정을 갖고 있지 않습니다. 즉, 아직은 프로젝트가 AWS RDS와 연동된 상태가 아닙니다. 그래서 이번 시간엔 스프링부트와 운영 DB 접근 등의 실제 운영환경 설정을 진행하겠습니다. 8-1. 운영 DB 접근 저번 시간에 저희는 운영 YAML (real-application.yml)만 별도로 분리해 EC2 서버에 추가했습니다. 간단하게 생각하면 운영 DB 접속 정보는 real-application.yml에 추가하면 됩니다. 하지만 이렇게 될 경우 set1, set2 설정에 같은 내용을 반복 추.. 2018. 2. 8.
패스트캠퍼스 SQL튜닝캠프 1일차 - 인덱스 구조와 스캔 방식 1주차1. 인덱스의 구조인덱스 == 정렬인덱스는 크게 해시 인덱스와 B+Tree 인덱스가 있습니다. 해시 인덱스는 키 값을 해시값으로 변경후, 해시값+값의 구조를 얘기합니다. 해시계산의 경우 데이터 양에 의존하지 않기 때문에 데이터 양이 늘어도 계산량(O(1))은 변경되지 않는다는 장점이 있습니다. 하지만 아래와 같은 경우에 전혀 사용할 수 없습니다.가격이 10,000원 이하의 선물을 찾고 싶다.제목이 "Final"로 시작하는 게임 리스트를 찾고 싶다.최신순으로 정렬된 값을 찾고 싶다.해시 인덱스의 이런 단점을 해결하고자 B+Tree 인덱스 구조가 있습니다.B+Tree 인덱스(출처 : 구루비 위키)Root Node와 Branch Node에 표기된 lmc는 Left Most Child를 뜻합니다. (Lea.. 2017. 7. 16.
하루 30분 36강으로 배우는 SQL 첫걸음 책 구매 링크 거의 대부분이 아는 내용들이라 아마 많은 분들은 보면서 크게 오오 하는건 없으실것 같다. 하지만 나는 최근 2년간 ORM만 사용하다보니 실제 쿼리 작성할 일이 거의 없어서 (기획자분들께 데이터를 CSV로 뽑아드릴때나, ISMS 심사할때 심사관들 앞에서 쿼리날릴때 정도?) 그래도 기본은 알아야하지 않나 싶어서 지하철 출퇴근 시간에 읽으면서 정리중! 블로그에 바로 쓸까 Github에 쓸까 하다가 마크다운 에디터를 Visual Studio Code에서 Atom으로 환승한 기념으로!! 마크다운으로 작성한다. (정말 좋다. 나중에 시간이 되면 sublime text/ visual studio code / atom 비교글을 써야겠다.) 참고로 아래 내용은 책의 모든 내용은 아니다. 개인적으로 중요하다.. 2016. 10. 13.

728x90
반응형