개인프로젝트를 헤로쿠에 배포해놓고 있었는데, 갑자기 저런 메일이 왔다. 세번째 줄 보면 your database credentials and hostname will have changed, but we will update your app's config variables accordingly to reflect the new database connection string. 이라고 되어 있다. 내 개인프로젝트는 헤로쿠에서 제공하는 postgresql을 사용하고 있다. 이 DB에 접근하기 위한 정보가 credentials이고. 그런데 보안때문에 credentials 변경이 발생한다는 것이다. 문제는 종료되었다는 메일이 왔는데도 내 credentials는 변경되지 않았다. 헤로쿠에 올라가있는 서버를 다시..
이 고민은 파라미터 유효성 체크를 편하게 하는 방법을 찾아보다가 시작되었다.(파라미터 유효성 체크를 편하게 해보자) 현재 우리 프로젝트는 JSP뷰를 사용하고 있다. 그리고 한 컨트롤러 클래스에는 뷰를 호출하는 메서드와 @ResponseBody를 사용하여 데이터를 내려주는 Ajax용 메서드가 혼재해있다. 그말인즉 컨트롤러에서 예외가 발생하면 잡아서 처리해줄 ControllerAdvice에서는 같은 예외에 따라 뷰를 내려줘야할수도, 데이터를 내려줘야할 수도 있다는 것이다. @ControllerAdvice 여러 개로 해결하는 방법 그래서 @ControllerAdvice의 적용범위를 제한하는 방법을 생각했다. 특정 어노테이션을 가지고 있는지, 특정 패키지 이하에 존재하는지, 특정 클래스 타입인지 등을 확인하여 ..
KEEP 맡은 구현부에 대하여 사전에 유효성정책으로 특수문자를 지정하여 구현하고, 다양한 특수문자를 사용한 테스트로 결함 발생을 줄일 수 있었다. 개발전 요구사항을 트리식으로 정리하고 구현 완료되었을 때 체크해가는 식으로 진행하여 개발의 진척상황을 알기 쉬웠고, 꼼꼼한 개발이 가능했다. 대량 데이터를 미리 염두에 두고 테스트하여 Out of memory가 나는 부분을 찾아 해결할 수 있었다. 자세한 내용은 여기로. PROBLEM 개발방향에 대해 미리 얘기했고, 개발 완료했는데 수정개발해야할 사항이 발생했다. PM이 바쁜 탓도 있었지만 나도 PM이 충분히 살펴봤겠거니 생각했는데, 알고보니 내 분량을 하나도 살펴보지 않은 상태였고 수정개발을 요구했다. 개발계획을 세우는 것과 개발하는 것도 중요하지만 내가 확..
프로젝트가 막바지에 이르고 있어서 요즘은 테스트를 진행하고 있는데, 지난 프로젝트(엑셀업로드를 통한 대량등록 성능 개선의 건)를 통해 대용량 데이터를 다루는 경우를 항상 염두에 둬야 한다는 것을 배웠기 때문에 이번에도 테스트데이터로 150만건 정도를 준비했다. 데이터를 150만건이나 만들려고 보니 프로그램으로 돌리는게 빠르겠다싶어서 대용량 더미데이터를 만들어주는 프로그램을 짰다. 그래서 그 데이터로 테스트를 하다가... out of memory(GC Overhead limit exceed)를 만났다. 대리님께 이 기능에서 out of memory가 발생한다고 말씀드렸더니 Jmap, Jhat으로 메모리 덤프 분석해서 원인을 찾아보라고 하셨다. Jmap과 Jhat을 처음 들어서 찾아보니 Jmap은 JVM 모..
지금 개발중인 시스템에서 고민했던 문제를 여기에 정리해둔다. 현재 개발중인 내용은 기존의 시스템 A는 고도화하고 그 시스템에 새로운 B시스템을 붙여 만드는 것이다. 각 시스템의 관리자는 각 시스템만 조회할 수 있지만, 이 두 시스템을 모두 접속할 수 있는 마스터 계정이 있다. 이것이 첫번째 문제이고, 이 두 시스템이 공통으로 사용 가능한 기능이 있다는 것이 두번째 문제이다. 전체 관리자의 경우, 각 페이지에서 서로 다른 시스템으로 이동할 수 있는 링크가 있어서 이동할 수 있다. 하지만 이 링크는 현재 접속중인 시스템을 표시해야 한다. 문제는 header에서 이 링크를 표시하고, 공통으로 사용하는 기능의 페이지는 나눠지지 말고 파일 하나로만 존재해야 한다는 것이다. 아래와 같이 구현해야할 흐름을 정리할 수..
최근에 담당한 건에 대해 정리해보려고 한다. 기존 프로젝트에는 엑셀업로드를 통해 대량등록하는 기능이 있었는데, 엑셀 한 줄 한 줄씩 처리하다보니 성능이 느렸다. 기존에 요구된 처리량은 많아야 몇백건정도라 그동안 문제가 되지 않았지만 이번에 몇만건을 처리해야 하는 경우가 생기면서 성능을 개선하게 되었다. 요구사항 - 구분코드와 문장으로 유일한 데이터인지 판단한다. 같은 구분코드와 문장의 데이터는 존재할 수 없다. - 데이터를 구성하는 요소는 구분코드, 문장, 대체문장인데, 문장과 대체문장은 같을 수 없다. - 엑셀내에 중복된 데이터가 존재한다면 가장 최신(가장 아래)의 데이터로 등록되어야 한다. - DB에도 존재하는 중복된 데이터는 새로 등록하는 데이터로 업데이트한다. - 구분코드 2, 3의 경우, 문장에..
첫 회고를 남기기 전에... 학원에서 팀 프로젝트를 진행하면서 느낀 건 지난 프로젝트의 경험이 굉장히 소중하다는 것이었다. 어떤 점을 잘했고, 어떤 점이 부족했는지, 어떤 점을 앞으로도 주의해야할지 되새겨보는 것이 꽤 도움이 되었다. 그래서 직업으로서의 개발을 해가면서도 좀 더 나은 개발을 하기 위해 회고를 작성하고자 한다. 사실 좀 더 자세한 내용이 담긴 회고는 따로 있어서 이 공간에는 프로젝트 내용을 최대한 드러내지 않는 한에서 작성할 것이다. 잘한 점 다른 팀원이 개발한 부분을 꼼꼼하게 테스트를 진행했다. ➡️ 다른 팀원의 개발부분도 이해하게 되어 전체적인 프로젝트 이해도가 상승 부족했던 점 API 연동하여 Json으로 받은 응답을 객체로 직렬화할 때 어려움이 있었다. ➡️ 🔗API 응답 Json ..