일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- apatch poi
- @EntityListeners
- 운동해서 광명찾자
- Protecle
- 버전 문자열 비교
- load order
- 1*1000
- getEntityGraph
- AuditingEntityListener
- yml
- @CreateDate
- deserializer
- spring boot
- 티스토리챌린지
- EmbeddedId
- 오블완
- https
- createEntityGraph
- pooled-lo
- mysql not equal null
- NamedEntityGraph
- RootGraph
- mysql equal null
- MSSQL
- MYSQL
- sendFractionalSeconds
- +9:00
- fractional seconds
- mysql =
- getDateCellValue
- Today
- Total
목록전체 글 (95)
Hello
사내 인프라 방화벽 규정에 기본적으로 모든 포트는 닫아두고 사용하는 포트만 열어두는 정책이 있다. Redis 에 접속해서 Pub/Sub을 사용해서 게임 서버와 의사소통을 하는 일이 필요해 방화벽 작업 요청 할 일이 있었는데 나는 공유받은 Sentinel ip/port만 신청 후 통신을 했는데 time out에러가 발생했다. ConnectTimeoutException: connection timed out: /xxx.xxx.xxx.xxx:xxxx 나는 Sentinel 정보가 Redis 서버 정보와 동일하다고 생각했는데 잘못 알고 있었던 것이다. Redis Sentinel 구성은 Redis 서버와 Sentinel서버를 연결하고 어플리케이션과 Sentinel을 연결해 Redis master 을 전달한다. Re..
하..다썻는데..날라갔다 진짜 하기싫다 인생사 왜 임시저장도 안되있냐 진짜 다시 해야하냐 LocaleResolver request를 통한 locale 확인과 request,response를 통한 locale 수정을 모두 허용하는 웹 기반 lcoale 확인 전략용 인터페이스 request, session, cookie 등 기반한 구현을 허용합니다. 기본 구현은 Acc RequestContext.getLocale() 실제 해결 전략과 관계없이 현재 locale 값 확인 가능하다. spring4 부터 LocaleContextResolver 이 추가 되어 Locale 및 Timezone 정보 지원이 가능합니다. - AcceptHeaderLocaleResolver 브라우저에 설정된 language 정보를 사용한다..
엑셀에서 날짜를 읽어 db 저장 후 조회 시 날짜값이 다르게 들어갔다는 이슈를 전달 받았다. 디버깅을 해보니 엑셀은 아래와 같은 시간인데 실제로 읽은 데이터는 다르게 읽혀 굉장히 당황 스러웠다. 구글링을 해보니 엑셀이 밀리초 없이 날짜 시간 값을 표시하면 내부적 으로 초로 반올림해 날짜를 표시한다는 글이 있어 확인을 해보니 getDateCellValue() 내부적으로 getNumbericCellValue()를 호출해 Date 객체를 만드는데 이 때 millisecond 값이 995로 들어가서 59초로 만들어지게 된다. 그래서 14:20을 기대했으나 14:19:59라는 결과를 얻게 된다. 그래서 자바에서도 반올림을 해 처리를 해야 하는 것을 알게 되었다. getDateCellValue() 에서 DateUt..
a 테이블의 컬럼을 b 테이블의 값으로 업데이트 할 때, 테이블을 조인해서 사용할 수 있다. UPDATE [테이블1] JOIN [테이블2] ON [테이블1].key = [테이블2].key SET [테이블1].value1 = [테이블2].value1;
현재 꽤 오래전에 구성한 applicationinsights-agent-3.0.0-PREVIEW.4.jar 를 사용하고 있었다. 어플리케이션 실행 될 때마다 agent 에러로그가 찍히는 현상을 다른 이슈를 확인 하다 발견하였는데, 에러는 agent 에서 의존하는 특정 클래스를 찾을 수 없다는 에러였다. 재밌는 것은 에러가 존재하지만 어플리케이션 실행에는 이슈는 없었다. 2020-08-21 09:59:07.169+09 INFO applicationinsights.diagnostics - Application Insights Codeless Agent Attach Successful 2020-08-21 09:59:08.497+09 ERROR i.o.auto.tooling.HelperInjector - Err..
멱등성 == f(f(x)) = f(x) 멱등성은 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 합니다. http 메소드가 멱등한지 구분할 때 실제 서버의 백엔드 상태만 보며, 각 요청에서 반환하는 응답 코드는 다를 수 있습니다. 멱등성 메서드 : GET, HEAD, PUT, DELETE, OPTIONS, TRACE 비 멱등성 메서드 : POST, PATCH, CONNECT 자주 사용하는 메서드의 멱등성을 아래 정리하고자 한다. (GET, PUT, DELETE, POST, PATCH) GET GET 메서드는 멱등성을 가집니다. 여러 번 연속해서 호출 했을 때 조회 데이터의 값이 바뀔 수는 있으..
azure app service를 사용하게 되어 테스트하는 중 시간이 utc로 설정 되어 서버시간을 사용할 경우 의도와 다르게 처리된 이슈가 있어 타임존 변경이 필요 했다. azure app service 에서 타임존 설정 방법을 기록하고자 글을 작성하게 되었다. app service가 window, linux os 타입별로 환경 변수 설정 값이 달라 설정 시 확인이 필요하다. - os별 time zone 설정 환경 변수 window linux time zone key WEBSITE_TIME_ZONE TZ azure portal 메뉴 : app service -> 설정 -> 구성 -> 새 어플리케이션 설정을 통해 등록이 가능하다. azure app service 환경 변수 및 앱 설정 페이지에 time ..
한글 검색을 할 경우 데이터 조회가 안되는 문제가 있었다. 처음에는 DB를 master, slave 이중화 하여 사용하고 있어 동기화 이슈로 예상을 하고 데이터를 확인 해보니 이슈가 없어 한글인 경우만 문제가 있는 것을 파악했다. insert할 때 한글값 저장이 잘되고 조회할 때 안되는걸로 보아 master, slave의 차이가 있을 것이라 추측하고 각 디비의 character를 확인해보니 character_set_server 값이 latin1로 설정되어 있었는데 이것이 문제였다. 일전에 slave db복구 작업이 이루어졌는데 5.7.x버전을 사용하고 있어 기본 설정 latin1로 적용 된 것 같다. 캐릭터 셋을 명시적으로 설정하지 않으면 MySQL 5.7 이하는 latin1, MySQL 8은 utf8m..
SQLServer2012 버전부터 offset fetch절을 지원합니다. JpaRepository를 상속받아 Page findAll(Pageable var1); 메소드 호출시 Offset Limit절을 사용하지 않고 Jpa 자체 쿼리를 사용하는 이슈가 있어서 디버깅을 통해 OrderBy가 작성되지 않아 Offset절이 사용되지 않는 것을 확인했습니다. SQLServer2012LimitHandler.processSql() 메소드에서 order by절 유무를 통해 페이징 처리 쿼리절의 방법이 나뉩니다. public String processSql(String sql, RowSelection selection) { if ( hasOrderBy( sql ) ) { if ( !LimitHelper.useLimit..
spring boot properties 설정 관련된 내용을 새로 알게되어 정리하고자 글을쓴다. application.properties application-dev.properties spring boot는 profile properties 파일을 우선으로 로드하고있다. spring.active.profile 속성을 통해 읽고자 하는 프로파일을 설정할 수 있습니다. spring.active.profile=dev 속성을 지정한다면, 위와 같은 파일을 가질 경우 application-dev.properties -> application.properties 순으로 파일을 읽어 낸다. 위의 설정이 아래와 같이 값을 가지고 있다면 있다면, dev.properties 설정을 읽는다. 우선순위는 {profile}...