본문 바로가기
반응형

전체 글908

[Mysql] (Error) You can't specify target table 'xxx' for update in FROM clause MySQL에서 delete문에서 서브쿼리를 사용할 때 You can't specify target table 'xxx' for update in FROM clause 라는 에러가 발생했다. 실제 사용하려던 쿼리는 아래와 같다. DELETE FROM TABLENAME WHERE ID IN (SELECT MIN(ID) FROM TABLENAME); 결과가 제목과 같은 에러였다. 보면 알겠지만 SELECT 이나 DELETE 에 SYNTAX 등의 에러는 보이지 않는다. 이는 MySQL의 특징으로 데이터를 추가나 갱신할 경우 동일한 테이블로 서브쿼리를 사용할 수 없도록 되어 있기 때문이다. Oracle이나 Postgresql에서는 문제 없이 실행된다. 해결 방법 서브쿼리의 FROM 구는 임시테이블로 다룰수 있으므.. 2024. 3. 31.
[Tibero] Error (TBR-12033) : Lock acquisition failed in nowait mode Tibero 사용중 Error (TBR-12033) : Lock acquisition failed in nowait mode 에러가 발생하였다. 해결방법은 lock 걸린 트랜잭션을 종료 시킨다. 내용은 아래 참고 포스팅 참고 바란다. 그리고 또한가지 특별한 케이스가 있었는데, 동료 개발자와 각각 피시에서 로컬로 띄우고 동일한 테이블을 바라보고 있었다. 하나의 세션을 종료 시키니 해결이 되었다. 참고 포스팅 https://thenicesj.tistory.com/762 [Oracle / Tibero] Lock 걸린 테이블 확인 불특정한 다양한 이유로 Database는 Lock이 걸릴수 있고, 만약 그 Lock 이 DeadLock일 경우에는 멈춰버리는 상황이 생겨 최악으로는 프로세스를 내렸다가 다시 실행해야하.. 2024. 3. 30.
[Mysql] 이벤트 스케쥴러 (Event Scheduler) Mysql 에서 스케줄러를 사용할수 있다. 먼저 사용이 가능한지는 아래 쿼리를 통해서 확인이 가능하다. SHOW VARIABLES LIKE 'event%'; 그럼 Variable_name Value event_scheduler ON 이렇게 나온다. 만약 Off 일 경우 SET GLOBAL event_scheduler = ON ; 으로 설정해서 on으로 변경해준다. 그리고 생성과 삭제는 아래와 같다. --생성 CREATE EVENT eventName ON SCHEDULE EVERY 1 WEEK -- STARTS '2024-03-27 00:01:00' COMMENT 'event comment' DO TRUNCATE TABLE test; CREAT EVENT 이벤트명 ON SCHEDULE EVERY 반복주기 .. 2024. 3. 29.
한글 ASCII 코드 정리 한글에도 ASCII 코드가 존재한다. 아래에서 필요한 값 검색 후 사용 44032 가 44033 각 44034 갂 44035 갃 44036 간 44037 갅 44038 갆 44039 갇 44040 갈 44041 갉 44042 갊 44043 갋 44044 갌 44045 갍 44046 갎 44047 갏 44048 감 44049 갑 44050 값 44051 갓 44052 갔 44053 강 44054 갖 44055 갗 44056 갘 44057 같 44058 갚 44059 갛 44060 개 44061 객 44062 갞 44063 갟 44064 갠 44065 갡 44066 갢 44067 갣 44068 갤 44069 갥 44070 갦 44071 갧 44072 갨 44073 갩 44074 갪 44075 갫 44076 .. 2024. 3. 28.
[Error] Invalid value type for attribute 'factoryBeanObjectType': java.lang.String pom.xml 에서 다른것들은 그대로 두고 springboot 만 버전을 업그레이드 하니 Invalid value type for attribute 'factoryBeanObjectType': java.lang.String 이런 에러가 발생하였다. Mybatis를 사용중인데 springboot 버전에 따른 사용할수 있는 Mybatis 버전이 있는듯 하다. https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/3.0.3 여기에서 자세히 살펴보니 springboot 3.2.2 버전에서는 mybatis 3.0.3 을 사용해야한다. (3.0.2 버전을 사용중이었어서 에러가 발생하였고 버전업을 하면서 해결 하였다.) 2024. 3. 27.
[Error] java.lang.IllegalArgumentException: Illegal character in scheme at index 0: localhost Java 내에서 다른 controller 로 Uri 를 보내게 될때 java.lang.IllegalArgumentException: Illegal character in scheme at index 0: localhost 의 에러가 발생 하였다. 사용한 uri 값은 ..이상 생략 .uri("127.0.0.1:8080/test/test") ..이하 생략 이렇게 사용을 하였다. 기본적이고 당연한 부분이었지만 실수로 프로토콜 타입에서 http or https 를 적어주지 않아서 발생한 에러였다. .uri("http://127.0.0.1:8080/test/test") 로 변경하여 해결 2024. 3. 26.
RestClient 사용 이전 포스팅에서 타 서비스를 호출 하기 위한 몇가지 방법에 대해서 다룬 포스팅이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. 하지만 추가로 새로운 방법이 있어서 소개하는 포스팅을 작성한다. 스프링 3.2.2 버전에서 새롭게 추가된 기능인 RestClient 이다. 공식 홈페이지는 아래와 같다. https://spring.io/projects/spring-boot#overview Spring Boot spring.io 간단한 사용법은 아래와 같다. (post 기준) ..이상 생략 import org.springframework.web.client.RestClient; ..이상 생략 TestBuilderInDto testBuilderInDto = new TestBuilderInDto(); RestC.. 2024. 3. 25.
Strangler application 스트랭글러 패턴 개발에는 다양한 디자인 패턴이 있다. 다양한 패턴에 대해서는 아래 참고 포스팅을 참고 바란다. 이번 포스팅은 요즘 다양한 기업에서 다양한 프로젝트를 진행중인 모놀리식 -> MSA 프로젝트로 변환 작업시 변환 패턴이다. 먼저 아래 그림을 보면 왼쪽 처음엔 모든 코드가 Monolith 였는데 점차 변화되면서 결국 모든게 MSA로 바뀐 그런 패턴이다. 개발 패턴이긴 하지만 방법에 대한 패턴이라기 보다는 방향성에 대한 패턴인듯 하다. 참고 포스팅 https://thenicesj.tistory.com/87 디자인패턴 정의와 종류 소프트웨어 개발을 할때 사용되는 디자인 패턴이란 과거에 소프트웨어 개발 과정에서 발견된 설계 노하우를 축적하여 그 방법에 이름이 붙여서 이후에 재사용 하기 좋은 형태로 특정 규약을 만 t.. 2024. 3. 24.
[Mysql] Lock wait timeout exceed 동일한 쿼리에 대해서 여러번을 수행하는데 상황에 따라 Lock wait timeout exceed 가 발생하기도 하고 잘 수행 되기도 했다. 문제의 이유는 트랜잭션 수행 시간이 길어서 발생하였다. 일반적으로 Lock timeout이 발생하는 것은 단일 트랜잭션의 수행 시간이 오래 걸리기에 발생한다. 특히 배치성 작업은 트랜잭션 수행 시간에 특히 주의해야 하고, 만일 트랜잭션 수행 시간이 길다면 트랜잭션을 분리하는것을 권고한다. 해결책은 아래와 같다. 현재 Timeout 시간 확인 SELECT @@innodb_lock_wait_timeout; 원하는 시간으로 설정 SET GLOBAL innodb_lock_wait_timeout = 20; 2024. 3. 23.
반응형