목록DEV&OPS (244)
삶 가운데 남긴 기록 AACII.TISTORY.COM
Display class Display 클래스가 외관을 보여주는 역할을 하지는 않지만 GUI 자원을 관리하고 운영체제와 소통을 담당합니다. 코드에 있는 SWT/JFace 명령들을 운영체제에 호환되도록 바꾸어 전달하는 일을 합니다. 주요 메소드 Display() : 플랫폼 자원을 할당하고 Display 객체를 생성. getCurrent() : 사용자 인터페이스 스레드를 반환. readAndDispatch() : Display 객체가 이벤트를 해석해서 리스너로 넘겨 줌. sleep() : Display 객체가 이벤트를 기다림. Shell class Shell 클래스의 인스턴스는 위젯, 이벤트들과 연동하며, 시각적인 부분을 구현합니다. 운영체제에 접근하기는 하지만 윈도우 열기, 활성화, 최대화, 윈도우 닫기를..
윈도우즈 환경에서 이클립스 플러그인 SWT/JFace 개발을 위한 환경 설정을 해보겠습니다. JDK 설치 여기서는 JDK11 을 기준으로 합니다. 다운로드 및 설치는 OpenJDK나 오라클에서 하시면 됩니다. https://openjdk.org/ OpenJDK Learn about the key active Projects in the Community including Amber (high-productivity language features), Loom (lightweight concurrency), Panama (foreign functions and foreign data), Valhalla (primitive types and specialized generics), and, of course..
postgresql 14 에서 백업 및 복원 방법을 알려드리겠습니다. # 데이터베이스 백업 pg_dump -h 호스트네임 -p 포트번호 -U 사용자이름 -F tar -b -v 데이터베이스이름 > 백업파일이름 실행하게 되면 비밀번호를 물어보게 됩니다. 이 때 비밀번호는 postgresql 사용자이름에 할당된 비밀번호를 입력하면됩니다. # 데이터베이스 복원 pg_restore -h 호스트네임 -p 포트번호 -U 사용자이름 -d 데이터베이스이름 백업파일이름 복원할 때도 마찬가지로 비밀번호를 물어봅니다. postgresql에 있는 모든 데이터베이스를 백업 및 복원은 다음과 같습니다. 백업은 pg_dumpall 명령으로, 복원은 psql 명령으로 합니다. # 모든 데이터베이스 백업 pg_dumpall -h 호스트..
여기서는 grep의 다양한 옵션에 대해 다루지는 않겠습니다. 사용하기 유용했던 패턴 샘플만 몇개 언급하도록 하겠습니다. 1. 실행 중인 프로세스 중 "java"를 포함하는 프로세스를 찾을 때 ps -ef | grep java 하지만 이건 우리가 찾으려는 프로세스 외에 프로세스가 grep 자체 프로세스도 표시되는데요. 그래서, 2. 실행 중인 프로세스 중 "java"를 포함하는 프로세스를 찾되, grep로 시작하는 프로세스를 제외할 때 ps -ef | grep java | grep -v grep 요렇게 하면 됩니다. 3. 실행 중인 프로세스 중 "java"를 포함하는 프로세스의 PID만 찾되, grep로 시작하는 프로세스를 제외할 때 ps -ef | grep java | grep -v grep | awk ..
classpath 경로 지정 JVM이 클래스 파일을 찾는 경로를 지정할 수 있습니다. java -cp /path/to/classes com.example.MyApp 힙 메모리의 최대/최소 용량 지정 객체들이 저장되는 메모리 영역인 힙 메모리의 최대/최소 크기를 지정해줄 수 있습니다. application 성격상 알맞게 조절 할 수 있죠. java -Xmx512m -Xms256m com.example.MyApp 시스템 프로퍼티 설정 시스템에서 전역적으로 사용하는 값들을 지정할 수 있습니다. 자바의 System 클래스의 getProperty()메소드를 이용해서 그 값들을 받을 수 있습니다. java.version, os.name, path.separator 같은 것들이 대표적인 시스템 프로퍼티입니다. jav..
자바 application에서 파일을 저장할 때 절대경로는 보통 사용하지 않고 상대경로를 사용합니다. System.property("user.dir")을 통해 현재 application이 실행되는 작업 디렉토리를 얻고 그 기반으로 생성되는 파일의 경로를 지정합니다. File.separator는 파일 경로를 생성 할 때 운영체제에 맞는 파일의 구분자를 자동으로 선택해 줍니다. public class DynamicFilePathExample { public static void main(String[] args) { // 현재 작업 디렉토리 확인 String currentDir = System.getProperty("user.dir"); // 파일 저장 경로 설정 (현재 작업 디렉토리 내의 example.t..
https://aacii.tistory.com/381 /var/cache 디렉터리의 용량 부족 리눅스 서버를 운영하다가 종종 /var/cache 디렉터리의 용량이 부족한 경우가 있습니다. 이럴 때 대처하는 방법을 소개합니다. 캐시 파일 확인 먼저 /var/cache 디렉터리 내의 파일 및 하위 디렉터리 blog.aacii.net /var 파티션이 용량이 부족한 관계로 디스크를 추가했습니다. CentOS 7에서 디스크를 추가하고 /var 파티션 용량을 확장해보겠습니다. 당연하겠지만 root 권한으로 작업해야합니다. su - 디스크 용량 확인 df -h 새 디스크 확인 새로운 디스크가 시스템에 제대로 인식되었는지 확인합니다. fdisk -l 리눅스에 설치된 디스크 목록을 확인합니다. /dev/sda1 /de..
Spring 개발을 위해 STS를 다운로드 후 압축을 풀다가 파일 경로가 260자 이상 제한에 걸려서 압축 풀기에 실패했습니다. 반디집 설정에도 260자 넘어도 압축이 풀리도록 설정되어 있는데도 실패했죠. 반디집은 환경설정 > 기타 항목에 있습니다. Windows 10 1607 버전부터는 NTFS 파일시스템에서 길이 제한을 늘릴 수 있습니다. 1. 윈도우 키 + R 키를 눌러서 gpedit.msc 를 입력해서 그룹 정책 편집기를 실행합니다. 2. 컴퓨터 구성 -> 관리 템플릿 -> 시스템 -> 파일 시스템 경로를 찾아 갑니다. 3. "Win32 긴 경로 사용"을 선택해 사용 상태로 바꿔줍니다. 4. cmd 명령 프롬프트를 열고 gpupdate 를 실행해서 그룹 정책을 업데이트 합니다. 그러면 STS 압축..
리눅스 서버를 운영하다가 종종 /var/cache 디렉터리의 용량이 부족한 경우가 있습니다. 이럴 때 대처하는 방법을 소개합니다. 캐시 파일 확인 먼저 /var/cache 디렉터리 내의 파일 및 하위 디렉터리를 확인하여 어떤 파일이 공간을 차지하고 있는지 확인합니다. du -sh /var/cache/* 용량 크기순으로 정렬된 목록이 나타납니다. 캐시 파일 정리 불필요한 캐시 파일이나 오래된 파일을 삭제하여 공간을 확보할 수 있습니다. sudo yum clean all 오래된 패키지 캐시를 삭제할 수 있습니다. 패키지 관리 도구 사용 시스템에서 사용하지 않는 패키지를 확인하고 삭제하여 불필요한 파일을 제거합니다. sudo yum autoremove 디스크 용량 확인 df -h
사전 준비 여기서는 리눅스(CentOS)에서 설치시 사용했던 oracle 계정으로 작업합니다. https://blog.aacii.net/277 CentOS 7 oracle 19c 설치 오라클 데이터베이스 19c 다운로드 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 파일: Linux x86-64 종류: zip 자신의 운영체제에 맞는 zip 파일을 다운로드합니다. 호스트 네임 등 blog.aacii.net 먼저 백업 덤프 파일이 저장될 디렉토리와 그 별칭을 생성해야 합니다. 안그러면 ORA-39002, ORA-39070, ORA-39087 에러 삼종 세트를 보게되실 겁니다. 여기서 dump 및 복원 시..
사용자 생성 먼저 새로운 사용자를 생성해야 합니다. CREATE USER 사용자이름 WITH PASSWORD '사용자패스워드'; 데이터베이스 생성 생성된 사용자가 사용할 새 데이터 베이스를 생성합니다. CREATE DATABASE 생성할데이터베이스이름; 사용자에게 권한 부여 GRANT ALL PRIVILEGES ON DATABASE 생성된데이터베이스 TO 생성된사용자이름; 사용자 스키마 생성 CREATE SCHEMA 생성할스키마 AUTHORIZATION 사용자이름; 확인 \du -- 사용자 목록 확인 \l -- 데이터베이스 목록 확인 \dn -- 스키마 목록 확인 이제 이 스키마를 사용하여 해당 사용자가 테이블, 뷰 등을 생성할 수 있습니다.
application 실행시 arguments 지정 방법 메뉴 바에서 "Run" 또는 "Debug"을 선택한 후, "Edit Configurations"을 선택합니다. 원하는 구성(예: Application)을 선택하고, "Configuration" 탭에서 "Program arguments" 섹션에 인수를 입력합니다. "Run/Debug Configurations" 대화 상자에서 "Program arguments" 필드에 직접 값을 입력할 수 있습니다 "Run/Debug Configurations" 대화 상자에서 "Environment variables" 섹션을 통해 환경 변수를 설정할 수 있습니다. Runnable JAR 파일로 export 방법 1. 프로젝트 설정 확인: 프로젝트가 메이븐(Maven)..
세상에는 여러 시스템이 있고 한글 인코딩 방식은 많습니다. 개발자에게 한글 인코딩 문제는 생각보다 자주 마주치는 문제입니다. 자바 애플리케이션이 실행되는 런타임 환경에서 인코딩을 지정할 수 있는 옵션이 있었으니... 바로 -Dfile.encoding=utf-8 되시겠습니다. 애플리케이션 실행 시 아래와 같이 옵션을 추가해주시면 자바 런타임 인코딩 방식이 지정됩니다. java -Dfile.encoding -jar example.jar args0, args1, ... WAS인 tomcat도 실행시 자바 런타임에서 실행되기 때문에 tomcat의 start 스크립트에도 인코딩 옵션을 추가할 수 있습니다. 운영체제 기본 인코딩과 무관하게 JVM을 통해 실행시 옵션으로 인코딩을 지정하기 때문에 편리합니다. 다음은 ..
이번에는 재귀 호출을 이용하여 특정 폴더의 내용을 모두 삭제하는 예제를 구현해봤습니다. import java.io.File; public class DeleteDirectoryExample { public static void main(String[] args) { String directoryPath = "C:/Temp"; // 윈도우 실행 기준 File directory = new File(directoryPath); // 디렉토리가 존재하면 삭제 수행 if (directory.exists()) { deleteDirectory(directory); System.out.println("디렉토리 및 하위 경로가 삭제되었습니다."); } else { System.out.println("디렉토리가 존재하지 ..
자바로 텍스트 파일을 생성해서 자장할 때 FileWriter(arg1, arg2) 메서드의 arg2 두번째 인수가 false냐 true냐에 따라 기존 파일을 overwrite할지 append 할지 결정 할 수있습니다. import java.io.FileWriter; import java.io.IOException; public class FileWriterExample { public static void main(String[] args) { // 파일 경로 및 파일명 설정(윈도우 기준) String filePath = "C:/예제 파일이름.txt"; try { // FileWriter 객체 생성 //두 번째 매개변수로 false를 전달하면 기존 파일이 있으면 내용을 덮어씀(overwrite) //tr..