전체 글

경험을 기술합니다 https://github.com/ImNM
리액트

[Nextjs] Sharp Missing In Production ( memory leak 이슈 )

두둥서비스는 한 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..

스프링

[스프링] spring redisson 분산락 Aop 적용기

두둥 프로젝트를 진행하면서, 재고 감소나 , 주문 과정에서의 티켓 정보 확인등 동시성을 고려해야할 상황이 생겼다. 재고시스템으로 알아보는 동시성이슈 해결방법 - 인프런 | 강의 동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다., - 강의 소개 | 인프런 www.inflearn.com 이중에서 Redisson 을 활용해서 분산락을 적용하고있고, 두둥에서는 RedissonLock 이라는 Aop를 만들어서 중복코드를 없애면서 적용하고 있다. 분산락을 Aop로 만드는 과정을 담은 블로그들은 많다. - https://devroach.tistory.com/82 - https://devroach.tistory.com/83 - https://devfunny.tistory.com/888 Redisson 분산..

스프링

[스프링] 멀티모듈 jacoco , sonarqube (cloud) 세팅

두둥 프로젝트를 진행하면서 sonarcloud 를 활용해서 pr 간의 테스트 코드 측정 , 머지후 dev브런치의 테스트 커버리지 측정등 ci 단에서 테스트 코드를 돌렸다. 아직 전체 테스트커버리지가 20퍼 대 이긴하지만, 중요한 도메인 로직들은 단위테스트는 거의 다 되어있는상태이다. 테스트 코드를 돌리면서 정말.. 많이 도움 되었다. 잘못 변경한 부분이나, 빌드 페일등을 방지하면서 안정성 있게 운영했었다. 다만 멀티모듈기준으로 초기 세팅하는데 잘 안된 부분들이 있어서 공유하려고한다. 목차 1. 전체적인 구성방식 2. jacoco 세팅하기 3. sonarqube 세팅하기 3.1. 소나 클라우드 관련 3.2. 그래들 관련 3.3. 깃헙 액션 1. 전체적인 구성방식 테스트를 돌리면 jacocoTestRepor..

스프링

[스프링] spring oauth Open ID Connect with kakao

두둥 프로젝트와 , 디프만 낙낙 프로젝트를 진행하면서 , 회원가입하는 과정이 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 인증 과정을 수행하게 되면, 보통..

ImNM
이찬진 컴퓨터 교실