분류 전체보기 363

mybatis selectKey 사용 방법 및 주의할 점 (selectKey 다중 컬럼)

mybatis selectKey 사용 방법 및 주의할 점 mybatis에서는 insert, update, delete 쿼리에 대한 결과로 해당 쿼리에 영향을 받은 행의 수를 반환합니다. 그중에서 insert의 경우 성공 시 int 타입의 1이라는 결과를 반환하며, 실패 시 에러가 발생하게 되는데요. (update, delete의 경우 쿼리에 영향을 받은 행의 수가 여러 행일 경우 그 값만큼 결과를 반환하는 반면, insert의 경우 여러 건에 대해 쿼리가 성공하더라도 1을 반환한다는 특징이 있습니다.) 해당 포스팅에서는 selectKey 요소를 통해 mybatis에서 insert 결과로 해당 데이터의 key 값을 받아오는 방법 및 selectKey 사용법, 그리고 주의할 점에 대해서 정리하였습니다. My..

Programming/Spring 2024.03.20

ObjectMapper는 Bean으로 등록해서 사용하자

ObjectMapper는 Bean으로 등록해서 사용하자 'ObjectMapper'는 Java 객체와 JSON 데이터 간의 변환으로 인해 Java 기반 프로젝트에서 많이 사용되는 클래스인데요. ObjectMapper는 생성 비용 등의 이유로 사용될 때마다 new 연산자로 생성하는 것보다 bean으로 등록하여 사용하는 것이 좋다고 생각하는데, 그 생각의 근거를 스스로 정리하기 위해 글을 작성했습니다. (생성 비용이나 메모리 등, 미세한 차이일 수 있지만 불필요한 자원의 낭비를 막을 수 있는 부분이라고 생각합니다.) ObjectMapper란? ObjectMapper는 JSON 데이터를 Java 객체로 역직렬화 하거나, 반대로 Java 객체를 JSON 데이터로 직렬화할 때 사용되는 Jackson 라이브러리의 클..

Programming/Spring 2024.03.12

윈도우 서버에서 jar 파일 백그라운드 실행하기

윈도우 서버에서 jar 파일 백그라운드 실행하기(+ 배치 파일 cmd 닫는 방법) 해당 포스팅은 윈도우 서버에서 jar 파일을 백그라운드로 실행하는 동작을 배치 파일(.bat)으로 만들어 사용해 보며 정리한 내용입니다. java 명령어로 실행할 경우 윈도우 서버에서 계속 동작해야 하는 Java 프로그램을 이미지와 같이 'java -jar [jar 파일명].jar' 명령어를 통해 실행하는 경우, 실행 이후 cmd(명령 프롬프트) 창을 닫으면 실행한 프로그램도 함께 종료되어 버리는데요. 이런 경우 리눅스 서버에서는 'nohup' 명령어를 통해 jar 파일을 백그라운드로 실행시킬 수 있는 반면, 윈도우 서버에서는 'javaw' 명령어를 통해 프로그램을 백그라운드로 실행시킬 수 있습니다. javaw 명령어로 실..

Programming/Java 2024.03.09

(티스토리) 오디세이 스킨, 글 제목 배경 제거하는 방법

(tistory) 오디세이 Odyssey 스킨, 글 제목 배경 제거하는 방법 최근 구글 웹페이지 속도 측정 사이트인 'PageSpeed Insights'를 통해 티스토리 블로그의 성능을 측정해 보았는데, 글 제목 부분의 배경 이미지로 인해 웹 페이지 로딩 과정에서 성능이 저하된다는 것을 확인하였습니다. (First Contentful Paint, Largest Contentful Paint 문제) 때문에 스킨 수정을 통해 배경을 제거해 보게 되었고, 해당 포스팅에서는 오디세이 스킨 편집을 통해 '글 제목 부분의 배경을 제거하는 방법'을 정리하였습니다. 글 제목 부분 배경 제거 전, 후 비교 먼저 스킨 수정을 통해 글 제목 부분의 배경을 제거하기 전과 후의 차이입니다. 제목이 있던 영역 자체는 최대한 유지..

IT Info 2024.03.05

jar 실행 시 log4j2.xml 파일 못 찾는 경우 (ERROR StatusLogger No Log4j 2 configuration file found.)

jar 실행 시 /resources/log4j2.xml 파일을 못 찾고 오류가 발생하는 경우 스프링 프로젝트에서 로깅 구현체로 log4j2를 사용하는 과정에서 '/src/main/resources/' 경로에 'log4j2.xml' 파일이 있어 이클립스 환경에서는 로깅이 정상적으로 동작했으나, 'Runnable Jar file'을 통해 jar 파일로 만들어 동작시켰을 때 resources 하위에 있는 Log4j2.xml 파일을 찾지 못하고 위와 같은 오류가 발생하였습니다. ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user pr..

