두둥서비스는 한 ec2 안에 nginx를 프록시로 활용하여 next js , redis , spring , react 어플리케이션을 도커로 띄우고 있다. 금일 오후 오후 1시 3분... nextjs 프론트 도커이미지가 다운되어버렸다. 출시이후 3개월만에 처음 있는 일이였다. 3개월째 잘 굴러가던 서비스가 이렇게 다운이되니깐 매우 당황했었다. 이슈가 있었던 부분을 살펴보고 트러블슈팅한 경험을 공유하고자 한다. 목차 1. 에러 원인찾기 : 도커 event,syslog 2. 이유가 뭘까 : 이미지 처리 3. 해결하기 : sharp install 3.1. 근데왜 squoosh 가 문제일까? 에러 원인찾기 : 도커 event ,syslog 두둥 서비스는 근검절약(돈이없따 ㅠ)을 위해 ec2 micro 에 swap..
두둥 프로젝트를 진행하면서, 재고 감소나 , 주문 과정에서의 티켓 정보 확인등 동시성을 고려해야할 상황이 생겼다. 재고시스템으로 알아보는 동시성이슈 해결방법 - 인프런 | 강의 동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다., - 강의 소개 | 인프런 www.inflearn.com 이중에서 Redisson 을 활용해서 분산락을 적용하고있고, 두둥에서는 RedissonLock 이라는 Aop를 만들어서 중복코드를 없애면서 적용하고 있다. 분산락을 Aop로 만드는 과정을 담은 블로그들은 많다. - https://devroach.tistory.com/82 - https://devroach.tistory.com/83 - https://devfunny.tistory.com/888 Redisson 분산..
두둥 프로젝트를 진행하면서 sonarcloud 를 활용해서 pr 간의 테스트 코드 측정 , 머지후 dev브런치의 테스트 커버리지 측정등 ci 단에서 테스트 코드를 돌렸다. 아직 전체 테스트커버리지가 20퍼 대 이긴하지만, 중요한 도메인 로직들은 단위테스트는 거의 다 되어있는상태이다. 테스트 코드를 돌리면서 정말.. 많이 도움 되었다. 잘못 변경한 부분이나, 빌드 페일등을 방지하면서 안정성 있게 운영했었다. 다만 멀티모듈기준으로 초기 세팅하는데 잘 안된 부분들이 있어서 공유하려고한다. 목차 1. 전체적인 구성방식 2. jacoco 세팅하기 3. sonarqube 세팅하기 3.1. 소나 클라우드 관련 3.2. 그래들 관련 3.3. 깃헙 액션 1. 전체적인 구성방식 테스트를 돌리면 jacocoTestRepor..
두둥 프로젝트와 , 디프만 낙낙 프로젝트를 진행하면서 , 회원가입하는 과정이 oauth 서버에서 인증뿐만아니라, 프로필 설정등의 중간 과정이 필요했었고, 이를 적절한 방법으로 구현하기 위해 oauth 스펙중 하나인 OIDC 를 사용해보기로 했다. 이글을통해서 직접 구현하는 방법을 공유하고자 한다. 목차 1. 문제점 1.1. Oauth AccessToken을 이용하는 여러가지 해결방안 1.2. Oauth AccessToken으로 회원가입 할 때의 문제점 2. Open ID Connect 3. 적용하기 3.1. 공개키 목록 조회하기 , feign으로 캐싱하기 3.2. ID 토큰 유효성 검증하기 3.2.1 서명 검증전 페이로드 검증 3.2.2 서명 검증 1. 문제점 oauth 인증 과정을 수행하게 되면, 보통..