[개발생각] 주소기반 데이터 조회를 위한 방법은?
진행중인 프로젝트에서 주소기반으로 동일한 지역, 비슷한 지역내의 사용자들의 에너지 데이터들의 통계를 내야하는 경우가 발생했다. 기본적으로는 주소데이터를 컬럼으로 추가하고, 같은 지역으로 GroupBy를 하여 통계를 내는 방식을 사용하지만,이렇게 주소데이터 컬럼을 사용하게되면,군, 시, 도로 확장해나갈때, 쉽게 그룹핑을 하기가 애매해진다.군,시,도에 따른 주소컬럼을 모두 포함하도록 쿼리를 만들어야하지만,해당 주소 컬럼에 포함되는 지역데이터가 엄청나게 많이 존재하기 때문에 난감해진다. Mysql에는 R-tree를 이용한 위치기반 인덱스를 사용할수있는 기능이 있지만,사용하는 PostgreSql에는 디플리케이트가 되었고,GiST인덱스가 그 자리를 차지하고 있었다.어차피 개념은 비슷하지! 개념은 2차원 좌표 데이..
[개발생각] 앱에서 한페이지에서 API를 많이 호출할때 튜닝
프로젝트의 막바지(?)에 프론트와 서버간의 API호출에 대한 튜닝을 한참했다. 여기서 아이디어가 하나 떠올랐다! 프론트와 서버간의 API호출을 튜닝을 진행할때 진행한 내용은 아래와 같다. 1) API를 중복하여 호출하는 부분은 줄인다.2) A API와 B API의 응답이 포함관계에 있는지 확인하고,포함하는 API 하나만 호출하도록 줄인다.3) A,B,C API를 하나의 묶음 API로 내려줄수있다면, 신규 API에 A,B,C 응답을 함께 내려주게하여, API호출을 줄인다.4) 한화면에서 여러개의 무거운 API를 호출해야할때, API의 호출을 줄인다. 4번이 이번에 이야기할 내용이다.1) 2) 3)번에 해당이 되지않고, 필연적으로 한화면에서 여러개의 API를 호출해야하는경우, 특히 차트나 그래프, 통계 데..
[개발생각] API와 앱의 출시 마무리 작업
프로젝트의 마무리시 꼭 해야하는 작업이 있다. 바로 폴리싱작업이라고 해야하나?! 개발중일때, 특히 프로젝트의 마무리시점까지는 엄청나게 바쁘다.우선 일정을 맞춰야하고, 그에따른 미진한 개발을 진행해야하기 때문이다.따라서, 여러 멤버들은 엄청나게 바쁘고,그에따라 이 기간에는 서로간의 커뮤니케이션이 현저하게 낮아지게 된다.(사실 이건 명약이 없다...) 물론, 이 현상이 잘못된 현상이긴하지만, 자연적인 현상이기도 하다고 생각한다.(훌륭한 프로젝트 멤버들이나, 아니거나, 빅테크나 아닌 조직이나, 동일하게 나타나는 현상같으니..사람이 하는일에서는 나타나는거 같다가 맞을듯? ㅋ) 이건 어디서나 필연적으로 나오는 현상같다. 잘못된것이라고는 생각하지 않는다는 말이다. 그런데, 멤버간의 커뮤니케이션이 줄어들어게되면, 소..
[개발생각] 시스템의 정리 - 코드 컨벤션과 분류
요즘은 좀 집착하는게 있다, 컨벤션과 분류라고 해야할까? 현재 진행하는 프로젝트가 아무래도 오래된 년차가 있는 시스템을 신규로 개발을 해야하는 프로젝트다보니,기존의 레거시 시스템을 우선적으로 파악해야하는 경우가 많다.(레거시를 파악하고 이해해야, 신규 시스템도 만들수있으니) 여기서 어려운점이 무엇이었냐하면 (아직 프로젝트는 끝나지 않았지만..ㅎ)기존의 시스템,서버들, 즉 인스턴스들의 분류가 명확하지 않고, 관리가 잘안되는 느낌이었다.인스턴스들이 동작하고 있는 정보를 한눈에 볼수가 없고, 파편화되여, 여러서버들에 인스턴스가 떠있는 느낌이 들었다.따라서 명시적으로 어떤 기능이 어떤 서버에 몇개의 인스턴스로 동작하는지를 파악하는게 어려웠고,파악을 하더라도, 이게 정확한것인지를 확신하기가 어렵다는 것이였다. 이..