목록Database (4)
규도자 개발 블로그
macOS에서 ELK stack 구성하기 (elasticsearch) 그냥 brew install로 무지성 설치를 하려니 안되더라. 해서 내가 삽질한 내용과 더불어 다른 사람들은 헤매지 않길 바라며 기록해둘 요량이다. 먼저 현재(2022년 2월 27일) brew search elasticsearch 하면 나오는 내용이다. $ brew search elasticsearch ==> Formulae elasticsearch elasticsearch@6 ShellCopy 깔아보자. $ elasticsearch -V warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release W..
WHERE 1 = 1 TRICK 세상에 절대적인 것은 없다. 데이터베이스에서 특정 데이터를 불러와야 할 때 전용으로 만들어져있는 객체나 라이브러리를 이용하면 좋지만 불가피하게 다이나믹쿼리를 통해 구현해야 할 때가 있기 마련이다. 다이나믹쿼리로 구성돼있는 어플리케이션을 유지보수하거나, 혹은 특수한 쿼리를 이용해야할 때 등 말이다. 그럴 때 유용하게 쓸 수 있는 게 바로 WHERE 1 = 1 트릭이다. 간단한 sql은 이곳(sqltest.net)에서 실험할 수 있다. sqltest에 들어가서 오른쪽에 Select Database를 눌러 MYSQL로 설정한 뒤에 SQL Script란에 아래 sql을 입력하자. CREATE TABLE mysql_test ( id INT(6) UNSIGNED AUTO_INCREM..
이런 말로도 쓸 수 있겠다. 데이터베이스에 들어가는 값은 최대한 변하지 않는 값이어야 한다. 예를 들어서 어떤 플랫폼에서 나이를 다룬다고 하자. 그리고 사람들의 나이를 각 회원들의 열에 저장하였다. 생각만으로 머리가 아파지지 않는가? 나이를 세는 기준은 무엇인가. 연도? 생일? 만약에 전자라면 해가 지날 때마다 모든 회원들의 나이데이터를 불러와서 1을 더한 다음에 다시 저장하는 과정을 거쳐야 한다. 만약에 후자라면 매일매일 날짜를 체크하여 회원의 생일이 지났는지를 검사하여 생일이 지났으면 해당 회원의 나이를 불러와서 1을 더한 다음에 다시 저장해야한다. 이것도 아주 단적인 예만 말한 것이다. 만약에 회원이 외국인이라면? 혹은 나이를 세는 기준이 바뀐다면? 그도 그럴 것이 이 '나이'라는 것이 현대에 와서..
쿼리로 구할 수 있는 데이터는 따로 데이터베이스에 넣지 않는 것이 좋다. 그 데이터를 복잡한 연산에 자주 사용하는 것이 아니라면 말이다. 예를 들어 여러 플랫폼에서 흔하게 볼 수 있는 추천인 시스템을 구현한다고 했을 때, 해당 회원에 종속돼야할 정보는 해당 회원에게 발급된 추천인 코드와 해당 회원이 가입할 때 입력하였던 추천인코드, 이 두 개면 시스템을 구성하는 데는 충분하다. 하지만 만약, 해당 회원에게 종속된 데이터에 부가적인 정보, 예를 들어 해당 회원을 추천한 회원들의 목록, 추천한 회원들의 숫자 등의 정보가 부가적으로 존재할 뿐더러 이 정보를 실제 서비스플로우에서 사용하게 되는 경우라면... 갑자기 머리가 아파진다. 특정 회원을 추천한 회원들의 목록은 쿼리로 구할 수 있다. 그 회원들의 숫자 또..