반응형

전체 글 408

Could not load JDBC driver class [org.h2.Driver] 발생 원인과 해결 방법

Could not load JDBC driver class [org.h2.Driver] 발생 원인과 해결 방법org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/spring/root-context.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:PropertyAccessExcep..

Programming/Error 2024.08.11

(Jeus) The server adminServer initialization failed because of a stream closed error.

The server adminServer initialization failed because of a stream closed error.해당 문제는 ubnutu(20.04.6 LTS) 환경에서 jeus(8.5)를 설치하여 adminServer를 실행하는 과정에서 발생한 문제입니다. 먼저 jeus가 설치된 디렉터리 하위 /bin 디렉터리에서 './startDomainAdminServer -u administrator -p 패스워드' command를 통해 adminServer를 실행하였습니다.(이때 실행 명령어 중 -u, -p 에서 사용되는 아이디 및 패스워드는 jeus 설치 시 설정한 값을 사용합니다.)  그리고 다음과 같은 Exception이 발생하며 adminServer 실행에 실패했는데요. Exc..

Programming/Error 2024.08.05

ubuntu jdk tar.gz 설치 방법 (+ update-alternatives란)

Ubuntu JDK tar.gz 설치 방법 (+ update-alternatives란)ubuntu에 jdk tar.gz 설치 방법을 찾아보던 중 'update-alternatives'를 활용하는 간단한 방법을 찾아 공유하면서 update-alternatives 커맨드 툴에 대해서도 함께 정리한 내용입니다. jdk tar.gz 설치 방법#Login as rootsudo su#create jdk directorymkdir /opt/jdk#uncompress, change to your file nametar -zxf jdk-8u202-linux-x64.tar.gz -C /opt/jdk#check if files are therels /opt/jdk#update alternatives so the comman..

Programming/Linux 2024.07.24

맥북 가상머신 환경(UTM)에 Linux 설치하기

맥북 가상머신 환경(UTM)에 Linux 설치하기해당 포스팅은 '맥북(macOS)에서 UTM을 통한 가상머신 환경 위에 Linux(Ubuntu)를 설치하는 과정'을 정리한 내용입니다. UTM 외에도 VirtualBox, VMWare, Parallels 등 맥에서 사용할 수 있는 가상화 소프트웨어가 있으며 유무료 여부, 호환성, 성능, 사용자 인터페이스 등의 차이가 있는데 해당 예시에서는 쉽게 무료로 사용할 수 있는 오픈 소스인 UTM을 사용하였습니다. 작업 환경은 인텔 맥 환경에서 진행되었으며, 전체 설치 과정은 크게 아래 순서에 따라 진행됩니다. 1. UTM 설치2. Ubuntu Image 다운로드3. UTM 가상머신 환경에 Linux 설치 1. UTM 설치 UTMSecurely run operatin..

Programming/MacOS 2024.07.22

ROW_NUMBER OVER PARTITION BY 그룹 내 순위를 반환하는 함수

