전체 글 169

역경 지수가 승패를 좌우한다

유리창을 바닥에 떨어뜨리면 깨져 버리고진흙은 바닥에 달라붙어 버립니다.그러나 공은 탄력 있게 튀어 올라더 높이 날아갑니다.마치 떨어져도 다시 튀어 오르는 공과 같이,절망과 실패를 극복해 내는 힘을‘회복탄력성’이라고 합니다.그리고 영어 단어 중 ‘resilience’는(충격·부상 등에서의) 회복력, 복원력, 탄력을 뜻하는데회복력, 복원력, 탄력 모두 원래 모습으로돌아가려는 힘입니다.우리가 알고 있는 역사 속 위대한 인물 중역경과 시련이 없었던 인물은 거의 존재하지 않습니다.아니 어쩌면, 위인이라고 불리는 사람일수록그 어떤 이들보다 괴로운 실패와역경의 시간을 지났습니다.산악인의 진가는 야산에서가 아니라험한 산을 오를 때 나타납니다.뱃사공의 진가는 잔잔할 때가 아니라풍랑이 불어닥칠 때 나타납니다.인생의 성패를..

@Transactional Checked Exception 사용시 Commit 되는 이유

■ Java Exception 구성Java에서 Exception(Checked)를 상속한 RuntimeException(Unchecked) 계열들이 파생된다.* Java에서 설계적 관점 참고 글https://velog.io/@eastperson/Java%EC%9D%98-Checked-Exception%EC%9D%80-%EC%8B%A4%EC%88%98%EB%8B%A4-83omm70j ■ Spring 기본설정스프링 문서에 보면 Transaction의 기본 동작 설정은 Checked Exception(RuntimeException 계열 이외의 Exception)에 대해서 Comiit처리를 기본 설정값으로 안내하고 있다. (중요)https://docs.spring.io/spring-framework/refere..

JAVA·Spring 2024.09.04

표준프레임워크 MSA 프로젝트의 Admin 서비스를 GitHub Code Space에서 띄우는 방법

■ 전제조건1) GitHub에서 표준프레임워크 MSA 프로젝트를 Fork 한다.https://github.com/eGovFramework/egovframe-msa-edu2) GitHub Code Space 생성 ■ Code Space 구동방법1) 터미널 탭에서 frontend > admin 이동, node 버전 변경Next.js/React 기반의 MSA frontend를 구동하기 위한 기준 node 버전은 V14.8.0이다.nvm이 이미 설치되어 있으므로 편리하게 node 버전을 다음 명령으로 변경한다.$ nvm list$ nvm install v14.8.0$ nvm use v14.8.0$ node --versionv14.8.02) node 패키지를 설치 및 실행한다.$ npm install$ npm r..

JDK9 이상에서 Module 문제, The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml

■ JDK9 이상에서 Module 방식에 의한 라이브러리 인식 문제JDK9에서 Module이라는 개념이 도입되어 다음과 같은 오류가 발생할수 있다.The package org.w3c.dom is accessible from more than one module: , java.xml  ■ 대응 방법 #1 (충돌 라이브러리 제거)1) JDK의 해당 모듈과 충돌을 일으키는 jar 라이브러리를 찾아야 한다.Linux 또는 macOS에서 다음 명령으로 대상 jar 라이브러리르 찾는다.find ./ -type f -name '*.jar' | while read LINE; do echo $LINE;jar tvf $LINE | grep org.w3c.dom;done 2) 대상이 되는 라이브러리가 발견되면 운영 프로젝트..

JAVA·Spring 2024.08.01

전자정부 하이브리드앱 예제 최신환경에서 빌드 문제 해결 (Command PhaseScriptException failed with a nonezero exit code)

■ 개발환경HW : mac mini M2 (16G RAM)OS : macOS Sonoma 14.5IDE : Xcode 15.4 ■ 전자정부 표준프레임워크 DeviceAPI 하이브리드앱 v3.9 빌드시 문제 해결하기시뮬레이터에 빌드시에 당황스럽게도 다음 에러가 발생한다.Command PhaseScriptException failed with a nonezero exit code Target > Build Phases > Copy www directory 위치에 있는스트립트를 모두  삭제한다. ( 이미 프로젝트내에 HTML 리소스인 www 디렉토리가 있기 때문에 삭제해도 무방하다. ) 위 문제를 해결하면 다음 오류가 발생한다.SDK does not contain 'libarclite' at the path ..

Ubuntu Desktop 22.04 LTS 한글 키보드 설정하기

■ 터미널에서 언어팩 설치sudo apt update sudo apt install language-pack-ko sudo apt install language-pack-gnome-ko sudo apt install ibus ibus-hangul ■  다음 PolicyKit 관련 에러 나는 경우 PolicyKit-1을 설치하고 재시작 한다.sudo apt install policykit-1 sudo systemctl restart polkit  dpkg 구성을 재설정 한다.sudo dpkg --configure -a  ■  IBus 설정 터미널에서 ibus-setup 실행ibus-setup Input Method 탭에서 Add 버튼을 클릭한다. Korean - Hangul을 선택하고 추가한다. 개인적으로..

