작업의 환경에 따라 화면 밝기를 높여야 하는 경우에 어플리케이션까지 밝게 되어 장시간의 작업에 눈이 피로해지는 경우 간단한 설정으로 배경 테마를 변경하는 방법입니다.

 

 

 

1. 배경 테마 변경

 

 

DBeaver 를 켜고 상단 메뉴에서 [윈도우 > 설정] 을 선택합니다.

 

 

 

[환경 설정] 팝업이 나타나는데

 

 

 

좌측 메뉴의 [User Interface > 모양]을 선택하면 우측에 [테마] 설정 항목이 나타납니다.

여기서 콤보 박스를 번경하여 [Dark]를 선택하고 [적용] [Apply and Close] 버튼을 클릭해주면

 

 

 

검은색 바탕으로 화면이 변경되어 눈부심으로부터 해방되어 작업이 가능합니다.

 

 

2. 기타 색상변경

 

 

테마 이외에 세부적인 색상을 변경하기 위해서는 위와 동일한 방법으로 [윈도우 > 설정] 을 선택하여 [환경 설정] 팝업의 띄우고

[User Interface > 모양 > 색상 및 글꼴]

이렇게 한단계 더 들어가는 선택을 해줍니다.

 

 

 

그러면 여러가지 항목에 대해 색상 설정을 변경할 수 있는데 간단하게 query에서 숫자의 색상을 변경해 보겠습니다.

우측에서 스크롤을 내려 [SQL 편집기]를 선택합니다.

 

[SQL 편집기] 항목을 확장하면 하단으로 이동하여 [SQL number color]를 선택합니다.

 

 

 

 

[미리 보기]를 확인하면 기본값으로 숫자는 파란색으로 표현되도록 설정이 되어 있습니다.

설정을 변경하기 전에는 숫자가 아래처럼 보이겠죠.

 

 

 

[SQL number color]를 선택하면 우측의 [편집] 버튼이 비활성에서 활성으로 변합니다.

 

[편집]을 클릭하면 색상표 팝업창이 나옵니다.

 

 

 

[기본 색] 또는 [사용자 지정 색 만들기]로 선택을 할 수 있는데 저는 빨간색으로 선택했습니다.

 

 

 

설정이 빨강색으로 변하고 실제로 표현되는 모양을 하단에 미리보기에서 확인 가능하니 가독성이 좋을 색상으로 선택을 하면 됩니다.

여기서는 숫자를 빨강색으로 선택했으니 아래처럼 바로 색상이 변경됩니다.

 

 

변경한 색상을 다시 원상 복구하려면 미리보기 하단에 있는 [기본값 복원] 버튼을 클릭하고 적용해주면 됩니다.

 

- copy coding -

 

노트북에 처음으로 안드로이드 스튜디오를 설치하고 기본적인 프로젝트를 생성한 후 실행하려고 하는데 에뮬레이터가 나타나지 않고 아래와 같은 오류가 발생하였습니다. 

 

 

Intel HAXM is required to run this AVD. HAXM is not installed

 

AVD(Android Virtual Device)를 만들 때 에뮬레이터가 HAXM(Hardware Accelerated Execution Manager : 하드웨어 가속 실행 관리자)를 실행 하려는 데 오류가 발생한 것 이라고 하네요.

 

해결 방법은 Windows Hyper-V를 실행하면 된다고 합니다.

 

Hyper-V 설정 위치를 찾아가는 길을 알고 있으면 바로 설정을 변경하면 되는데 모른다면 아래의 방법을 따라서 찾아가 봅니다.

 

 

1. 실행 창을 이용하는 방법

 

혹시 [프로그램 및 기능] 창의 실행 위치를 알고 있다면 바로 열어도 되는데 모르겠다면

키보드에서 [윈도우 키]를 누른 상태에서 [R] 키를 눌러줍니다.

실행창이 나타나면

 

 

 

appwiz.cpl 을 입력하고 [확인] 버튼을 클릭합니다.

 

 

[프로그램 및 기능] 창이 열렸다면 좌측에 있는 [Windows기능 켜기/끄기]를 클릭합니다.

 

Hyper-V 설정이 있는 팝업창이 나타납니다.

 

 

 

 

여기서 [Hyper-V]를 찾아 체크를 해주고 [확인] 버튼을 클릭합니다.

 

 

 

2. 검색을 이용하는 방법

 

위 방법이 번거롭다면 검색을 이용하는 방법도 있습니다.

 

 

 

 

이렇게 윈도우 창 하단에 있는 돋보기 모양의 아이콘을 클릭해서 검색을 합니다.

 

