반응형

전체 글 410

Oracle 가운뎃 점(·) INSERT 시 물음표(?)가 들어가는 경우

Oracle 가운뎃 점(·) INSERT 시 물음표(?)가 들어가는 경우 해당 포스팅에서는 오라클 데이터베이스에서 Character set 문제로 인해 일부 특수문자가 물음표(?)로 저장되는 경우에 대해 정리해 보았습니다. 제목에서는 '가운뎃 점(·)'이라고 표현했지만 실제 가운뎃 점인 Middle Dot에서는 해당 문제가 발생하지 않았으며, 가운뎃 점과 비슷한 모양의 'Hyphenation Point(‧)', 'Bullet(•)'에서 데이터베이서의 캐릭터 셋에 따라 값이 물음표로 저장되는 상황을 확인했습니다. 아래 내용에서는 오라클 데이터베이서의 Character Set인 'KO16KSC5601', 'KO16MSWIN949', 'UTF8/AL32UTF8'에서 특수문자 'Hangul Letter Arae..

Programming/Oracle 2025.02.09

nslookup 명령어 사용 방법과 동작 원리(feat. DNS 서버)

nslookup 명령어 사용 방법과 동작 원리 정리(feat. DNS 서버) name server lookup을 의미하는 'nslookup'은 도메인 네임 시스템(DNS)과 상호작용하여 DNS 정보를 조회하는 명령어로 Windows, Linux, Unix 외 대부분의 운영체제에서 사용할 수 있는 네트워크 진단 도구입니다.주로 도메인 이름에 대한 IP 주소를 확인하거나, 특정 IP 주소에 대한 도메인 이름을 조회하는 데 사용되는데요. nslookup 명령어는 한 번의 명령어 실행으로 DNS 정보를 조회하는 '비대화식 모드'와 nslookup 명령어를 단독으로 입력하여 DNS 정보를 실시간으로 확인할 수 있는 '대화식 모드' 두 가지 방법으로 사용할 수 있는데, 아래 내용에서는 비대화식 모드를 중점으로 해당..

파일 업로드 시 net::ERR_CONNECTION_RESET 오류 발생 원인 및 해결 방법

파일 업로드 시 net::ERR_CONNECTION_RESET 오류 발생 원인 및 해결 방법 스프링 프로젝트에서 ajax를 통해 파일 업로드를 하는 기능 동작 중, 용량이 큰 파일을 업로드하는 경우 클라이언트 쪽에서 위 이미지와 같이 '(failed) net::ERR_CONNECTION_RESET' 오류가 발생하였고, 서버 쪽에서는 해당 오류에 대한 로그조차 남지 않는 문제가 발생했는데요.(로그 레벨 설정이 debug level로 설정되어 있을 경우 오류 정보가 출력되었습니다.) 해당 포스팅에서는 이와 같이 업로드 과정에서 net::ERR_CONNECTION_RESET 오류가 발생하는 원인과 해결 방법에 대해서 정리해 보았습니다. 오류 원인 파악용량이 큰 파일을 업로드하는 경우에만 해당 문제가 발생했기 ..

Programming/Spring 2025.01.30

Spring MVC, SimpleMappingExceptionResolver를 통한 간단한 예외 처리 방법

SimpleMappingExceptionResolver를 통한 간단한 예외 처리 방법해당 포스팅에서는 Spring MVC에서 간단하게 예외를 처리하기 위해 사용되는 'SimpleMappingExceptionResolver' 클래스의 사용 방법 및 확장 방법에 대해서 정리하였습니다. SimpleMappingExceptionResolver의 경우 스프링 MVC 모델에서 주로 사용된다는 점과 Spring 3.2부터 도입된 더 효율적이고 유연한 예외 처리 방식인 @ExceptionHandler @ControllerAdvice가 등장하면서 최근에는 거의 사용되지 않는데요.잘 사용되지 않는 기능이지만 유지보수 등으로 인해 찾는 경우가 있을 것 같아 간단하게 정리해 보게 되었습니다. 사용 방법public interf..

Programming/Spring 2025.01.25

Oracle 전체 테이블, 테이블 별 데이터 수 조회(ALL_TABLES, ALL_TAB_COLUMNS)

Oracle 전체 테이블, 테이블 별 데이터 수 조회 (ALL_TABLES, ALL_TAB_COLUMNS)업무 과정에서 여러 테이블에 대해 각 테이블의 데이터 수를 조회하는 등, 여러 테이블의 정보를 한 번에 조회해야 하는 상황이 생길 수 있는데요. 해당 포스팅에서는 Oracle Database의 'ALL_TABLES', 'USER_TABLES', 'ALL_TAB_COLUMNS', 'ALL_TAB_COMMENTS' 뷰(view)를 활용하여 데이터베이스의 테이블 및 컬럼 정보를 조회하는 방법에 대해서 살펴보겠습니다.  ALL_TABLES, USER_TABLES-- 사용자가 접근할 수 있는 모든 테이블을 기준으로 특정 테이블 정보 조회SELECT * FROM ALL_TABLES WHERE TABLE_NAME..