TIP-LINUX 2024.07.12

Ubuntu Linux Samba(SMB) mount 하기

■ 최신 CIFS 유틸리티 설치$ sudo apt-get update $ sudo apt-get install cifs-utils ■ SMB mount 명령나의 경우 다음 명령 및 옵션으로 연결이 가능하였다.$ sudo mount -t cifs "//[IP주소]/[Path경로]" /mnt/SMB_MSA -o username=[계정],password=[비전],sec=ntlmssp,vers=2.0,iocharset=utf8 ■ 대응방법 - sec 및 vers를 다음 값으로 조합하여 변경sec=ntlmsec=ntlmsspsec=ntlmv2vers=1.0vers=2.0vers=2.1vers=3.0 ■ dmesg로 확인한 오류 로그vers=1.0 대입시 발생한 오류sec=ntlm 대입시 지원하지 않는 오류 등등[..

TIP-LINUX 2024.06.10

Ubuntu 24.04 원격 데스크탑 연결 "Settings" is not responding

■ Desktop Sharing 설정시 먹통되는 현상"Settings" is not responding 메시지가 나오고 먹통이 된다. ■ 해결방법VNC 또는 원격 데스크톱 서비스를 다음 명령어로 재시작$ sudo systemctl restart gdm $ sudo systemctl restart xrdp 방화벽이 데스크톱 공유에 필요한 포트를 차단하고 있지 않은지 확인$ sudo ufw allow 5900/tcp $ sudo ufw allow 3389/tcp $ sudo ufw reload 시스템이 최신 상태인지 확인$ sudo apt update $ sudo apt upgrade 데스크톱 공유 서비스와 관련된 오류가 있는지 다음 명령어로 시스템 로그를 확인$ journalctl -xe 원격 데스크톱 공..

TIP-LINUX 2024.06.04

Ubuntu Linux USB 외장하드 마운트 하기

■ fdisk 명령으로 장치 확인$ fdisk -lDevice 항목에서 "/dev/sdb1" 확인 ■ mount 디렉토리 생성-p : 2단계 이상의 디렉토리 일괄 생성$ sudo mkdir -p /mnt/usbhdd2t ■ 외장 USB HDD mount 하기-t : 파일 시스템 타입# mount -t [파일시스템타입] [인식된 디바이스 경로] [마운트 디렉토리]$ mount -t ntfs /dev/sdb1 /mnt/usbhdd2t ■ Symbolic Link 추가하여 편리하게 사용하기ln : 파일시스템의 링크를 만드는 명령# -s 심볼릭 링크 생성 옵션$ ln -s /mnt/usbhdd2t ~/usb_hdd_2t ■ Symbolic Link 확인하기$ ls -l ~/usb_hdd_2tlrwxrwxrwx ..

TIP-LINUX 2024.05.31

Ubuntu Linux 다른 디스크에 있는 Logical Volume(논리 볼륨) 마운트 하기

■ lsblk 명령으로 사전 확인블록 장치(디스크, 파티션, 논리 볼륨 등)의 정보를 확인$ sudo lsblk  ■ Logical Volume 인식 여부 확인ubuntu--vg--alt-ubuntu--lv가 인식되어 있다. 기존 동일한 이름과 충돌을 피하기 위해 -alt-가 붙어 있다.$ ls -l /dev/mapper ■ 마운트 현황 확인논리 볼륨이 있는 /dev/sda3의 경우 직접 마운트 하지는 않고 논리볼륨을 마운트 하는게 확인된다.$ df -h ■ 논리 볼륨 마운트$ sudo mkdir -p /mnt/hdd_alt_ubuntu_lv# " hdd_alt_ubuntu_lv"는 예시임. $ sudo mount /dev/mapper/ubuntu--vg--alt-ubuntu--lv /mnt/hdd_al..

TIP-LINUX 2024.05.29

Vagrant VM 이미지 백업 및 복원 방법

■ 복원 환경Ubuntu 20.04 LTS■ 백업 방법 정리You can package your working VM into a new vagrant box$ vagrant package --output ./new-box-name.boxand then backup this boxAfter you reinstall your Mackbook, you can then add this box to your local vagrant directory$ vagrant box add new-box-name ./new-box-name.boxAfter that you initiate the vagrantfile through$ vagrant init mynewboxYou will get back the same VM a..

GU(GraalVm Updater) 없는 경우 수동으로 Python(GraalPy) 추가하기

■ GraalVM 버전 체계GraalVM이 현재 JDK 기준으로 배포되고 있으며별도의 GraalVM 버전을 확인할수 있다.Open JDK : 17.0.6GraalVM : 22.3.1 (현재 JDK 17, JDK 21, JDK 22 버전이 배포 되고 있음)$ java -versionopenjdk version "17.0.6" 2023-01-17OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13)OpenJDK 64-Bit Server VM GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13, mixed mode, sharing) ■ GU(GraalVm Updater) 사용하여 설치된 ..

JAVA·Spring 2024.05.24