그러면 위의 실행 창에 했던 것과 동일한 [Windows 기능 켜기/끄기] 창이 나옵니다.

 

 

 

 

Hyper-V를 체크하고 [확인] 버튼을 클릭하면 설정이 적용되기 시작합니다.

 

 

체크한 내용이 적용되는 진행 창이 나타납니다.

 

 

 

변경이 적용되고 시스템에 반영을 하려면 컴퓨터를 다시 시작 해야합니다.

컴퓨터를 재부팅 하였다면 안드로이드 스튜디오를 열고 프로그램을 다시 실행해 봅니다.

 

 

 

 

오류 없이 결과를 볼 수 있습니다.

 

- copy coding -

 

몇가지 테스트가 필요해 오랜만에 설치를 하려고 하니 기억이 나지 않는군요.

전자정부프레임워크는 좀 무겁고 여러가지 기능을 모아놓아서 복잡하긴 하지만 기본적으로 제공하는 프로젝트가 몇개 있어서 다운로드 받자마자 바로 사용할 수 있는 장점이 있습니다.

저는 모든 기능이 포함된 All in one 프로젝트 설치방법에 대해 하나씩 알아보겠습니다.

 

 

1. 전자정부프레임워크 다운로드 및 설치

 

전자정부프레임워크 포털 사이트에 접속을 합니다.

https://www.egovframe.go.kr/home/sub.do?menuNo=94

 

 

 

상단의 [다운로드] 메뉴를 클릭하고 [개발환경] 탭을 선택 합니다. 설치할 버전을 선택 하게되면 목록이 나오는데 설치하려는 상세 버전을 클릭하여 첨부파일을 다운로드 받아 적당한 위치에 압축을 풀어주면 설치가 완료됩니다.

 

 

2. 프로젝트 생성

 

처음에 설명한것 처럼 전자정부프레임워크는 기본적으로 제공되는 프로젝트가 여러개 있는데 모든 내용이 들어있는 프로젝트인 all-in-one을 설치 합니다.

 

 

압축을 풀어준 위치가 사용자마다 다르겠지만 eclipse 폴더에서 eclipse.exe를 실해합니다.

 

 

 

상단 메뉴에서 순서대로 메뉴를 선택 하여 템플릿 선택 창을 오픈합니다.

File > New > eGovFrame Template Project

 

 

팝업 창에서 설치하려는  Common All-in-one을 선택하고 [Next] 버튼을 클릭 합니다.

 

 

 

프로젝트 명(Project name)은 나중에 설정작업에 필요하므로 잘 기억하고 있어야 합니다.

저는 테스트만 할거라 별 의미 없이 AllProj 이렇게 정했습니다.

 

[Finish] 버튼을 누르면 프로젝트와 프로그램 소스가 생성됩니다.

 

 

3. 프로젝트 설정

 

프로젝트 설정은 DB와 프로젝트 명에 대한 작업이 대부분 입니다.

globals.properties 파일을 수정합니다.

/src/main/resources/egovframework/egovProps/globals.properties

#-----------------------------------------------------------------------
#
# globals.properties : 시스템
#
#-----------------------------------------------------------------------
# 1. key = value 구조입니다.
# 2. key값은 공백문자를 포함불가, value값은 공백문자를 가능
# 3. key값으로 한글을 사용불가, value값은 한글사용이 가능
# 4. 줄을 바꿀 필요가 있으면 '\' 라인의 끝에 추가(만약 '\'문자를 사용해야 하는 경우는 '\\' 사용)
# 5. Windows에서의 디렉토리 표시 : '\\' or '/' ('\' 사용하면 안됨)
# 6. Unix에서의 디렉토리 표시 : '/'
# 7. 주석문 처리는 #사용
# 8. value 뒤에 스페이스가 존재하는 경우 서블릿에서 참조할때는 에러발생할 있으므로 trim()하거나 마지막 공백없이 properties 값을 설정할것
#-----------------------------------------------------------------------
# 운영서버 타입(WINDOWS, UNIX)
Globals.OsType = WINDOWS
# DB서버 타입(mysql, oracle, altibase, tibero, cubrid, maria, postgres, goldilocks) - datasource sqlMap 파일 지정에 사용됨
Globals.DbType = mysql
 

 

Globals.OsType : 기본이 UNIX인데 자신의 운영체제에 맞게 변경합니다.

Globals.DbType : 사용하려는 DB에 맞게 하나를 선택 해서 기입합니다.

(mysql, oracle, altibase, tibero, cubrid, maria, postgres, goldilocks 중 선택)

 

