일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

Database 3

Elastic Search는 Thread Pool 관리를 어떻게 할까?

어느 회사에서든 비슷하겠지만 내가 다녔던 회사는 운영 서버를 패치하는 날이면 모든 팀원들이 각각의 서비스들을 빌드하고 배포한 후에 운영에 이상이 없는지 전체적인 테스트를 거치게 된다. (모든 개발자가 세상에서 제일 예민한 시간) 나도 마찬가지로 내가 담당하고 있는 서버를 빌드 배포한 후에 로그와 함께 예기치 못한 Exception 이 나지는 않는지, 새로 추가된 기능들이 정상적으로 동작하는지 등의 점검을 진행했다. 로그를 계속적으로 모니터링 하고 있는데, 사용자에게 표출되지 않는 내부 스케줄러 로직에서 에러가 계속적으로 나고 있는걸 확인할 수 있었고, Elastic Search관련 로직에서 'HTTP/1.1 429 Too Many Requests'과 같은 에러 로그가 출력되고 있었다. 무슨 로그였을까? ..

Index & Composite Index 잘 사용하기

개발을 하다 보면 RDBMS에 보관되는 데이터가 많아지고, 그러다 보면 쿼리에 따라 검색 속도가 느려지는 경우를 많이 마주치게 된다. 그런 경우에는 대부분 검색 용도로 자주 사용되는 칼럼에 Index를 걸어 검색 속도를 향상하게 될 것이다. 나 또한 그런 방식으로 사용하곤 하는데, 과연 Index가 무엇이고 어떤 원리이길래 이런 경우에 사용되게 되는지 궁금해졌고 어떻게 써야 좀 더 효율적으로 사용할 수 있을지 궁금해졌다. Index란? 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상하기 위한 자료구조이다. 임의의 데이터를 찾기 위해 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있게 도와준..

Database/RDBMS 2022.05.26

Elastic Search 데이터 필드타입 변경하기 (Re-Index)

회사에서 사용 중인 Elastic Search 일정 Template의 데이터 필드 타입이 무언가의 이슈로 인해서 수정해야 할 일이 생겼다. 데이터 필드 타입 바꾸는 걸로 포스팅을 쓸게 있다니? 사실, 결론부터 말하면 한번 지정하여 Template를 등록한 후에는 데이터 필드 타입을 변경할 수 없다! 오마이갓 아니 그러면 어떻게 해야 할까? 기존 Template를 Delete 하고 새로 만들면 된다! 이상. 장난이었다. (진짜 이 방식으로 했다가 지운 데이터를 필요로 하는 개발자분에게 저 이모티콘 처럼 사과를 해야 하기도 했다.) 개발환경이거나 데이터가 수집되기 전이라면 위의 방식처럼 삭제하고 새로 만들어도 무방하지만, 운영환경이거나 수집되고 있는 데이터를 지워서는 안 되는 경우에는 그저 지우고 새로 만드..