[React] SWR 조회시 무한루프에 걸렸던 사례 (useSWR, infinite loop)

By | 11월 4, 2021

모듈 상단에서 아래의 swr함수를 호출하는데, useMemo()가 불필요하다고 생각되어 제거했더니 무한루프가 걸렸었음. swr의 args로 들어가는 url string이 함수 내부에서 생성되어 계속 변경이 되니 무한루프가 발생했던 것이었음. 결국 useMemo()를 다시 사용하여 해결 function useSWR(type: string, query?: any) { const url = useMemo(() => { switch(type){ case '1': return '/board/01'; case '2': return '/board/02'; default: return null; }… Read More »

각 언어별 날짜포맷 샘플 (date format)

By | 11월 4, 2021

java yyyy-MM-dd HH:mm:ss.SSS (e.g. ‘2021-01-31 23:59:59.123’) MySQL %Y%m%d%H%i%s (e.g. ‘20210131235959’) %Y-%m-%d %H:%i:%s (e.g. ‘2021-01-31 23:59:59’) %c/%e (e.g. ‘4/1’) (leading zero가 제거된 월일 표기) Oracle yyyymmddhh24miss (e.g. ‘20210131235959’) yyyy-mm-dd hh24:mi:ss (e.g. ‘2021-01-31 23:59:59’)

리눅스(or 유닉스, linux, unix)에서 자바(java) 실행(command line execute) 예제

By | 11월 4, 2021

실행 예제 java -cp .:/jarPathA/*:/jarPathB/abc.jar com.itpsolver.Test 설명 jar 파일들에 대한 wildcard 처리는 오직 ‘/*’ 패턴만 가능하다. maven으로 jar를 빌드해서 -jar 명령으로 실행했다가 classpath를 찾지 못하는 문제가 발생해서 조사해 봤더니, -jar 명령으로 실행할 경우 모든 classpath 파라미터가 무시되기 때문에, jar 패키지 안에 모든 클래스가 담겨 있어야 한다고 한다. (아웅..또 삽질했다..) 결국 -jar 옵션으로 실행하는 것은 현실적으로… Read More »

[ibatis/oracle] 내장 반복문을 통해 대량(배치, batch) insert 를 하는 샘플

By | 10월 21, 2021

Mybatis 아니고, 골동품인 Ibatis 입니다. 생각지도 못한 에러들이 나와서 (ora-00933 등..) 삽질을 했네요. (시간 아깝 ㅠ.ㅡ) <insert id="BatchDAO.insertMemberRest" parameterClass="java.util.HashMap"> INSERT ALL /* BatchDAO.insertMemberRest */ <iterate property="mberList" conjunction=" "> INTO COMTNGNRLMBERREST ( MBER_ID, PASSWORD ) VALUES ( #mberList[].MBER_ID#, #mberList[].PASSWORD# ) </iterate> SELECT * FROM DUAL </insert> 그런데 하다 보니 이것도 조심해야 할 것 같다는 생각이 들었다.… Read More »

Dbeaver 에서 charset 설정 (ms949 => utf8)

By | 10월 2, 2021

DBeaver 에서 편집하는 sql 파일들이 윈도우 기본 캐릭터셋이라 타 편집기에서 깨져 보이는 경우가 있어서 utf-8로 바꾸고 싶었다. 윈도우 > 설정 > 일반 > 작업공간 > ‘텍스트 파일 인코딩’ 에서 변경

IntelliJ 라이센스 갱신 (by jetbrain account)를 하려고 하는데, 에러(SignatureException: Signature doesn’t match or Signature length not correct)가 발생할 경우

By | 9월 27, 2021

방법 1. IntelliJ의 연결 설정 재조정 Go to: File -> Settings -> Appearance & Behavior -> System settings -> HTTP Proxy Select Auto-detect proxy setting Click Clear password Click check connection and provide the URL: https://account.jetbrains.com/login Go to Help -> Register and login 방법 2. jetbrain 웹사이트에서 그냥 offline key를 획득하여 인증

MyBatis insert 문 사용시 PK 획득하기 (useGeneratedKeys)

By | 9월 25, 2021

mybatis query xml <insert id="insertBook" useGeneratedKeys="true" keyProperty="bookId"> INSERT /* insertBook */ INTO book ( book_title ) VALUES ( #{bookTitle} ) </insert> 쿼리 이후 result 객체가 아닌 parameter 객체에서 bookId 를 참조하면 PK 획득. 이 테이블의 PK는 book_id 이지만 auto increment 이기 때문에 쿼리에는 기재되지 않았음. 대신 keyProperty 에 프로퍼티명이 명시되어 있음 mybatis config에 mapUnderscoreToCamelCase 가… Read More »

springboot 환경설정 메모 (ver 1.5.22)

By | 9월 23, 2021

web환경 (servlet..)을 제거하는 설정 application.yml spring: main: web-environment: false spring security 를 제거하는 설정 기동 클래스 @SpringBootApplication(exclude = { SecurityAutoConfiguration.class }) application.yml security: basic: enabled: false management: security: enabled: false

mariadb 쿼리 수행시 “Illegal mix of collations” 오류 케이스

By | 9월 4, 2021

평범한 select query 였는데, join 조건에서 오류가 발생했었다. SQL Error [1267] [HY000]: (conn=2246) Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '=' 두 테이블의 charset 같은 게 상이해서 그런가 싶긴 했는데.. 검색을 통해 아래와 같은 방법으로 해결했다. 수정 전 and a.COL1 = b.COL2 수정 후 and a.COL1 = binary b.COL2 (binary를 좌변, 우변 어느쪽에… Read More »

오라클 XE 18C (Oracle Database Express Edition) 윈도우용 설치 및 테스트 사례

By | 9월 2, 2021

진짜 한 10년 만에 오라클을 설치해 보는 것 같은데, 많이 바뀌어서 좀 헤멨다. 예전의 10g, 11g 같은 것은 라이센스가 없이는 다운로드를 받을 수 없게 바뀌었고, 그래서 최근 버전인 19c를 설치해 보려고 했는데, 얘는 설치화면 자체가 windows installer 답게 생기지 않은 것 부터 불안불안 하더니 결국 계속 알 수 없는 설치 실패로 포기. 그래서 알아보니 XE… Read More »

Mybatis 오라클 프로시저 (Oracle Stored Procedure) 호출시, ‘java.sql.SQLException: 해당 위치에 지원되지 않는 SQL92 토큰: 1:’ 오류 발생 케이스.

By | 8월 20, 2021

이 케이스는 그야말로 황당 그 자체! 결론부터 말하면 mybatis xml 에서, 중괄호와 소괄호를 다른 라인에 위치시켜서 발생 한 문제이다. 그것도 같은 프레임워크에서 돌리는 MariaDB 프로시저 호출시는 문제가 없는데, ‘오라클 프로시저 호출시에만’ 이 문제가 발생했다. 전혀 예상 못하고 헤멜뻔 했는데, 인터넷에 또 선구자가 계셔서 해결할 수 있었다. 잘못된 예 { CALL PKG_A.PROC_TEST( #{rsltcode, mode=OUT, jdbcType=VARCHAR}, #{rsltmsg,… Read More »

[MySQL/MariaDB] 동일한 데이터가 없을 경우는 INSERT, 있을 경우에는 UPDATE (ON DUPLICATE KEY – 오라클의 MERGE INTO 같은)

By | 8월 16, 2021

Oracle의 MERGE INTO 문의 경우 동일 데이터에 대한 판단 기준을 개발자가 쿼리에 명시하는 데 반해, MySQL 계열에서는 조건을 따로 받지 않고 Unique Index를 사용하는 것 같다. (추측임) INSERT INTO tb_sample ( col1 , col2 , col3 ) VALUES ( 'AAA' , 'BBB' , 'CCC' ) ON DUPLICATE KEY UPDATE col2 = 'XXX', col3 = 'YYY'… Read More »

Spring @Scheduled 스케쥴러 사용 샘플 (cron 표현식 등)

By | 8월 11, 2021

Spring Boot 라면 @EnableScheduling 을 붙여서 기본 셋팅이 가능한 것 같은데, 일반 Spring 에서는 아래와 같은 셋팅을 추가해 주어야 한다. thread pooling 관련 설정을 하기도 하는 것 같은데, 여기서는 가장 심플한 구성을 사용하기로 한다. spring context xml (‘task’ 가 포인트) <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!–… Read More »