본문 바로가기
반응형

프로그래밍300

[스프링부트] EnableScheduling , Scheduled로 주기적인 스케쥴링 설정 오늘은 인수인계 받은 소스를 들여다보다, 특정 테이블에 지속적으로 쌓이는 가비지 데이터를 삭제하기 위해 만들었던 것 같은데 주석 처리가 되어 있었다. 아마 매일, 새벽에 스케쥴러가 돌긴 했겠지만, 데이터는 삭제되지 않고 있었을 것 같다. 글을 쓰다보니, 문득, 이런게 여러 곳에 있으면 위험할 것 같다는 생각도 든다. 소스에서는 운영서버가 아닐 경우에만 삭제가 되도록 되어 있는데 왜 그랬을까? 데이터는 운영에서 적재될 것이고 적재된 데이터는 수십기가까지 증가할 수 있는 상황이고, 실제 그런 상황이 이러나, 가비지 데이터를 삭제하는 쿼리를 짜서 돌리고 있는 실정인데 말이다. 여튼 몇 개의 어노테이션을 검색한 결과, 비교적 간단하게 spring에서 스케쥴링을 할 수 있다는 것을 알게 되었다. @Componen.. 2023. 6. 8.
Springboot 3.0 Maven, QueryDSL설정 자료. 오늘, 책을 보며 따라하기 중, QueryDSL설정 부분이 제대로 되지 않아 몇 시간 휭~ 하고 날렸다. 덕분에 시간은 아주 잘 갔고 즐거운 금요일이 되긴했지만 참 요상한 일이었다. 알고 보니, 스프링부트의 버전에 따른 QueryDSL설정의 방법이 달라진 것 같다. 검색 자료들의 대부분이 같은 오류를 내뱉지만 해결은 수월했다. gradle프로젝트에서는 다양한 해결책이 검색 결과로 많았지만, maven 설정에 대한 자료는 많지 않았다. 아마도 그만큼 메이븐을 이제는 많이 사용하지 않는것인가? 하여튼, 누군가도 나와 똑같은 현상을 겪었고 해결했다는 내용을 올렸지만 그대로 따라 했을 때 나는 되지 않았다. 차이점을 찾기 위해 이런 저런 버전들을 계속 바꿔가면서 시도를 했는데... 3시간만에 감잡고 원인을 해결.. 2023. 4. 28.
@Transient 사용 예, - Entity클래스에 임시 프로퍼티 정의할 때 지난번 MSA관련 책을 읽을 때 JPA파트에서 얼핏 읽었던 것 같아 기억을 더듬어 검색을 해보니 기억이 맞았다. 이번에 1.0서비스의 데이터베이스 중 일부 테이블의 데이터를 2.0으로 마이그레이션을 해야하는 일이 있는데, SQL에서 하는 것이 아니라 사용자별 마이그레이션이고 어플리케이션 단에서 처리를 해서 마이그레이션을 해야 하는 상황이다. Legacy 테이블의 Entity에서 2.0 테이블로 마이그레이션을 위해 로직을 구현하다 보니, 건당 repository조회를 해야할 상황이 너무 많아, 최초로 조회해 리스트를 순환하면서 해당 Entity클래스에 필요하는 관계를 맺은 객체(Entity)를 담아, 최종적으로 save()를 하면 좋겠다는 생각이 들었다. Legacy 테이블의 Entity에 정형화 되지 않.. 2023. 4. 12.
Android - 빌드 파일명 변경 오늘은, 안드로이드 Build를 통해 생성되는 결과물의 파일명을 입맛대로 변경하는 내용에 대해 정리를 해본다. 우선, build.gradle(Module :app) 파일의 내용에 다음을 추가한다. android { namespace 'kr.demo.' compileSdk 32 defaultConfig { applicationId "kr.demo." minSdk 30 targetSdk 32 versionCode 4 versionName "2.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFil.. 2023. 4. 6.
Workbench - Lost connection to MySQL server during query 테이블에 데이터가 많은 경우 쿼리 질의가 오래 걸린다. 특히, 컬럼을 추가하거나 삭제할 때 더욱 오래 걸린다. 가끔 저런 오류 문구가 나올 때가 있다면 다음 설정을 확인해보길 바란다. MySQL Session 탭의 시간을 기본값보다 더 길게 잡는다. 30초, 60초 이렇게 잡혀있다면, 600, 300 으로 늘린 다음, Workbench를 재실행하고 실행해보면 오류가 사라질 것이다. 시간은 뭐, 적당하게 늘려서 ^^ 2023. 4. 4.
[Javascript] iPad|Andorid|iPhone User-Agent확인 및 구분 이번에 아이패드 전용 앱에서 하이브리 형식으로 서비스를 개발하는데, 네이티브와 연동을 해야하는 부분이 있어 Bridge개발을 해 놓고 보니, 웬걸 ~ 로그인 페이지는 또 서버(Back-end) 단에서 UI를 만들둔 사실을 뒤늦게 깨닫게 되었다. 바보같이. 결국 혼자서 북치고 장구치고 다해야하는 상황이 발생했는데 아이디/비밀번호를 넣고 로그인 하는 시점에 앱 영역에 아이디/비밀번호를 저장해야 하는 상황이라 안드로이드/아이패드를 구분하기 위해 User-Agent를 뒤졌더니, 안드로이드는 별 문제가 없고 아이패드의 경우 "iPad"라는 문구가 사라지고 없다. 인터넷 검색을 해보니 iOS13부터 바뀐거라는데, 나도 익히 알고는 있었지만, 정작 iPad 앱 개발을 할 일이 없고 더군더나 네이티브만 작업을 하니 웹.. 2023. 3. 29.
반응형