일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jar 배포
- ㅉ때
- Loki 로그
- pinpoint 2.5.3
- 티스토리챌린지
- reids
- intellij
- LPOS
- jsonMarshaller
- OIDC
- 논블록킹 성능
- nGinder
- formik
- 노드간 통신
- 오블완
- Ingress Controller Fake
- pinpoint
- Armeria
- save/update
- RedirectService
- hbase 저장공간 설정
- UnsupportedOperationException
- 월급루팡 일지
- 개발 어렵당.ㅠ
- 애자일 싫타
- 7879
- 핀포인트
- fake jwt
- 플루터
- R2DBC Paging
- Today
- Total
목록전체 글 (240)
대머리개발자

부하 : nGrinder R2DBC + 레디스R2DBC + mysql 쿼리 수행시간이 평균 4ms으로 나오는 EndPoint ( 레디스 )쿼리 수행시간이 평균 5ms으로 나오는 EndPoint ( mysql ) 레디스가 약 63%로 빠르다. 레디스를 적재적소에 사용을 하면 최적화된 피드백을 전달할 수 있다.!!당영한 이야기지..괜히 캐쉬로 쓰는것이 아니다. webflux, 논-블로킹, 비동기,..을 사용하는 이유는... 최소한의 자원으로 최대한의 효과를 얻기 위함이다. 성능 향상 keyword- 논-블로킹으로 처리를 하더라도 step by step으로 하는 것이 아니라 필요에 따라서 동시(병렬)로 처리- 엔티티가 아닌 DTO로 처리 -> 바인딩하는데 좀 더 걸린다. : 별다른 로직이 없는데 쿼..