그룹 내 순위를 반환하는 함수 ROW_NUMBER OVER PARTITION BY /* PARTITION BY, ORDER BY 절 모두 여러 개의 컬럼을 기준으로 설정할 수 있습니다. */ROW_NUMBER() OVER(PARTITION BY [그룹핑할 컬럼] ORDER BY [정렬할 컬럼]) 그룹 내 순위를 조회하는 함수 패턴인 'ROW_NUMBER OVER PARTITION BY'는 다음과 같은 문법으로 사용되는데요.문법의 각 부분에 대해서 살펴보면 다음과 같습니다.   ROW_NUMBER()먼저 'ROW_NUMBER()'는 윈도우 함수(ANSI/ISO SQL 표준 WINDOW FUNCTION) 중 순위를 반환하기 위해 사용되는 함수로 각 행에 고유한 번호를 부여합니다. (이때 번호는 1부터 시작하..

(Javascript) a 태그의 download 속성을 통한 파일 다운로드 방법 및 예시

(Javascript) a tag의 download 속성을 통한 파일 다운로드 방법 및 예시해당 포스팅은 Javascript에서 '' 태그의 'download' 속성을 활용한 파일 다운로드 방법 및 예시를 정리한 내용입니다. a tag 파일 다운로드 방법 -->파일 다운로드 '' 태그의 경우 'href' 속성에 다운로드할 파일의 URL을 설정하고 'download' 속성을 추가하여 간단하게 파일을 다운로드할 수 있는데요. download 속성의 경우 HTML5에서 추가되었으며, 이 속성을 사용하면 브라우저가 링크를 클릭할 때 파일을 열지 않고 다운로드를 시도하게 됩니다.download 속성의 값으로는 다운로드될 파일의 이름을 지정할 수 있으며, 값을 지정하지 않은 경우 파일의 원래 이름 그대로 다운로드를..

서블릿과 서블릿 컨테이너 이해하기(Servlet, ServletContainer)

서블릿과 서블릿 컨테이너 이해하기(Servlet, ServletContainer)서블릿(Servlet)과 서블릿 컨테이너(ServletContainer)는 자바 기반 웹 애플리케이션을 개발하는데 기본이 되고 또 자주 만나게 되는 개념입니다.하지만 정확하게 어떤 역할을 하고 어떤 방식으로 동작하는지 스스로 명확하게 설명하지 못하는 것 같아 정리해 본 내용입니다. 서블릿(Servlet)// Servlet 3.0 이상을 지원하는 경우 web.xml 파일을 사용하지 않고 @WebServlet 과 같은 어노테이션 기반의 설정을 사용할 수 있습니다.@WebServlet(name = "exampleServlet", urlPatterns = "/example")public class ExampleServlet exte..

Programming/Web 2024.07.05

Spring Boot 외장 톰캣에 WAR 배포하는 방법(+ 404 발생하는 원인)

Spring Boot 외장 톰캣에 WAR 배포하는 방법(+ 404 발생하는 원인) 스프링부트 프로젝트의 경우 일반적으로 내장된 톰캣 서버를 통해 독립 실행형 애플리케이션을 생성하여 편리하게 배포하고 운영할 수 있다는 장점이 있습니다.하지만 특수한 경우 jar 파일이 아닌 war 파일로 빌드하여 외장 톰캣에 직접 애플리케이션을 배포해야 하는 경우도 있는데요. 해당 포스팅에서는 Spring Boot 애플리케이션을 war 파일로 빌드하고 이를 외장 톰캣에 배포하는 과정을 정리하였습니다.+ 추가적으로 배포 과정에서 404 에러가 계속해서 발생하였는데 그 원인도 함께 살펴보겠습니다. *** 아래 과정은 'Spring Boot 3.3.0' 버전과 'gradle' 환경, 'tomcat-10.1.25' 버전에서 진행되..

톰캣 로그 종류 및 설정 방법 (catalina.out 주의할 점)

톰캣 로그 종류 및 설정 방법 (+ catalina.out 로그 파일 주의할 점)최근 외장 톰캣에 프로젝트를 배포하고 운영화는 과정에서 톰캣 인스턴스의 /logs 디렉터리 하위에 여러 개의 로그 파일이 생기는 것을 확인하였는데요.해당 포스팅에서는 Tomcat에서 생성되는 각각의 로그 파일 종류와 설정 방법, 추가로 'catalina.out' 로그 파일의 주의할 점을 함께 살펴보겠습니다. Java Logging Framework와 Tomcat의 JULIJava Logging Framework(java.util.logging)Java 1.4부터 포함된 'java.util.logging' 패키지는 표준화된 로깅 기능을 제공하기 위해 도입되었습니다.하지만 java.util.logging의 경우 JVM 레벨에서 ..

Programming/Web 2024.06.23

Vue.js Lifecycle Hooks 라이프사이클 훅 개념 정리

Vue Lifecycle Hooks 라이프사이클 훅 개념 정리Vue.js는 컴포넌트(Component) 기반 프레임워크이며, 각각의 컴포넌트는 생성되어 업데이트되고 소멸되는 일련의 과정(Lifecycle)을 거치게 되는데요.이러한 일련의 과정을 컴포넌트의 '라이프사이클'이라고 하며, 과정 중 각각의 단계(초기화, 마운트, 업데이트, 소멸)에서 실행되는 함수들을 '라이프사이클 훅(Lifecycle Hooks)'이라고 합니다. Vue.js에서 Lifecycle Hooks를 이해하는 것은 어느 시점에 어떤 훅을 통해 컴포넌트의 상태를 업데이트해야 하고, 리소스 등 불필요한 요소를 제거하며, 렌더링을 최적화하는 등, 컴포넌트의 상태 변화에 맞춰 필요한 작업을 수행할 수 있기 때문에 상당히 중요한 부분이라고 생각..

Programming/Vue 2024.06.13

오라클 NULL 치환 함수 정리 (NVL, NVL2, COALESCE, NULLIF)

Oracle NULL 치환 함수 정리 (NVL, NVL2, COALESCE, NULLIF)해당 포스팅은 oracle null 치환 함수에 대해서 정리한 내용입니다.null 치환 함수는 실무에서도 쓰이면서 여러 시험 문제로도 많이 출제되기 때문에 잘 정리해 두면 좋을 것 같습니다. NVL, NVL2-- NVL 함수 형식NVL(주어진 값, 대체 값) 먼저 NVL 함수의 경우 '주어진 값'이 NULL인 경우 '대체 값'을 반환하며, 주로 NULL 값을 다른 값으로 대체할 때 사용됩니다.해당 함수는 '주어진 값'과 '대체 값'의 데이터 타입이 동일해야 하며, 동일하지 않을 경우 오류가 발생하게 됩니다. 간단한 사용 예시로는 다음과 같이 시험을 치지 않아 시험 점수(SCORE)가 NULL인 데이터에 대해 NULL..

Programming/Oracle 2024.06.06

MySQL BETWEEN과 부등호 성능 비교해 보기 (+ 날짜 타입과 숫자 타입 비교)

MySQL BETWEEN과 부등호 성능 비교해 보기 (+ datetime, int 성능 비교) SQL 쿼리에서는 WHERE 조건절 안에서 'BETWEEN' 또는 '부등호(, >=)'를 사용하여 조건의 범위를 지정할 수 있는데요.최근 조건절에서 범위 지정 시 'BETWEEN'을 사용하는 것과 '부등호'를 사용하는 것의 성능 차이가 있다는 내용을 보게 되어 실제 데이터 조회를 통해 확인해 보게 되었습니다.(성능 차이가 발생하는 것을 직접 확인해보고 싶었기 때문에 원인에 대한 내용보다는 테스트와 결과에 초점을 둔 포스팅이라는 점 참고 부탁드리겠습니다.) 각 테스트에서는 약 30만 건의 동일한 데이터를 사용하였으며, 아래의 몇 가지 경우를 가지고 결과를 비교해 보았습니다.mysql 버전은 8.3.0 버전을 사용..

Programming/MySQL 2024.06.02

MySQL 공식 샘플 데이터베이스 적용하는 방법 (테스트용 데이터베이스)

MySQL에서 제공되는 샘플 데이터베이스 적용 방법해당 포스팅은 MySQL에서 공식적으로 지원하는 샘플 데이터베이스(Example Databases)를 다운로드하여 적용하는 과정을 정리한 내용입니다.(예시에서 사용된 버전은 'mysql 8.3.0 version' 입니다.) MySQL 샘플 데이터베이스 다운 및 적용https://dev.mysql.com/doc/index-other.html?ref=dbwriter.io 위 주소로 접속하면 MySQL에서 제공하는 샘플 데이터베이스를 다운로드할 수 있으며, 아래 내용을 통해서 샘플 데이터베이스 중 'world database'와 'employee data'를 적용하는 방법을 살펴보겠습니다.  world database 적용 방법우선 'world database..

Programming/MySQL 2024.05.31

(SQLD) GROUPING SETS, ROLLUP, CUBE 내용 및 예시 정리

그룹화 확장 기능 GROUPING SETS, ROLLUP, CUBE 정리 해당 포스팅에서는 'GROUP BY' 절을 확장하여 다양한 방식으로 데이터를 그룹화할 수 있도록 해주는 기능인 'GROUPING SETS', 'ROLLUP', 'CUBE'에 대해서 살펴보겠습니다. 실무에서는 사용해 본 적이 없으나 이번에 SQLD 자격증 공부 과정에서 이러한 기능이 있다는 것을 알게 되었으며, 각 기능에 대한 설명과 예시를 통해 이해하기 쉽도록 정리해 보았습니다. GROUPING SETS 내용 및 예시SELECT EMP_NO, null, SUM(SAL) -- 사원번호(EMP_NO) 기준 그룹화된 급여 합계FROM SALARIESGROUP BY EMP_NOUNIONSELECT null, PAYMENT_MONTH, S..

테이블 백업이나 분석에 사용되는 CTAS (CREATE TABLE AS SELECT) 쿼리

테이블 백업, 분석에 사용되는 CTAS 쿼리 (CREATE TABLE AS SELECT) CTAS 쿼리란?CTAS(CREATE TABLE AS SELECT)는 선택(SELECT)된 데이터셋을 새로운 테이블로 생성할 때 사용되는 SQL 구문입니다.해당 구문은 기존 테이블의 데이터를 기반으로(원본 데이터를 훼손하지 않고) 새로운 테이블을 만들고자 할 때 유용하기 때문에 테이블 백업이나 데이터 분석용 테이블을 생성하는 데 주로 활용됩니다. CREATE TABLE new_table ASSELECT column1, column2, ...FROM existing_tableWHERE condition; CTAS는 기본적으로 다음과 같은 구문으로 사용되며, 전체 테이블을 복사하는 데 사용되거나 조건부 데이터를 복사, ..

반응형