Programming/Error 2024.03.02

(spring) logback, log4j2 로깅 적용 과정과 xml 파일 차이점 정리

logback, log4j2 로깅 적용 과정과 xml 파일 차이점 정리 해당 포스팅은 스프링 프로젝트에서 로깅 시 사용되는 라이브러리인 'logback(+ logback.xml)'과 'log4j2(+ log4j2.xml)'을 적용하는 각각의 방법과 차이점을 정리한 내용입니다. logback, log4j2 차이점(+ slf4j) 먼저 자바 기반 애플리케이션에서 사용되는 로깅 관련 프레임워크는 'log4j', 'logback', 'log4j2'가 있는데요. logback과 log4j2는 둘 다 log4j를 기반으로 하고 있으며, log4j는 2015년 지원이 중단되었기 때문에 logback과 log4j2가 많이 사용되고 있습니다. (각각의 차이점에 대한 내용은 포스팅 맨 하단 관련 자료를 링크해 두었으니 필..

Programming/Spring 2024.02.27

(eclipse) Spring MVC Project 수동 생성 과정 정리

이클립스 Spring MVC Project 수동 생성 과정 정리 이클립스 환경에서 'Oracle JDK 11' + 'STS3(Spring Tools 3 Add-On for Spring Tools)'를 설치한 상태로 'Spring MVC Project'를 생성하려고 했으나, 구글링을 통해 관련된 해결책을 모두 시도해 보았음에도 불구하고 Templates에서 'Spring MVC Project'를 찾을 수 없었습니다. (STS 자체를 설치하여 실행해도 해당 템플릿이 나오지 않았습니다.) eclipse 버전을 낮춰보려고 하다가 프로젝트 구조도 다시 익힐 겸 'Spring MVC Project'를 수동으로 생성하였으며, 그 과정을 정리하였습니다. (아래 과정은 'eclipse 2022-03' 및 'Spring ..

Programming/Spring 2024.02.23

(Oracle) 계층형 쿼리 START WITH CONNECT BY PRIOR

Oracle 계층형 쿼리 START WITH CONNECT BY PRIOR오라클 쿼리 분석 과정에서 'START WITH ~ CONNECT BY PRIOR (+ ORDER SIBLINGS BY)'라는 계층형 쿼리 구문을 발견하여 관련 내용을 정리해 보았습니다.  계층형 쿼리란?데이터베이스에서 계층적인 구조를 가진 데이터를 조회하거나 조작하기 위해 사용되는 쿼리입니다.대표적으로 '기업의 조직도', '제품 카테고리', '게시글 및 댓글' 같은 데이터 유형이 계층 구조를 가질 수 있으며, 이러한 데이터를 효율적으로 다루기 위해 계층형 쿼리를 사용합니다. START WITH ~ CONNECT BY PRIOR'START WITH ~ CONNECT BY PRIOR' 구문은 오라클에서 계층형 쿼리를 위해 지원되는 기..

Programming/Oracle 2024.02.18

mac Oracle 설치 및 SQL Developer 연결

macOS Oracle 설치 및 SQL Developer 연결하는 과정 해당 포스팅에서는 'macOS(Intel)에서 Oracle 설치 및 SQL Developer를 연결하는 과정'을 정리하였습니다. Oracle이 macOS를 정식 지원하지 않기 때문에 docker를 통해 오라클 데이터베이스를 실행하고 연결하는 방식을 사용하였으며, docker 설치 및 로그인은 되어 있다는 가정 하에 이후 과정에 대한 설명이라는 점 참고 부탁드립니다. docker를 통한 oracle 실행 -- 이미지 검색하기 docker search oracle-xe -- 이미지 가져오기(다운로드) docker pull oracleinanutshell/oracle-xe-11g 'search' 명령어를 통해 docker image를 검색..

Programming/MacOS 2024.02.17

Java 운영체제(윈도우, 리눅스) 프로세스 상태 확인하는 방법

Java 운영체제 프로세스 상태 확인 방법(Process, ProcessBuilder) 최근 Java 코드를 사용하여 서버의 특정 포트를 사용하는 프로세스의 상태를 확인하는 기능이 필요했는데요. 'java.lang.Process', 'java.lang.ProcessBuilder' 클래스를 사용하여 '운영체제(windows, linux)에 따른 프로세스 상태를 확인하는 방법'에 대해 정리해 보았습니다. 내용의 핵심은 'Process', 'ProcessBuilder'이며, Process는 Java 외부 프로세스를 실행하고 제어할 수 있기 때문에 해당 클래스를 활용하면 프로세스의 상태를 확인하는 기능뿐만 아니라 프로세스와 관련된 다양한 기능들을 구현할 수 있다는 것입니다. Process Class 'java...

Programming/Java 2024.02.11