서버는... 개똥같이 만들어도 돌아간다...우리도.. 예쑬을 해야지 https://hcnmy.tistory.com/182 Armeria를 사용하는 이유모든 리소스를 아르메리아로 조지고 있는데 문득 왜 쓰고 있는지 의문이 들었다. https://engineering.linecorp.com/ko/blog/hello-armeria-bye-spring LINE 개발자들이 Spring 대신 Armeria를 사용하는 이유 LINE DEV Meetuphcnmy.tistory.com 올해 4월달에 올렸던 글인데.. 굳이???라는 내용으로 썻던 글인데..나의 무지에서 나온 명백한 헛소리다. 반성합니다.... 무조건 무조건이닷!!! 앞으로는 나는 webFlux + r2dbc 조합만을 이용해서 프로젝트를 진행 할건데아르메..
when ?동시에 병렬로 처리 하고 싶을때 -> 사실 API를 더 작은 기능으로 쪼개서 프론트-엔드에서 동시에를 쏘면 되겠다.하지만 관리 포인트도 늘어나는 등 트레이드 오프 관계이기 때문에 서버 사이드도 적절하게 처리 할 수 있어야 한다. why ?사용자에게 좋은 쾌적한 경험을 주기 위해서지 두 작업이 병렬로 진행하지만 마무의리는 맞춰야 하는 경우와 그렇지 않는 경우가 있다. 예를들어 검색을 한다고 했을 때1. 검색어 저장2. 검색 결과 리턴 검색어 저장은 검색 결과 리턴하는데 영향도가 1도 없기 때문에결과 리턴과 상관없이 각자도생하면 된다. 이력(History)를 쌓는 경우도 동일하게 처리하면 된다.import kotlinx.coroutines.*val scope = CoroutineScope(D..

결론은..웰메이든 된 제품을 있는 그대로 잘 활용하자 ㅋ 현재까지는 "서브 기능"으로만 이용 했기 때문에 정확도를 크게 신경 쓰지 않았다."주요 기능"으로 많이 사용한다 해서.. 개선 해야지... 해야지. 했던 부분을 진행하려고 한다. "고도화"를 검색했을 때 "고도 + 화" => (자동화, 선진화, 운동화, 화요일, 멀고도, 밝다고도,...)" ..깜놀! 일단 모든 단어들을 형태소 분석이 되지 않도록 사용자 사전에 추가해서 급한 불을 껏다. ###일차적인 목표는원본 Text가 그대로 나와야 된다고 생각한다.그 이후 형태소로 나눠진 추가적인 결과 리스트가 나오면 덤인것이다. 하지만 지금처럼 전혀 기대 하지 못한 결과가 나와 버렸으니... 튜닝을 해보자! ㅠ 형태소를 분석해주는 친구들이 제법 있다. ht..
aop 는 관심사를 횡단으로 보는 것이다.모든 로직은 위에서 아래로 흘러간다. 근데 이것을 옆에서 보자는 것 이쥬. 옆으로 본다는 것에 대한 느낌을 가져야 한다. 위에서 아래로 내려가는 로직에.. 옆에서 갑자기 깜빡이 키고 새치기 해서 자기 할 일 하는 것이다. 암튼 하고자하는 바는 공통의 로직을 필요한 로직에 때려 받기 위함이다. (물론 모든 로직이 될 수도 있고) 예들들어 모든(필요한) 도메인 로직을 태우기 전에 JWT 체크를 하다던지... 로깅을 하다던지... 하는 작업일 때 깜빡이 키고 진행s! 어떤(유**) 회사의 리소스를 본적이 있었는데 ㅎㄷㄷ모든 EndPoint에서 시작하는 3줄의 로직이 무조건 똑같았다. (로깅을 하는 로직) 누군가는 처리 했어야 했는데.. 그니께.. 주식 상장을 해도..아..
SELECT id, action, regDtFROM ProductWHERE action = 'EARN_TODO'AND style = 'POINT'AND regDt > DATE_SUB(CURDATE(), INTERVAL 7 DAY)AND regDt VSSELECT id, action, regDtFROM ProductWHERE action = 'EARN_TODO'AND style = 'POINT'AND DATEDIFF(CURDATE(), regDt) = 7 EARN_TODO를 정확히 7일 후에 조건이 충족되면 EARN으로 UPDATE 해줘야 한다.따라서 UPDATE할 대상을 조회하고자 할 때 어떤 쿼리가 더 효과적인지는.. 일단 무조건 피해야할 조건은 컬럼의 함수나 연산을 좌측에 두면 안 된다. ⭐⭐인..
매번 할 때마다 찾아보는..녀석이라...정리 좀 하자.이해를 정확하게 못했기 때문에 매번 찾아본다고 생각한다. ㅠㅠ 또또 정리하자..// I/O 작업이나 블로킹 작업을 처리하기 위한 스케줄러입니다Schedulers.boundedElastic()// 별도 외부 API 호출할때나 혹은 대용량 엑셀 혹은 파일처리 할 때 기타.. 등등 좋겠다.// 짧은 시간 내에 끝나는 CPU 바운드 작업을 처리하기 위한 스케줄러입니다.Schedulers.parallel()// 한방 쿼리를 좋아하지만..어째거나 여러개의 쿼리를 쨉쨉이 날리 때 기닽.. 등등 좋겠다.// 두 친구의 차이는 반환값이 있고 없고Mono.fromRunnable() vs Mono.fromCallable() 비동기로 처리해도 문제 없는 것들은 비동기로..
애초에 완벽한 요구사항으로 나왔다면 하지만.... 그럴수... 럴수 없기 때문에 늘 확장성을 고민..해야 한다. 뭐 일단 기존 잘 사용하고 있는 기능이고@Get("/product/{style}/count")fun findAllAvailableCount(@Param("style")style: String): Mono userId의 값이 필요한 케이스가 생겼다.@Get("/product/{style}/count")fun findAvailableCount(@Param("style")style: String, @Param("userId")userId: String?): Mono { 해서 추가 @Param을 userId의 물음표로 처리만 하면 될 것 같았는데 기존코드가 안 돌아간다. 아래처럼...Mandatory..