Ubuntu Desktop 22.04 VNC(macOS 원격) + RDP(Windows 원격 데스크톱 연결) 초간단 연결

■ 알고 보면 간단한데 다양한 방법들과 자료들이 있어 혼란스러워서 정리한다.■ Ubuntu Desktop 22.04 LTS 기본 설치후 apt-get 패키지를 추가로 설치하지 않았다.■  Settings > Sharing > Remote Desktop 이동 ■  필수 설정값Remote Desktop 활성화 => 필수Enable Legacy VNC Protocol 체크 => macOS 및 VNC 프로그램 접근을 위해 체크Remote Control 활성화 => 원격 마우스 및 키보드로 화면 제어 위해 필요원격 접속을 위한 별도 비번을 "Password" 항목에 기존 내용 삭제하고 새로 작성한다.(기존에 무작위 값 부여 되어 있음)  ■  Require a password 체크 필요 위와 같이 설정하면 즉시 ..

TIP-LINUX 2024.04.17

Mac 터미널 /usr/libexec/java_home 명령으로 SDK man 경로를 인식 시키기

■ java_home 명령으로 SDK man 경로 인식 시키기 $ /usr/libexec/java_home -V Matching Java Virtual Machines (4): 9999 (arm64) "SDKman" - "SDKMAN Current JDK" /Library/Java/JavaVirtualMachines/sdkman-current/Contents/Home 17.0.9 (arm64) "Homebrew" - "OpenJDK 17.0.9" /opt/homebrew/Cellar/openjdk@17/17.0.9/libexec/openjdk.jdk/Contents/Home 11.0.11 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVir..

TIP-맥OS 2024.04.02

Eclipse Boot Dashboard에서 한개 프로젝트로 멀티 인스턴스 띄우기

■ 필요한 이유 한개의 Boot Project로 여러개의 기능이 동일한 다중 인스턴스를 띄워야 할 경우가 있다. 이중화 이상의 테스트가 필요할 때이다. 이때 테스트를 위해 소스 프로젝트를 N개 만든다면 여간 불편한게 아닐 것이다. ■ Boot Dashboard 설정방법 1) 우클릭후 > "Duplicate Config" 선택하여 설정을 추가 한다. 2) 추가한 설정에 우클릭 > "Open Config" 선택하여 설정 화면을 연다. 3) Arguments 탭 선택 > VM arguments 항목에서 Boot Server 포트를 지정한다. -Dserver.port=8081 ■ Boot Dashboard 각각의 인스턴스 구동 결과

macOS에서 /Pictures 디렉토리 삭제 및 외장하드에 심볼릭 링크(바로가기) 연결

■ 목적 기본 내장 SSD의 용량 제한으로 /Pictures 디렉토리를 외장 SSD에 Symbolic Link로 추가하고자 한다. ■ Pictures 디렉토리 삭제 시도 $ sudo rm -rf ~/Pictures rm: Pictures: Operation not permitted 찾아보니 OS에 의해 "시스템 무결성 보호"되어 다음과 같은 메시지가 표시된다. 굳이 Pictures 디렉토리를 이렇게 까지 보호 해야 되나 싶어 해결 방법을 찾았다. ■ 터미널 전체 디스크 접근 권한 적용후 다시 시도 애플 로고 > 시스템 설정 > 개인정보 보호 및 보안 > 전체 디스크 접근 권한 다시 /Pictures 디렉토리 삭제 시도 하면 삭제가 가능하다. $ sudo rm -rf ~/Pictures 외장 SSD에 심볼..

TIP-맥OS 2024.03.25

ERROR: Could not find a version that satisfies the requirement tensorflow_text (from versions: none) - macOS m2

■ tensorflow-test 설치 오류 $ pip install tensorflow-text ERROR: Could not find a version that satisfies the requirement tensorflow_text (from versions: none) ERROR: No matching distribution found for tensorflow_text ■ macOS 환경 mac mini m2 깡통(8Core CPU + 10Core GPU) + 16G RAM macOS Sonoma 14.3.1 Anaconda v2023.09-0 (Python 패키지 관리) Python v3.11 Tensorflow-macos v2.15.0 Tensorflow-metal v1.1.0 * 참고로 현..

mac Mini m2 깡통 vs Nvidia GTX1050 Tensorflow GPU 환경 속도 비교

■ Mac mini 설치환경mac mini m2 깡통(8Core CPU + 10Core GPU) + 16G RAM macOS Sonoma 14.3.1Anaconda v2023.09-0 (Python 패키지 관리)Python v3.11Tensorflow-macos v2.15.0Tensorflow-metal v1.1.0 ■ Nvidia GPU 설치환경GPU : GTX-1050 2GBCPU : Intel i5-8500 (6Core) DesktopUbuntu Desktop 22.04 LTSNVidia Driver v535 (2024-03-04 현재 최신)CUDA x86_64 v11.8 (v12.2 호환 불가)cuDNN v8.6.0.163 (v8.9.7 호환 불가) Anaconda v2023.09-0 (Pytho..