일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 플루터
- jsonMarshaller
- Armeria
- 월급루팡 일지
- Loki 로그
- Ingress Controller Fake
- hbase 저장공간 설정
- UnsupportedOperationException
- fake jwt
- pinpoint
- reids
- 논블록킹 성능
- OIDC
- pinpoint 2.5.3
- ㅉ때
- 개발 어렵당.ㅠ
- 오블완
- LPOS
- intellij
- 노드간 통신
- 더티체킹
- formik
- 티스토리챌린지
- R2DBC Paging
- save/update
- 핀포인트
- jar 배포
- 애자일 싫타
- nGinder
- RedirectService
- Today
- Total
목록전체 글 (226)
대머리개발자
매번 할 때마다 찾아보는..녀석이라...정리 좀 하자.이해를 정확하게 못했기 때문에 매번 찾아본다고 생각한다. ㅠㅠ 또또 정리하자..// 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..
있고 없고를 쉽게 판단할 수 있다.예를들어 루틴의 스케쥴을 만들 경우 0x1000000 월0x0100000 화0x0010000 수0x0001000 목0x0000100 금0x0000010 토0x0000001 일 오늘 수행해야할 루틴(미션)을 가져올때 진짜 심플하게 가져올 수 있다.select id from routine where (weekSchedule & 0x0010000) = 0x0010000 and userId = '가즈아'; 각 루틴이 가지고 있는 스케쥴 Value에서 수요일 비트 Value(0x0010000)를 AND(&) 연산하면 된다.!모든 부분을 심플하게 처리할 수 있다. 문제는 JPA에 지원이 안 된다. 쉬바. ...where(qChallengers.status.eq(Status.S) ..
뭐든 명시적으로 그림을 그려야한다. 추상화가 아니라면 사실 고민할 것도 없는 부분이다. ㅠ 게시판에 갑작스 비밀여부에 대한 기능이 필요했다.비밀 여부에 대한 컬럼을 새롭게 파면 아무 문제가 없다.근데 파기가 싫어진다. ㅋㅋ 납득이.. 포인트 라는 컬럼에 묻어서 사용하고 싶다.public boolean isSecretPost(Post post) { return post.getPoint() == -99;} secret 필드를 두는 것이 혼동을 줄이고 코드의 가독성을 높일 수 있다. 분명하다.!! 당연하다.. 근데 해당 기능의 소비가 그리 많지 않고 간혹 쓴다고 하면 저장소의 낭비가 된다.물론 여기서도 QNA 게시판에서만 사용된다.. -> 운영자에게 비밀글로 문의!s즉, 발생하는 99%로의 데이터가 ..
static은 위험한 녀석이다. 공용으로 쓰기 때문에 객체의 상태를 보관하기 적합하지 않다. 보통의 아래와 같은 이유로 사용하지 않나 싶다. 1. 불변의 객체!!2. 객체의 상태가 아닌 Utils성의 메서드3. 내부 클래스는 static 기본기가 없으니.. ㅠ 여러개의 오류 폭탄이 떨어지면...삽질에 삽질을 거듭하네 잘 돌아가는 코드는 어지간하면 건들지 말자 !! 네이버 내부 클래스 static 선언을 필요 없지 않을까 해서 시원하게 삭제를 러쉬했다.네이버를 이용하는 "특정" 사용자가 로그인이 안 된다고. ㅎㄷㄷ 결론은 NULL이 바인딩되서 문제가 발생한 부분인데... 차이는 static이 있고 없고의 차이non-static 클래스로 선언하면 nullstatic 클래스로 선언하면 blank 그냥 다시 ..
든든한 동반자이자 경쟁자이다. 무조건 의지하는 것이 아닌 양방향 교차 검증 차원에서 이용하면 Nice 코딩을 직접 만드는 것도 너무 좋지만 한계가 분명있다. 웰 메이든 된 코드를 많이 봐야 한다. 그래서 보통 쥬니어 친구는 솔루션 회사를 추천한다. ㅎㅎ; 뭐 암튼! 같은 리소스를 운영에 반영하면 메서드가 실행이 되지 않아서 질의를 했던 부분이다. 로컬에서 너무나도 잘 실행하는 친구가...운영환경(k8s)에서.. 먹통이다. @PostConstruct 해결책은 InitializingBean 상속 받아서 afterPropertiesSet() 구현하면 된다. AI 고맙다. 쉽게 해결했으야! 대에충 이유같지 않은 이유를 끄쩍여 보자면스프링(부트) 진영에서 나온 어노테이션이(@)이 아니다. 즉, 프레임워..
oauth의 개념은 정말 심플하다.인증을 대신 해준다는 것이다. SSO의 개념이쥬. 작년에 휘갈긴 내용이 있네.https://hcnmy.tistory.com/25 What the OAuth2.0생각의 흐름대로 주저리 주저리!! 수 많은 블로그에서 저마다의 이해를 바탕으로 저마다의 생각이...온전하지 못한 나를 흔들고 있다. 여긴 오데?? 나는 누구?? 무엇을 하고 있지??...아아어어...hcnmy.tistory.com 뭐 암튼.. 네이버, 카카오, 구글, 애플, 페이스북, .. 대형 서비스 업체들에 "이미 가입된 내 정보"를 통해서 인증을 위임하고 전달받은 토큰을 우리내 시스템에 녹여서 서비스하면 된다. 근데 보통 전달받은 토큰을 그저 사용하기 보다는 내부 토큰을 다시 만들어서 사용한다. Why -> ..
스프링 시큐리티를 이용하면 쉽게(?) 적용 가능하다.http.csrf().disable().authorizeRequests().antMatchers("/admin/**").hasRole("ADMIN") // Only ADMIN users can access /admin/**.antMatchers("/user/**").hasAnyRole("ADMIN", "USER") // ADMIN and USER can access /user/**.anyRequest().authenticated() // Any other req... 나름 인증서버를 구축해서 사용하기 때문에...비지니스 로직에서 녹여야 한다. 아르메리아 프레임워크를 적용해 인증서버를 구축했기 때문에 쉽게(?) 적용할 수 있다. @Beanpublic Ar..