There are 51 posts.

스프링 로컬 캐시를 사용한 외부 캘린더 API 호출 최적화

November 10, 2022

이 글은 우테코 달록팀 크루 후디가 작성했습니다. 구글 캘린더 연동 기능의 성능 저하 저희 달록은 유저의 구글 캘린더를 가져와 달록의 일정과 함께 볼 수 있는 기능을 제공합니다. 그리고 유저가 일정을 요청하면, 달록 서버가 직접 구글 캘린더의 API를 호출하여 달록 일정과 구글 캘린더 일정을 함께 응답하는 구죠이죠. 편리한 기능이지만, 말만 들어도 성능…


컴포넌트의 불필요한 리렌더링 막기: 달력 페이지 리팩토링

November 08, 2022

이 글은 우테코 달록팀 크루 티거가 작성했습니다. 짜잔 🌈 달록에 접속했을 때 로그인 사용자가 가장 처음 마주하는 화면입니다. 메인 페이지라고 말할 수 있는 애증의 달력 페이지! 저희는 이 페이지에서 내비게이션 바를 제외한 빨간 영역을 라는 컴포넌트로 만들었어요. 이 컴포넌트는 어떻게 구성되어 있을까요? 내부의 어떤 요소를 컴포넌트로 분리할 수 있을까요…


JPA의 낙관적 락을 사용한 동시성 이슈 해결

November 06, 2022

이 글은 우테코 달록팀 크루 후디가 작성했습니다. 오랜만의 포스팅 입니다. 이번 글에서는 달록에서 발생한 동시성 이슈를 JPA의 낙관적 락을 사용하여 해결한 경험에 대해 공유드리겠습니다. 문제 상황 달록은 카테고리 역할이라는 도메인이 존재합니다. 카테고리 역할은 현재는 크게 과 으로 나뉘어져있습니다. 은 카테고리에 대한 아무런 권한을 가지고 있지 않…


어떻게 테스트 코드 가독성을 개선할 수 있을까??

November 02, 2022

이 글은 우테코 달록팀 크루 '리버'가 작성했습니다. 글을 쓴 계기 최근 4개월간 우아한 테크 코스 4기 달록 팀 프로젝트를 진행하였다. 프로젝트 기간이 종료될 쯔음 팀원들과 프로젝트 과정에서 나온 트러블 슈팅에 대해 이야기를 나눠보았다.😮 트러블 슈팅을 이야기하던 중, 우연하게 현재 프로젝트 테스트 코드의 문제점에 대해 이야기를 나누었다. 달록팀은 약 …


HikariCP와 적절한 풀 사이즈 고민하기 (3) - 삽질편

November 01, 2022

이 글은 우테코 달록팀 크루 매트가 작성했습니다. HikariCP와 적절한 풀 사이즈 고민하기 (3) - 삽질편 이번 시간에는 달록 서비스에서 가장 많은 조회가 일어나는 요청을 기반으로 의 적절한 풀 사이즈를 설정하려 한다. 순서는 먼저 요청에 대한 특성에 대해 알아본다. 이후 JMeter를 통해 적절한 지표를 확인하려 한다. 해당 게시글은 달록에 특화된…


refreshToken으로 accessToken 재발급하기

October 31, 2022

이 글은 우테코 달록팀 크루 나인이 작성했습니다. 😂로그인이 너무 짧아요 달록 서비스를 배포하고 사용자들로부터 많은 피드백과 QA를 받았어요. 덕분에 빠른 시간 내에 많은 문제점들을 해결할 수 있었어요. 그 중에서 로그인이 너무 짧다는 의견이 있었어요. 아무래도 달력은 매일 확인하는 도메인이다보니, 매일 다시 로그인해야하는 번거로움이 사용자들에게는 좋지 …


달록 무중단 배포 도입기

October 26, 2022

이 글은 우테코 달록팀 크루 파랑이 작성했습니다. 무중단 배포 도입 이유 달록의 기존 배포 스크립트는 이렇습니다. 여기서 2 → 3의 과정, 구동중인 애플리케이션을 종료하고 새로 실행하는 과정에서 서비스가 중단됩니다. 저희 서비스의 중단 시간을 측정해보니 약 정도 중단되는 것을 확인할 수 있었습니다. 물론 지금이야 달록의 사용자가 많지 않아 그 동안 큰…


젠킨스 분산 빌드 아키텍처 구축

October 21, 2022

이 글은 우테코 달록팀 크루 후디가 작성했습니다. ⛳️ 젠킨스 빌드 최적화를 향한 여정 달록은 지속적 배포 (continuous deploy) 도구로 젠킨스를 채택하여 사용중입니다. 젠킨스는 AWS EC2 t4g.micro 인스턴스에서 구동됩니다. 사실 이 인스턴스 사양이 그렇게 좋은 편은 아닙니다. t4g.micro는 vCPU(core) 2개, 메모리 1…


HikariCP와 적절한 풀 사이즈 고민하기 (2) - 실전편

October 18, 2022

이 글은 우테코 달록팀 크루 매트가 작성했습니다. HikariCP와 적절한 풀 사이즈 고민하기 (2) - 삽질편 About Pool Sizing HikariCP 공식 문서에 따르면 디스크 및 네트워크의 시간을 고려하면 아래와 같은 공식을 제안했다. 또한 여러 데이터베이스에도 적용할 수 있다고 언급되어 있다. connections = (corecount…


달력 서비스의 DB 시간 다루기 3 - Time Zone, 어디서 어떻게 설정해야 할까?

October 18, 2022

이 글은 우테코 달록팀 크루 파랑이 작성했습니다. 시간과 날짜를 다루는 달록을 개발하다보니 타임존을 설정할 수 있는 곳과 그 방법이 아주 다양하다는 걸 알게 되었다. 설정 방법과 그 결과를 공유해보려 한다. TimeZone 설정할 수 있는 곳 1. yml 파일 설정 이 설정은 실제로 DB 서버의 타임존을 변경하지는 않는다. 단순히 Spring에게 DB의 …