일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- nGinder
- Armeria
- fake jwt
- hbase 저장공간 설정
- LPOS
- R2DBC Paging
- jsonMarshaller
- ㅉ때
- RedirectService
- 티스토리챌린지
- 노드간 통신
- reids
- 논블록킹 성능
- 플루터
- 애자일 싫타
- formik
- save/update
- OIDC
- intellij
- Loki 로그
- 7879
- UnsupportedOperationException
- 월급루팡 일지
- 핀포인트
- Ingress Controller Fake
- pinpoint
- 오블완
- jar 배포
- pinpoint 2.5.3
- 개발 어렵당.ㅠ
- Today
- Total
목록개발이야기/개념 (39)
대머리개발자

JWT가 만료되는시점에 페이지가 새로고침되어 페이지 내에 속한 모든 API가 호출되면모든 API에 대해서 토큰 갱신 작업을 진행한다. 3번의 리프레쉬 토큰 갱신 API가 콜된다. ㅜㅜ 최초의 요청이 토큰이 만료되면두번째, 세번째, .. 요청은 대기를 하고 순차적으로 처리한다. 즉 직렬화 한다! 최초 요청에 토큰을 갱신하고 갱신한 값으로 두번째, 세번째, .. 요청을 처리 할 수 있도록 한다!! 방법은 큐와 인터셉터를 이용한다. request, response 둘 중 하나의 인터셉터를 이용 하면 된다.request를 이용하기로 했다. 응답으로 온 401 결과를 처리하는 것보다는 request를 이용해서 "보내기 전"에 만료 체크를해서애초에 요청을 보내지 않으면 한 번이라도 네트워크 비용을 cut 할 ..

실상 Map 안에 Map으로 생각해도 된다.근데 문제는 실제 등록된 데이터를 확인해 보면 지저분하다. 우웩 더 나은 설계 방식은 Json 안에 Json을 저장하는 대신에,복합 객체에 이값을 저장하고 전체 객체를 Json으로 직렬화하는 것이다. ⭐⭐AS-ISval mainConfig = mutableMapOf( "xxx.status" to jsonStatus)Mono.zip( RedisConfig.getCache( "xxx:main:recommend"), RedisConfig.getCache( "xxx:tags"),).publishOn(Schedulers.boundedElastic()).doOnNext { it -> mainConfig["recommend"] = it.t1 mai..
개발함에 있어.. 네이밍이 제일 힘들다 기본적인 컨벤션이 있다고 해도 매한가지다. 창작의 고통처럼 느껴진다.(안해봤지만 ㅋ) 삭제를 위한 URI 네이밍은 단순하다. @DeleteMapping("/boards/{boardId}") 근데 여기서 추가적으로 삭제는 삭제인데 특정 사용자의 모든 게시글을 지우는 URI 네이밍은 어찌해야할까? ... ... ... 창작이 힘들면 회피해야 한다. 피할수 없으면 즐기라고 하지만...아니다. 피할수 있을때까지 피해야 한다. 회피기술(꼼수) ⭐⭐ @DeleteMapping("/boards/{boardId}") 엥? 똑같지 않은가? 맞다. 똑같다 ㅋ 새로운 URI 네이밍을 파는 것이 아니라. 특정 boardId의 값을 체크하고 로직을 분기하는것이다. if (boardId =..
모든 리소스를 아르메리아로 조지고 있는데 문득 왜 쓰고 있는지 의문이 들었다. https://engineering.linecorp.com/ko/blog/hello-armeria-bye-spring LINE 개발자들이 Spring 대신 Armeria를 사용하는 이유 LINE DEV Meetup #11 'LINE 서버 개발자들이 말한다! Armeria 아직도 안 써요?'에서 김기환, 임경수 님이 발표하신 'Hello Armeria, Bye Spring' 세션 내용을 옮긴 글입니다. 안녕하세요. 이번 글에서는 레... engineering.linecorp.com 사실 처음으로 "도입한 이유"를 생각 해보니 성능적인 면보다는 grpc를 쉽게 쓰기 위함이였다. 하나의 모듈에서 서로 다른 클라이언트에게 서비스를 서..

쿠폰코드 자체를 PK 제약 조건을 설정했기 때문에 중복에 된 이슈는 해결했지만 만약 중복코드가 발생한다면 발생한 만큼 재 생성해야 한다. 예를들어 10,000건에 대한 쿠폰 발행할 때 18건이 중복이 발생했다면 18건을 추가적으로 만들어서 10,000건을 채워야 한다. 현재 쿠폰 발행 테스트할 때는 중복이 발생하지는 않았지만 항상 중복을 가능성이 존재 하기 때문에 쿠폰 발행 건수를 보장하기 위한 코드가 필요하다. (일단 추후 고민s) fun save(policyId: Long) { Mono.zip( Mono.just(Code(policyId = policyId, couponCode = "todo")), generateCouponCode() ) .flatMap { it.t1.couponCode = it.t..

쿠폰 시스템을 개발해야 한다. 인증서버 -> 커뮤니티 서버 -> 이벤트 서버 -> 쿠폰시스템 다음이 아직 없지만 벌써 부터 무엇을 할지 기대된다. 회사 생활이 즐겁다잉!!ㅋㅋㅋ 서버 스펙은 아르메리아 프레임워크 with 코틀린 셋팅은 끝났다. 달려보자 implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc' //implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive' implementation 'org.redisson:redisson-spring-boot-starter:3.19.3' implementation 'io.projectreactor...

케케묵은 이야기이고 정답이 없는 이야기인데 DTO가 좋다는 의견이 더 많은것 같기는 하다. 스스로가 개똥철학을 가지고 케이스에 맞게 사용하면 되는 것이다. 인텔리제이에서 제공되는 AI에게 물어본 응답이다. ㅎㅎ (AI : 110$ + 인텔리제이 : 173$ = 283$) 내 밥줄인데 비싸다고 생각들지는 않는다. 그리고 ..이제 비슷 비슷한 블로그들을 검색하고 했던 안 좋았던 경험들하고 안녕을 할 수 있다.!! 일주일간 꽤 만족도 높은 응답을 주었기 때문에 1년 결제를 진행했다.....나의 삽질 여정이여 이젠 안뇽! Json 안에 Json이 있는 케이스는 결국 Map 안에 Map으로 형 변환을 해야 한다. var data = execute(queryParams, clientId, clientSecret, ..

대학 생활 왜 쓰지도 않는 포트란, 코볼을 살짝스하게 배우는지......뜬금포 연관성 없지만 생각났다. 언어는 발전해 간다.. 근데 왜 어떻게 발전해 가냐????? 스프링만 배운 친구는 스프링에 고마움을 모른다.. EJB를 써봤어야지.... 스트럿쳐1,2를 써봤야지... 나는 대머리 꼰대라서 ㅠㅠ 어쨋거나 스프링의 모토는 without EJB다. 본론으로 가자.ㅋ SPA는 하나의 페이지에서 모든것을 랜더링한다. 호랑이 담배 피던 시절.. JSP에 제이쿼리 조합 시절에는 상상도 못했지..쉬바 가상돔이 왠말이냐 고객의 니즈는 심플했지만 구현하기는 낫 심플했다. RFP1) 페이지 인덱스 상태를 가지고 있어야 한다. 3페이지에서 게시판을 조회하고 뒤로가니를 하거나 목록보기 버튼을 클릭하면 3페이지에 머물러 있어..