조금 아래로 내려가서 DB 접속 정보를 기입합니다.

 

#mysql
Globals.mysql.DriverClassName=net.sf.log4jdbc.DriverSpy
Globals.mysql.Url=jdbc:log4jdbc:mysql://127.0.0.1:3306/com
Globals.mysql.UserName = com
Globals.mysql.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D
#oracle
#Globals.oracle.DriverClassName=oracle.jdbc.driver.OracleDriver
#Globals.oracle.Url=jdbc:oracle:thin:@127.0.0.1:1521:xe
#Globals.oracle.UserName = com
#Globals.oracle.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D
#altibase
#Globals.altibase.DriverClassName=Altibase.jdbc.driver.AltibaseDriver
#Globals.altibase.Url=jdbc:Altibase://127.0.0.1:20300/mydb?encoding=UTF-8
#Globals.altibase.UserName = com
#Globals.altibase.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D
 

 

선택한 DB 이외에는 모두 주석처리를 합니다.

 

context-datasource.xml 파일은 다른 DB 정보에 대해 주석처리를 안해도 되는데

만일 비밀번호를 암호화하지 않고 사용하려면

<property name="password" value="#{egovEnvCryptoService.getPassword()}"/>

이 부분을

<property name="password" value="${Globals.maria.Password}"/>

이렇게 그냥 텍스트를 사용한다고 수정하면 됩니다.

 

 

DB에 테이블 및 데이터가 있어야 구동이 되므로 Script 폴더에서 설정한 DB에 맞는 스크립트를 이용하여 쿼리를 실행해줍니다.

 

 

이제 마지막으로 프로젝트 명을 수정해 줍니다.

처음 설치할 때 프로젝트 명을 잘 기억해 두라고 했는데 그걸 사용합니다.

기본적으로 egovframework-all-in-one 이렇게 설정 되어있으니 한번 검색을 해 봅니다.

 

 

검색 창을 열고 검색을 시작 합니다.

 

 

11개가 검출 되었습니다.  모두 수정하는건 아니고 설정이 필요한 부분만 수정하면 되므로

이렇게 4곳만 egovframework-all-in-one AllProj 으로 수정해 줍니다.

 

 

 

4. Web Server 설치

 

기존에 웹 서버가 설치되어 있다면 이 단계는 건너뛰면 됩니다.

처음에는 아무런 서버가 설치되어있지 않을 경우 Server 탭이 아래의 모습입니다.

 

 

파란 글씨를 클릭해서 창을 열어줍니다.

 

 

Apache를 확장해서 Tomcat v9.0을 선택 했습니다.

[Next] 버튼을 클릭 합니다.

 

 

 

다른 곳에 웹서버가 설치되어 있어서 불러올 수도 있고 신규로 설치도 가능합니다.

여기서는 신규 설치로 [Download and Install...] 버튼을 클릭 합니다.

 

 

저작권관련 선택을 하고 [Finish] 버튼을 클릭 합니다.

 

 

 

설치할 위치의 폴더를 선택하여 설치를 진행 합니다.

 

 

 

5. 실행

 

프로젝트가 메이븐 기준이므로 먼저 메이븐을 설치합니다.

프로젝트 명에 마우스를 대고 우측 버튼을 이용하여

 

 

 

 

Run As > Maven Install 을 선택합니다.

 

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:58 min
[INFO] Finished at: 2024-08-07T17:32:18+09:00
[INFO] ------------------------------------------------------------------------
 

 

[BUILD SUCCESS]가 안보이면 오류를 확인해야 하는데 작업한게 없으므로 잘 빌드 됩니다.

 

 

 

동일한 방법으로 Run On Server 를 선택 합니다.

Run As > Run On Server

 

 

 

설치한 apache 9.0 서버가 보이는군요. 선택하고 [Next] 버튼을 클릭 합니다.

 

 

 

생성한 프로젝트가 우측에 들어있는지 확인하고 [Finish] 버튼을 클릭 합니다.

 

이상이 없다면 기본 브라우저에 화면이 나타납니다.

보이지 않는다면 프로젝트 명을 이용하여 화면을 호출합니다.

http://localhost:8080/AllProj/

 

 

 

 

 

 

기본 계정 정보는 전자정부프레임워크 페이지에 있습니다.

계정관련 정보만 복사해 왔습니다.

1. 홈페이지 템플릿(Simple Homepage)
로그인계정(관리자) : admin 로그인암호 : 1

2.
표준프레임워크 샘플포탈(Portal Site)
로그인계정(관리자) : admin , 로그인암호 : 1
로그인계정(사용자) : user1 , 로그인암호 : 1

