외주 프로젝트를 하며 ehCache를 처음 적용하여 몇몇 api들에 대해 TPS를 늘렸다. 따라서 ehCache 적용에 대해 정리해보려고 한다.EhCache는 현재 버전 2와 3이 있다. 버전 3의 경우, JSR-107과의 호환성이 좋아졌고, javax.cache 지원
외주를 하며 여러 테스트를 하던 중 공지사항 API에 대해 캐시를 적용하자는 의견이 나왔다. 그래서 캐시 적용 전, 후 테스트를 하고 싶어 부하테스트 장치 중 하나인 nGrinder를 사용하기로 했다.공식 설치 가이드 깃허브에 들어가면 설치 가이드가 친절하게 적혀있다.
지금까지 MySQL를 사용하면서 프로젝트를 진행할 때 글 작성시간이나 수정시간을 저장할 때 timestamp를 사용해왔다. CURRENT_TIMESTAMP와 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP를 사용하여 편리하게 저장하기
외주를 하며 새로운 과제가 등록이 되면 유저에게 푸쉬 알림(Push Notification)을 전해야 하였다. 이를 위해 FCM(Firebase Cloud Messaging)을 사용하여 해당 기능을 구현하였다. 그렇다면 FCM이란 무엇이며, 어떠한 로직으로 동작하는지를
외주 작업이 끝나고 작업물에 대한 QC를 진행하던 도중 다음과 같은 기능 오류 보고를 받았다.사용자의 마이페이지에서 최근 접속 시간을 보여주어야 하는데, 마이페이지 API에서 최근 접속시간이 영국 표준시로 보내주어 예상 값보다 9시간 빠른 시간대가 앱 화면에 보여지게
페이징 기능을 테스트하기 위해 대량의 더미데이터 삽입이 필요할 때가 많다. 하지만 더미 데이터를 삽입할 때 하나하나 삽입하는 것은 비효율적이다. 따라서 하나하나 삽입하기 보다는 프로시저를 사용하여 데이터를 삽입하는 편이 좋다.위의 코드를 통해 삽입을 하는 프로시저를 생
Apache와 NginX는 현재까지 폭 넓게 사용되는 웹 서버이다. 이 두 가지 서버는 현재 전체 웹서비스의 절반 이상을 차지할 정도로 점유율이 높다. 그렇다면 이 두 서버의 장단점과 차이점은 무엇일까? 1. Apache 아파치 HTTP 서버(Apache HTTP
조회 api를 만들던 도중 여러 테이블에 산재되어 있는 데이터를 가져와야 했다. 따라서 join이 여러 군데서 사용되므로 @Query를 사용해서 nativeQuery=true로 해주고 쿼리문을 직접 짜서 value에 넣어주었다.물론, 파라미터는 ?1 ?2와 같이 물음
다른 서버 개발자 및 클라이언트 개발자들과 협업을 하면 지속적인 코드 수정 및 코드 추가가 이루어지므로 지속적인 통합과 지속적인 배포가 필요하다. 하지만 매번 EC2 인스턴스에 접속해서 현재 배포되고 있는 무중단 서비스를 정지시키고 git pull을 한 다음 다시 배포
프로젝트를 하던 도중 SSH 키가 제대로 작동하지 않아 어쩔 수 없이 EC2 인스턴스 스냅샷을 통해 백업을 해두고, 기존 인스턴스와 볼륨을 삭제하였다. 그 후 새 인스턴스를 만들어 스냅샷에서 볼륨을 생성해서 새 인스턴스에 연결하였고, 이전 인스턴스에서 사용하던 탄력적
JPA에서 @Query 어노테이션을 사용하여 불러올 컬럼들을 지정하였다. 그리고 이렇게 불러온 데이터들을 페이징하려고 Page와 Pageable을 사용해서 코드를 작성하였다.Repository와 Service, Controller까지 모두 작성 후 빌드 및 서버를 실행
자동로그인은 거의 모든 애플리케이션에서 빠지지 않는 기능이다. 이러한 자동로그인을 Access token과 Refresh token으로 자동로그인을 구현할 예정이다.build.gradle의 dependency 블록 내에 io.jsonwebtoken::jjwt:0.9.1
현재 진행 중인 프로젝트가 있는데, 이 프로젝트는 실제 배포를 할 서비스이므로 CD(Continuous Development)를 위하여 실제 환경과 개발 환경을 분리했어야 했었다.프로젝트를 진행하며 3단계로 환경을 나눌 계획을 세웠다.devdev DB + dev ser
gitlab-ci.yml을 작성하고 변수로 공개 키들을 등록하는 도중, 아예 새로 발급 받아서 등록하는게 나을 거 같다는 생각을 했다. 그래서 서버에 접속을 하지 않은 채 공개키를 재발급하고 서버에 올리려고 type $env:공개키경로 | ssh USER@remote-
지금까지 WinSCP를 통해 매번 EC2에 접속을 해왔다. 하지만 이렇게 접속을 하는 것은 WinSCP 설정 등 매우 귀찮다.물론, 파워쉘에서 ssh -i keyfile user@ip 명령어를 사용해서 수동 접속을 해도 되지만 매번 입력하기 귀찮다. 따라서 SSH를 접
우리는 종종 어떤 검색어를 검색했을 때, 검색 결과가 너무 많으면 여러 페이지로 나누어 결과가 나오는 것을 알 수 있다.
이전까지 프로젝트에서는 무료 SSL 호스팅인 letsencrypt를 사용해서 https 리다이렉션을 적용했었다. 하지만 이번에는 처음으로 가비아를 통해 유료 SSL 인증서를 구매하여 적용하였다.가비아를 통해 SSL을 호스팅하는 방식은 letsencrypt를 사용하여 적
외주를 진행하며 공공데이터를 DB에 올려야 하는 경우가 발생하였다.따라서 해당 데이터를 csv 파일 형태로 다운로드 받아서 DB에 맞는 정보들만 남겨두었다. 그리고 4,000개에 가까운 csv 파일 내의 데이터를 datagrip에서 쉽게 등록하려고 한다.현재 필요한 정