| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- mysql8업그레이드
- java jdbc utf8mb4 연결 오류
- fractional seconds
- +9:00
- sendFractionalSeconds
- createEntityGraph
- https
- 운영체제별 차이
- 티스토리챌린지
- 오블완
- mysql =
- yml
- 운동해서 광명찾자
- load order
- MYSQL
- mysql equal null
- MSSQL
- getDateCellValue
- Protecle
- getEntityGraph
- 버전 문자열 비교
- NamedEntityGraph
- RootGraph
- jdbc utf8mb4
- spring boot
- mysql not equal null
- 1*1000
- apatch poi
- jdbc characterencoding utf8mb4
- AuditingEntityListener
- Today
- Total
목록분류 전체보기 (125)
Hello
두 달 전까지 잘 사용하던 Azure DevOps Release 파이프라인이 Dev 환경에 배포 테스트를 진행하던 중 에러가 발생했다. 오랬동안 파이프라인 설정을 손대지 않아 에러가 생소하게 느껴졌다. [에러 내용]설정한 에이전트 풀에서 windows-20190vs2019-ap-default가 더이상 지원되지 않음을 의미한다.windows-2019 이미지가 제거됨Azure DevOps의 MS Hosted Agent는 주기적으로 이미지가 변경/종료되므로, 오래 유지한 파이프라인에서 이런 문제가 발생할 수 있다. [해결 방법]1. Agent Pool 변경기존 Hosted Windows 2019 with VS2019 -> 변경 Azure Pipelines 2. Agent Specification환경에 맞는 o..
배경ISMS 심사 과정에서 Tomcat 기본 에러 페이지 노출이 보안 이슈로 지적되었다. 대상 에러 예시 : 400, 505, 501 문제 특징 : 위 에러들은 서블릿/어플리케이션 진입 전 (HTTP 요청 파싱 단계) 에서 발생한다. 문제 : 어플리케이션에 설정한 에러페이지로 처리되지 않고 Tomcat 기본 에러 페이지가 그대로 내려감생각한 해결 방향서블릿 이전 단계(early error)에서 발생하는 에러도 서비스 정책에 맞는 커스텀 HTML로 내려서, 톰캣 기본 에러페이지 노출 되지 않도록 생각했다.Valve란(왜 Valve를 봤는가)Tomcat의 컨테이너 파이프라인(Container → Host → Context) 에 끼워 넣는 컴포넌트로 서블릿 필터보다 앞 톰캣 내부에서 동작한다.예: Access..
데이터베이스에 두 개의 Enum 컬럼이 존재하고 어플리케이션에서는 Enum 값을 조합하여 클래스 단위로 구분해 처리한 내용을 JPA 상속 매핑 전략, Hibernate의 @DiscriminatorFormula 활용, 조합형 Enum을 엔티티에서 사용 방법으로 나눠 정리하고자 합니다.1. JPA 상속 매핑 전략 JPA는 상속 구조를 테이블에 매핑하기 위해 세 가지 전략을 제공함.전략특징SINGLE_TABLE모든 상속 엔티티를 하나의 테이블에 저장함JOINED부모/자식 테이블 분리 후 조인함TABLE_PER_CLASS자식별 독립 테이블 사용함 - @DiscriminatorColumn과 @DiscriminatorValue구분컬럼(discriminator column)을 통해 어떤 엔티티 타입인지 판별ex) 아..
에러 내용 : 현재 사용자가 해당 작업을 수행할 권한이 없음.ERROR 1142 (42000): command denied to user ''@'' for table '' 해결 방법 : 권한 부여웹 서버나 애플리케이션에서 권한 부여 후 연결을 끊지 않고 계속 재사용할 때 커넥션 풀링에서 캐시된 세션 상태로 인해 반영이 지연될 수 있음. 해결 방법 1: 연결 풀 타임아웃 기다리기해결 방법 2: 연결 풀 강제 초기화- 애플리케이션 재시작- 커넥션 풀 수동 초기화(schedule, rest api 엔드포인트)
프리마커(Freemarker)를 사용하다 Java에서 Map을 넘겼는데 템플릿에서 ${map[1]} 같은 코드가 동작하지 않는 문제를 만났습니다. 간단한 해결방법과 이유를 정리합니다.🧩 Freemarker의 기본 동작 원리Freemarker에서는 Java의 Map 객체를 해시(Hash) 로 처리합니다. 그런데 이 해시는 Java Map처럼 타입을 유연하게 받아들이지 않습니다.모든 키는 기본적으로 문자열(String)으로 처리되며, 내부적으로도 map.get("1")처럼 문자열 키를 기준으로 조회합니다.즉, Java에서 이런 Map을 넘겼다면Map myMap = Map.of(1, "One", 2, "Two");Freemarker에서는 ${myMap[1]}이 실제로는 ${myMap["1"]}로 작동하기 때..
1. 문제아닌 문제의 시작..?빅데이터팀으로부터 MySQL에 LONGTEXT 컬럼이 추가되었는지 확인 요청이 들어왔습니다.확인 결과, 담당자가 관리자 기록용으로 사용하기 위해 LONGTEXT로 memo 컬럼이 아래와 같이 추가했다고 합니다.ADD COLUMN `memo` LONGTEXT NULL DEFAULT NULL; 2. LONGTEXT 사용 이유..?컬럼을 추가하신 분이 길이에 대한 요구사항이 없어 안전하게 가장 큰 값으로 설정해 두셨다고 한다.(통도 크시지 참) TEXTMEDIUMTEXTLONGTEXT최대 크기~64KB~16MB~4GB인덱스 제한인덱스 길이 제한 존재 (최대 길이 지정 필요)동일동일메모리 사용적음중간많음쿼리 성능 영향작음중간큼정렬·GROUP BY 제한제한 있음 (기본 1024바이..
MySQL JDBC 드라이버(Connector/J)의 의존성을 8.0.18에서 8.2.0으로 올린 뒤, 기존에 Timestamp를 사용하던 코드에서 아래 에러가 발생했습니다.java.lang.IllegalArgumentException: Cannot format given Object as a Date at java.text.DateFormat.format(DateFormat.java:310) ~[na:1.8.0_242] at java.text.Format.format(Format.java:157) ~[na:1.8.0_242]분명 SimpleDateFormat에 Timestamp는 잘 들어가는데, 갑자기 에러가?? 디버깅해보니 해당 컬럼에서 Timestamp가 아니라 LocalDateTime 객체가 반환..
1. 문제 발생MySQL 5.x에서 MySQL 8.0으로 업그레이드한 후, 로컬 테스트 도중 쿼츠 스케줄러에서 에러가 발생했습니다.org.quartz.JobPersistenceException: Couldn't acquire next trigger: Table 'aa.QRTZ_TRIGGERS' doesn't exist에러 내용은 QRTZ_TRIGGERS 테이블이 aa 데이터베이스 에 존재하지 않는다는 뜻입니다.2. 원인 분석에러의 원인을 분석한 결과, 기존의 MySQL 5.x에서 사용하던 대문자 테이블 이름이 MySQL 8.x로 복제되면서 소문자 테이블 이름으로 변환되어 저장된 것을 확인했습니다. 또한, lower_case_table_names 옵션이 0으로 설정되어 있었기 때문에, MySQL은 대소문..
MySQL 5.x 버전의 지원 종료로 8버전으로 업그레이드를 진행하게 되었습니다.기존에 JDBC characterEncoding 옵션을 utf8로 사용하고 있었으나, 관련 문서에서 utf8mb4를 사용해야 한다는 내용을 확인하고, 이를 변경한 후 발생한 에러를 해결하기 위한 과정에서 characterEncoding 옵션과 관련한 내용을 정리합니다. 1. JDBC 연결 문자열 옵션 변경 (utf8 → utf8mb4) 기존 : ?useUnicode=true&characterEncoding=utf8변경 : ?useUnicode=true&characterEncoding=utf8mb42. 런타임 에러 발생utf8mb4를 지원하지 않는다는 에러 발생Caused by: com.mysql.cj.exceptions.Wr..