3.
샘플 내부 업무사이트(Enterprise Business)
로그인계정(관리자) : admin , 로그인암호 : 1
로그인계정(사용자) : user1 , 로그인암호 : 1

4.
공통컴포넌트 (Common All-in-one)
*
대소문자 유의

구분 : 일반사용자, ID : USER, PW : rhdxhd12    (영문으로 공통12)
구분 : 기업사용자, ID : ENTERPRISE, PW : rhdxhd12 (영문으로 공통12)
구분 : 업무사용자, ID : TEST1, PW : rhdxhd12 (영문으로 공통12)
구분 : 업무사용자, ID : webmaster, PW : rhdxhd12 (영문으로 공통12)

 

 

 

java에서 압축파일을 생성하기 위한 편리한 유틸들도 있지만 기본적인 java 기반으로 압축파일을 생성하는 예제를 작성해 보았습니다.

 

일단 임의의 폴더에 압축 테스트를 진행할 몇개의 파일들을 준비해 줍니다.

 

 

 

zip 파일도 일반 파일과 동일하게 입출력을 통하여 생성을 하기 때문에 입출력에 사용되는 IOStream들을 선언 합니다.

 

               FileInputStream fis = null;

               FileOutputStream fos = null;

               ZipOutputStream zos = null;

 

파일을 읽어오기 위한 스트림과 파일에 쓰기위한 스트림, 나머지 하나는 압축파일에 쓰기위한 스트림 이렇게 3개의 stream을 선언합니다.

3개의 stream을 보면 감이 잡히겠지만 FileInputStream으로 압축하려는 파일을 읽어오고 FileOutputStream으로 읽어온 데이터를 기록하는데 이것을 ZipOutputStream의 입력으로 보내서 쓰게되면 압축파일이 생성되는 프로세스 입니다.

 

간단한 내용이니 소스를 바로 보도록 합니다.

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

 

 

public class ZipTest {

 

       public static void main(String[] args) {

               // TODO Auto-generated method stub

               FileInputStream fis = null;

               FileOutputStream fos = null;

               ZipOutputStream zos = null;

 

               String fileFolder = "C:/del/ziptest";

               File file = new File(fileFolder);

               File[] fileList = file.listFiles();

              

               try {

                      fos = new FileOutputStream("C:/del/ziptest/test.zip");

                      zos = new ZipOutputStream(fos);

                     

                      for(File f : fileList) {

                             fis = new FileInputStream(f);

                             ZipEntry zipEntry = new ZipEntry(f.getName());

                             zos.putNextEntry(zipEntry);

                            

                             byte[] bytes = new byte[1024];

                             int length;

                             while((length = fis.read(bytes)) >= 0) {

                                    zos.write(bytes, 0, length);

                             }

                             fis.close();

                             zos.closeEntry();

                      }

                      zos.close();

                      fos.close();

               } catch(IOException ie) {

                      ie.getMessage();

               }

       }

 }

 

 

폴더에 있는 압축하려는 파일 목록을 가져오는 부분의 소스는

 

               String fileFolder = "C:/del/ziptest";

               File file = new File(fileFolder);

               File[] fileList = file.listFiles();

 

이렇게 File[] 배열로 받아옵니다.

 

읽어온 파일을 기록하는 output 스트림의 방향을 zip으로 보내는 부분은

 

                      fos = new FileOutputStream("C:/del/ziptest/test.zip");

                      zos = new ZipOutputStream(fos);

 

여기입니다.

저장하려는 파일 위치와 파일명(C:/del/ziptest/test.zip)을 설정합니다.

 

폴더에 파일이 여러 개 이므로 for 문을 이용하여 파일을 하나씩 불러와 zos에 기록하면 작업이 완료 됩니다.

 

                   for(File f : fileList) {

                             fis = new FileInputStream(f);

                             ZipEntry zipEntry = new ZipEntry(f.getName());

                             zos.putNextEntry(zipEntry);

                            

                             byte[] bytes = new byte[1024];

                             int length;

                             while((length = fis.read(bytes)) >= 0) {

                                    zos.write(bytes, 0, length);

                             }

                             fis.close();

                             zos.closeEntry();

                      }

 

프로그램을 실행합니다. 압축파일이 생성되겠죠.

 

 

 

 

생성된 압축파일 test.zip을 열어보면 처음에 준비한 파일 3개파일이 압축되어 들어있는 것을 볼 수 있습니다.

 

 

- copy coding -

 


1234···117

+ Recent posts