Programming/Oracle 2025.01.14

(macOS) VSCode C++ 개발 환경 구축하기

(macOS) VSCode C++ 개발 환경 구축하기C++ 개발 환경에는 'Visual Studio'가 대표적인 IDE로 사용되는데요.mac용 Visual Studio의 경우 2024년 8월 31일 부로 사용이 중지되었기 때문에 Visual Studio 대체제로 'VSCode(Visual Studio Code)'를 사용하여 C++ 개발 환경을 구축할 수 있습니다.(Visual Studio가 전체 개발 환경 IDE인 반면, VSCode는 경량 코드 편집기로 볼 수 있습니다.) 해당 포스팅에서는 mac에서 C++ 개발 환경을 구축하기 위해 VSCode를 설정하는 과정을 정리하였습니다.전체 과정은 아래 순서에 따라 진행됩니다. 1. VSCode(Visual Studio Code) 설치2. Clang, LLDB..

CannotLoadBeanClassException: Cannot find class 오류 발생 원인 및 해결 방법

CannotLoadBeanClassException: Cannot find class 오류 발생 원인 및 해결 방법로컬 환경에서 spring 프로젝트를 tomcat에 구동하는 과정에서 'org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class'과 같이 bean을 로드하지 못했다는 오류가 발생했습니다. 잠깐 전까지만 해도 잘 동작하고 있던 프로젝트였기 때문에 그 사이 무언가를 잘못 건드렸을 거라고 생각하고 원인을 찾아보았는데요.* 'Project Clean...' 작업 및 'Server Clean...' 작업을 수행한 직후 발생하였습니다. Cannot find class 오류의 대상 클래스는 'root-context...

Programming/Error 2025.01.11

키크론 키보드 VIA 매크로(MACRO) 설정 방법

키크론 키보드 VIA 매크로(MACRO) 설정 방법최근 키크론 Q11 키보드를 구매하면서 VIA 프로그램을 통한 매크로 설정 방법을 정리해 보았습니다. 키크론의 Q, Q Pro, K Pro 제품들은 기본적으로 QMK(Quantum Mechanical Keyboard) 펌웨어를 기반으로 하고 있으며, QMK를 지원 및 사용하는 키보드는 펌웨어 수정 도구인 QMK Toolbox를 사용하여 키보드의 펌웨어를 수정할 수 있는데요.QMK Toolbox의 가장 대표적인 도구 중 하나가 바로 'VIA'입니다. * VIA(또는 키크론 런처) 프로그램을 통해 저장된 키매핑 및 매크로 정보는 키보드 하드웨어에 저장되기 때문에 저장 후 다른 환경에서도 동일하게 사용할 수 있다는 특징이 있습니다. 1. 키보드 연결https:..

IT Info 2025.01.07

GitHub Actions + Docker CI/CD 구축하기

github actions + docker ci/cd 구축하기GitHub Actions를 통해 CI/CD를  구축한 지난 포스팅에 이어 이번 포스팅에서는 GitHub Actions + Docker를 사용한 CI/CD를 구축해 보았습니다. Docker를 사용한 CI/CD의 경우 애플리케이션과 그 의존성을 컨테이너화 하여 실행하기 때문에 환경의 일관성을 유지할 수 있다는 장점과, 서버가 여러 개로 확장되었을 때 생성된 Docker Image를 통해 동일한 이미지를 사용할 수 있다는 이식성 측면에서의 장점 등, 여러 가지 장점을 가지고 있으며 때문에 최근에는 CI/CD 파이프라인에 도커를 함께 사용하는 방식이 많이 도입되고 있습니다. 전체적인 CI/CD 구축 과정은 이전 포스팅의 내용과 비슷하며, Docker..

Programming/CICD 2025.01.05

Spring Boot 프로젝트 GitHub Actions CI/CD 구축하기

GitHub Actions CI/CD 구축하기(Spring Boot 프로젝트) CI/CD는 단순히 번거로운 배포 과정을 자동으로 만들 뿐만 아니라, 수동으로 배포했을 때 발생할 수 있는 사용자의 실수를 줄일 수 있고, 자동화된 테스트 과정을 통해 코드의 품질을 검증할 수 있으며, 일관된 빌드 환경을 통해 환경의 차이로 발생하는 문제를 최소화할 수 있는 등의 장점을 가지고 있습니다.* CI/CD: 지속적 통합(Continuous Integration) / 지속적 배포(Continuous Deployment) GitHub Actions 외에도 Jenkins, GitLab CI, CircleCI 등 CI/CD를 구축할 수 있는 다양한 도구들이 있지만, 우선은 사용하고 있는 GitHub 저장소와 연동하여 쉽게 ..

