반응형

Programming 362

(Jenkins, GitLab CI/CD 구축) 1. Docker Jenkins 설치 및 구동하기

(Jenkins, GitLab CI/CD 구축) 1. Docker Jenkins 설치 및 구동하기해당 포스팅은 Jenkins, GitLab 기반 CI/CD 구축의 첫 번째 과정인 'VM Instance에 Docker를 통해 Jenkins를 설치 및 구동하는 과정'을 정리하였습니다.이후의 CI/CD 구축 과정들도 정리하여 포스팅할 예정이니 같이 참고해 주시면 좋을 것 같습니다. CI/CD를 구축 및 테스트하는 개발 환경과 실제로 사용할 운영 환경의 인프라 환경이 다를 수 있기 때문에 환경의 일관성을 유지하기 위해 도커를 사용하여 젠킨스를 구동하였으며, 각각의 프로젝트 요구사항 및 인프라 환경에 따라 도커 기반이 아닌 서버에서 바로 젠킨스를 구동하는 방식을 사용하는 경우도 있을 수 있습니다. * 아래 과정에..

Programming/CICD 2025.03.02

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

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
반응형