본문 바로가기

전체 글

(214)
MariaDB :: 데이터베이스 기본 사용법 MariaDB는 데이터베이스를 사용하기 위해서는 스키마(데이터를 저장할 공간)을 생성해야 한다.  1. 데이터베이스 생성 및 삭제-- 데이터베이스 생성CREATE DATABASE mydatabase;-- 데이터베이스 삭제DROP DATABASE mydatabase;-- 데이터베이스 사용USE mydatabase;  2. 테이블 생성 및 삭제-- 테이블 생성CREATE TABLE mytable ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT);-- 테이블 삭제DROP TABLE mytable;  3. 데이터 삽입 (INSERT)-- 데이터 삽입INSERT INTO mytable (name, age) VALUES ('Alice'..
MariaDB :: 계정 관리 및 접속 ROOT  사용자 접속 MariadDB를 관리와 사용자를 만들고 제거하기 위해 root로 접근mysql -u root -p  계정 생성 SQL-- 'run'이라는 아이디와 'password123'이라는 비밀번호로 사용자 생성CREATE USER 'run'@'%' IDENTIFIED BY 'password123';-- 모든 데이터베이스에 대해 권한 부여GRANT ALL PRIVILEGES ON *.* TO 'run'@'%' WITH GRANT OPTION;-- 권한 적용FLUSH PRIVILEGES; 'run'@'%': 'run' 사용자 이름, '%' 호스트 와일드카드 이는 사용자가 어느 IP 주소나 호스트에서든지 MariaDB 서버에 접속할 수 있음을 의미 1) 사용자 생성과 권한 부여 sql > gra..
SPRING :: LoggingAop LoggingAop AOP(Aspect-Oriented Programming)를 활용하여 특정 서비스 메소드 호출 시점에 로깅을 처리하는 LoggingAop 클래스. 주로 메소드 호출 전/후, 예외 발생 시에 관련된 정보를 자동으로 로깅하는 역할을 한다. 메소드에서 예외가 발생하면 예외 메시지와 발생한 메소드의 이름을 기록하여 디버깅을 쉽게 도와준다.  package com.rcp.rfg.comm;import java.util.Arrays;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspect..
JAVA :: Apache Commons Lang3 Apache Commons Lang3 자바 개발에서 자주 사용되는 유틸리티 클래스들을 제공하는 라이브러리. 자바 표준 라이브러리에서 부족하거나 불편한 기능들을 보완하여, 문자열, 숫자, 날짜, 객체 등의 처리를 더 쉽게 만들어 준다.  StringUtils (문자열 관련 기능) - 문자열을 처리하는 데 유용한 다양한 메소드를 제공StringUtils.isEmpty(""); // trueStringUtils.isBlank(" "); // trueStringUtils.join(Arrays.asList("apple", "banana", "cherry"), ","); // "apple,banana,cherry"isEmpty(): 문자열이 null 또는 빈 문자열인지 확인 isBlank(): 문자열이 공백으로..
SPRING :: LoggingFilter 접속 로그 필터 구현 LoggingFilterHTTP 요청이 들어올 때마다 요청 정보를 로깅하는 서블릿 필터. 필터는 클라이언트 요청과 응답 사이에서 특정 작업을 수행할 수 있는 메커니즘을 제공한다. 여기서 이 필터는 요청 URL, 쿼리 문자열, 클라이언트 IP 주소, 사용자 에이전트(User-Agent), 리퍼러(Referer) 정보를 로그로 출력한다. 요청을 처리하기 전에 이러한 정보를 기록하고, 처리 후에는 필터 체인을 통해 요청을 전달한다.   package com.rcp.rfg.comm;import java.io.IOException;import org.apache.commons.lang3.StringUtils;import org.springframework.stereotype.Component;import jaka..
SWAGGER :: 스웨거 테스트 자동화 도구 SwaggerREST API를 문서화하고 테스트할 수 있는 도구  1. 프로젝트에 Swagger 의존성 추가 org.springdoc springdoc-openapi-ui 1.6.4   2. Swagger 기본 설정import io.swagger.v3.oas.annotations.OpenAPIDefinition;import io.swagger.v3.oas.annotations.info.Info;import org.springframework.context.annotation.Configuration;@Configuration@OpenAPIDefinition( info = @Info( title = "My API", versi..
LINUX :: Docker 활용 우분투에 Redis Server 설치 설치환경 : 라즈베리파이5 arm64 Ubuntu 24.04LTS Docker 1. Redis 이미지 다운로드docker pull redis  2. 버전 확인 ( 현재버전 : REDIS_VERSION=7.4.0 )sudo apt-get install jqdocker inspect --format='{{json .Config.Env}}' redis | jq  3. Docker 볼륨 생성mkdir -p /mnt/docker-datachmod 755 /mnt/docker-datadocker volume create redis-volumedocker volume inspect redis-volume  4. Redis 환경설정 파일 생성 후 Docker run (비밀번호 1004 *선택사항)sudo mkdir -..
SPRING :: 파일 업로드 File Upload 경로일반적으로 절대 경로와 상대 경로로 구분한다. 절대 경로는 CDN(콘텐츠 전송 네트워크)을 사용하거나, 웹에 올려진 미디어 등을 사용할 때 사용한다. 상대 경로는 디렉토리 내부에서 모듈을 연결하거나, 다른 파일을 import하는 경우에 사용하게 된다. 절대 경로절대 경로는 파일의 root부터 해당 파일까지의 전체 경로(URL)를 의미한다. 절대 경로는 보통 다른 사람의 문서나 파일을 이용할 때 사용한다. 절대 경로는 어느 곳에서든 경로에 접근할 수 있다는 장점이 존재한다. 그러나 경로가 변경되면 경로를 일일히 수정해야 한다는 단점이 있다.Ex) C:\Program Files\Git 상대 경로 상대 경로는 현재 파일의 위치를 기준으로 연결하려는 파일의 상대적인 경로를 적는 것을 의미한다. 상대 경로는 ..