Programming/CICD 2024.12.29

(MyBatis) include refid 용도 및 사용 방법

MyBatis 용도 및 사용 방법구축된 시스템을 분석하는 과정에서 mybatis xml 파일 내부적으로 , 형식의 태그가 사용되는 것을 보았는데요.해당 포스팅에서는 include 태그와 sql 태그는 어떤 용도로 사용되는지, 어떻게 사용되는지에 대해 정리하였습니다. , 태그의 사용 용도 WHERE emp_no = #{empNo} SELECT emp_no , first_name , last_name FROM employees SELECT emp_no , dept_no FROM dept_emp (하나의 SQL Map XML 파일에 정의된 쿼리) 위 예시를 통해 알 수 있는 것처럼 include, sql 태그는 여러..

Programming/Spring 2024.12.14

javascript 배열 비교, 차집합 교집합 구하는 방법

javascript 배열 차집합, 교집합, 대칭차집합, 합집합 구하는 방법javascript에서 배열을 다루다 보면 여러 배열에 대한 비교가 필요할 때가 있는데요. 해당 포스팅에서는 'Array.prototype.filter()' 함수와 'Array.prototype.includes()' 함수를 사용하여 두 배열에 대한 차집합(difference set), 교집합(intersction), 대칭차집합(symmetric difference), 합집합(union)을 구하는 방법에 대해서 정리하였습니다. filter(), includes() 함수먼저 배열 비교에 핵심이 되는 두 함수에 대해서 간단하게 살펴보겠습니다. 1. Array.prototype.filter()const fruits = ["apple", "..

(linux) 로그 파일 비우기, 로그 파일 내용 삭제 '/dev/ null'

(linux) 로그 파일 비우기, 로그 파일 내용 삭제 '/dev/null'애플리케이션 등에서 기록되는 로그 파일의 경우 이상적으로는 rotatelogs, logrotate 등의 기능을 활용하여 날짜별로 파일을 분리하고, 일정 기간이 지난 파일은 자동으로 삭제하는 방식을 통해 로그 파일의 용량이 너무 커지지 않도록 관리합니다. 하지만 실제로는 위와 같은 조치를 하지 않고 있다가 로그 파일의 용량이 너무 커져서 시스템적인 문제가 발생하는 일도 종종 있을 수 있는데요.해당 포스팅에서는 '로그 파일을 비우는 방법'과, '왜 파일 자체를 삭제하지 않고 내용만 비우는지'에 대해서 살펴보겠습니다. 1. 로그 파일 비우는 방법## 기본 형식cat /dev/null > target_file## 로그 파일과 동일한 경로..

Programming/Linux 2024.11.28

(macOS) sqldeveloper 응답 없음 해결 방법

(macOS) SQLDeveloper 응답 없음 문제 해결 방법macOS 환경에서 SQLDeveloper 실행 및 계정 접속 시 프로그램 상태가 '응답 없음'이 되는 상황이 자주 발생하였는데요.문제의 정확한 원인은 파악하지 못했지만 예상되는 부분을 발견하여 조치하였으며, 현재는 응답 없음 문제없이 SQLDeveloper를 사용 중에 있습니다. 문제 발생 환경은 2017 MacBook Pro(Monterey)이며, 사용된 sqldeveloper 버전은 23.1.1.345.2114 버전입니다.조치 내용은 아래와 같습니다. 1. 첫 번째 방법(해결 실패)먼저 구글링을 통해 해당 문제에 대한 해결 방법을 찾아보았는데요. AddVMOption -Duser.language=koAddVMOption -Duser.co..

Programming/MacOS 2024.11.22

ORA-01653: unable to extend table in tablespace 오류 해결 방법

ORA-01653: unable to extend table in tablespace 오류 해결 방법 해당 포스팅은 오라클 데이터베이스 사용 중 데이터 insert 과정에서 발생할 수 있는 'ORA-01653: unable to extend table in tablespace' 오류에 대한 해결 방법을 정리한 것입니다. 오류가 발생한 원인*Cause: Failed to allocate an extent of the required number of blocks for a table segment in the tablespace indicated. 오류가 발생한 원인은 Cause 부분을 통해서 알 수 있는 것처럼 테이블스페이스의 세그먼트(segment)를 할당하지 못했기 때문인데요.쉽게 말하면 해당 테이블..

Programming/Error 2024.11.20
반응형