반응형

안녕하세요 가야태자 @talkit 입니다.

JDBC 드라이버 다운로드

순수 자바

MySQL :: Download Connector/J

위 URL로 이동 합니다.

Platform independent 를 선택 합니다.

그리고 지금 저는 윈도우즈에서 작업 중이라 두번째 Download를 클릭 합니다. zip파일 형식을 내려 받습니다.

젤 밑에 보이시나요 No thanks, just start my download. 를 클릭 하십시오.

그러면 잘 다운로드가 될겁니다.

다운로드 받은 JDBC 드라이버 이클립스에 설정

우선 열어서 압축을 푸십시오.

압축 해제한 폴더로 이동해서,

mysql-connector-j-8.0.31.jar

위 파일을 복사합니다.

이클립스에 lib 폴더를 만들고 붙여넣기를 하십시오.

프로젝트명을 클릭하고 오른쪽을 눌러서 프로퍼티를 선택 하십시오.

그리고, Java 빌드 패스를 선택하십시오.

Libraries 탭으로 이동합니다.

오른쪽 Add JARs 를 클릭하십시오.

지금 현재 pom 파일이 있는 Maven 프로젝트기는 하지만, 이번에는 이런 방법도 있다고 알고 넘어 가는 차원에서 이렇게 하고 있습니다.

Maven을 이용한 MySQL 드라이버 다운로드

다른글을 적고 링크 하겠습니다. 

Java MySQL 접속하기

JAVA 는 JDBC라는 프레임워크를 통해서 데이터베이스에 접속합니다.
데이터베이스 드라이버와 서버 소프트 웨어 개발 버전이 있으면 얼마든지 집에서 해볼 수 있습니다.

JDBC Connection


Class.forName("com.mysql.jdbc.Driver");

MySQL 드라이버 로드

Connection con = DriverManager.getConnection("jdbc:mysql://주소:3306/데이터베이스", "아이디", "비밀번호");

MySQL 접속정보 셋팅

쿼리 해보기

쿼리 해보기는 쿼리 관련 설명하는 파일을 따로 적고 여기에 링크 예정입니다. ^^

전체소스코드

package com.tistory.talkit;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class MySQLExam {

    public static void main(String args[]) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://주소:3306/데이터베이스", "아이디", "비밀번호");
            
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("원하는 쿼리");
            while (rs.next())
                System.out.println(rs.getInt(1) + "  " + rs.getString(2) + "  " + rs.getString(3));
            con.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }

}

#java #mysql #source

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

지난 번에 Hello World를 찍고 ^^ 당황 스럽긴 하겠지만 ㅋㅋㅋ 지금 하고 있는 프로젝트에서 암호화/복호화 관련 업무가 있어서 ^^ 적어 보도록 하겠습니다.

개요

우선, 암호화는 사람들이 모르도록 이상한 문자열 등으로 바꾸는 것을 이야기 합니다. 그런데 이게 보통은 해독할 수 있는 규칙이 있습니다. 그래야 공통으로 약속되어서 풀어 볼 수 있으니까요.

암호화는 또 단방향 암호화와 양 방향 암호화가 있습니다.

단방향 암호화는 그야말로 복호화가 없는 단방향의 암호화 입니다. 단, 암호화 할때마다 동일한 결과가 나옵니다.

양방향 암호화는 암호화와 복호화가 존재하는 암호화 기법입니다.

일반적으로 단방향 암호화는 비밀번호를 만드는데 쓰입니다. 비밀번호도 양방향 암호화를 해야 할 경우도 있지만, 일반적으로는 단방향 암호화를 진행 합니다.

양방향 암호화는 주로 문서교환을 위해서 사용 합니다. 또는 DB에 바로 저장 되면 안되는 개인 정보 등의 저장을 위해서 사용 합니다.

이번에 제가 만들어 본 암호화는 양방향 암호화 입니다. ^^

개인키, 공개키 생성 프로그램

--

양방향 암호화를 하려면, 개인키와 공개키가 필요 합니다. 이번에 암호화 려는 기법은 RSA 기법입니다. RSA는 다음에 알아보도록 하고 오늘은 JAVA 어떻게 코드를 작성하는지만 보겠습니다. ^^

package com.tistory.talkit;

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.util.Base64;

public class MakeKeyData {

    public static void main(String[] args) throws NoSuchAlgorithmException {
        // RSA로 암호화 하겠다. 
        KeyPairGenerator keyPairGenerator =
                KeyPairGenerator.getInstance("RSA");
        SecureRandom secureRandom = new SecureRandom();
         // Random 키를 이용해서 키페어 생성 준비
        keyPairGenerator.initialize(2048,secureRandom);

         // 키페어에 암호화된 내용을 담기 
        KeyPair pair = keyPairGenerator.generateKeyPair();

        // 공개키 획득
        PublicKey publicKey = pair.getPublic();

        // 공개키를 문자열로 출력
        String publicKeyString =
        Base64.getEncoder().encodeToString(publicKey.getEncoded());

        System.out.println("public key = "+ publicKeyString);

        // 개인키 획득
        PrivateKey privateKey = pair.getPrivate();
        // 개인키를 문자열로 출력
        String privateKeyString =
        Base64.getEncoder().encodeToString(privateKey.getEncoded());

        System.out.println("private key = "+ privateKeyString);

    }

}

위 코드를 만들어서 수행하면 아래와 같이 나옵니다.

public key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAppicAq5Xn8+KZFQyP825E4aDPjFpyxhK5WATI4k3HllMxGo8FBOwoDl+lgVEIPEGgfD+t1cmBOpPkT7Mx54UQ+bSSU2T1wDR7QwyGV2iuxe6DCtQfVLuzYd6uxZO3pWoN93q9DkhzbLLOW1bLOieodnhMRq293uoKRWCP+Sp586SVPxwW/hWZjy57NIta1ew+JnRtHsg7reWOjyiCXORXdQvRoGfAz9ZC0aZBqopy84ZtMCK42y0Wprm0Oi4u3bwk2h2EkvGUOIRBHEly//M0Ma4RGlHWU7jpg0CiXcJAdq1DRMd6hzFVxUV4n23575NOKLwEirvqbgZXoaLJSo/1QIDAQAB
private key = MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCmmJwCrlefz4pkVDI/zbkThoM+MWnLGErlYBMjiTceWUzEajwUE7CgOX6WBUQg8QaB8P63VyYE6k+RPszHnhRD5tJJTZPXANHtDDIZXaK7F7oMK1B9Uu7Nh3q7Fk7elag33er0OSHNsss5bVss6J6h2eExGrb3e6gpFYI/5KnnzpJU/HBb+FZmPLns0i1rV7D4mdG0eyDut5Y6PKIJc5Fd1C9GgZ8DP1kLRpkGqinLzhm0wIrjbLRamubQ6Li7dvCTaHYSS8ZQ4hEEcSXL/8zQxrhEaUdZTuOmDQKJdwkB2rUNEx3qHMVXFRXifbfnvk04ovASKu+puBlehoslKj/VAgMBAAECggEAXoMdnvfBhkx7usd5anEPmmApfNMTrcCuXMrQkMx7lKAcySFrzAgPoBZ+FiYOrJGQm49ZMjIiw48abNAv5N9tp8f/bM6yHLu+XLkagwF4HKQtTFIWa8Ls73T4z8KsI+LLeEZR0RPIdaYFXSMJIsUlmbS96Nm7C1P/5q7pIc5cBcFg8uyFA13yHUUd5oJaal7RPVIfRQAUZZNj3crSVdQYCfdB42nokQ0z5kv3Qm3eu04Wqli/GyWIKRbxaffTlYvEjzjN4cxptJOPSn6zQlLXIStmwohQLjmx1UQ1cWJWqwF0910QleIJyR1iBKEtbvUORxEc0hv+a/2trwQP973gAQKBgQD55jq7ofNXSsnhyC9IJEyGDfvSRTtMEDwEk4pXQy6RKFrUN3/5AD40EBb2V0txhIwQxPD2YBCkSVXW/swMMA/QSM1lLLMkSqRkQhBucAO2RimgDNVXbzakFAmDgWSUjNz0HrSXJuGmKnErb42I+0yc+hd+Sl+WqRgWZ7SkUPLN1QKBgQCqqcS1XGKLoVyRnIYGivsA2/83RIJVx8Mjzofgg6Ekd5Q1uKMZFowAy3wbqMCRRW8+qufVmElzCMP79Pijh2nrv7QfEBrTbWdDgiMJz+Sq6JGHDyAiGv7v5j/nbl0JlgNKKmx2fiNpITBNQTQWPs3cqxArKz3j0Apy3HphlWiqAQKBgQC8Qbe/QDrMaPf7Ek6kP0wytPgfKK6KF7TPEcLnCCJdkhQSyRisIYW6vOA/hfW8t8i4nVSVljsTOHflNh/Lkq1nEGFDNdBip6R+LtKoD9SMDQEwpFpXut1j8ABWxDRcQF33veX39H+LKXAF88yhBAdsPm9SYX7vRcVyo3+PRbgUXQKBgACIqWnb0R8YsR5ve+fXVXOqPIEiwLmd91lMUxZ7suxXR2pnmnMApA14lXnMrFWH/xIWHMWJRWmLtHk8Se7RBJ7NKbYTKdJRfEo0xQFJ2jBCq/ndLT+OEBAWC0shCD94bag0u8QfHuM8TFdhhdUv+xremh1YdEgbJX04fVWCzyIBAoGBAM4g8t3KCd+fcwn2tQOENr6G4pztm5qvFw1rsXK46K2P0Bggf54f+nrVBHUh1lSVk1uLyzx8QF7Btl++GD64w7MOWPC40osCNaL7uHqwFx1rrZdsuF0EM9lBtvzxBUbQkOh5T8U1cBCHupdETXsKmgAbdoBXyp22Z3En/zpSz8kJ

저 두개의 키가 암호화와 복호화를 위한 키 입니다.

암호화 함수 만들기


공개키와 개인키를 이제 만들었으면 우선 코드를 개별적으로 설명 드리겠습니다.

우선, encode 함수를 만듭니다.

    public static String encode(String decodeText) throws GeneralSecurityException, IOException {

        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        SecureRandom secureRandom = new SecureRandom();

        keyPairGenerator.initialize(2048, secureRandom);

        PrivateKey privateKey = (PrivateKey) loadPrivateKey(privateKeyString1);

        Cipher encryptionCipher = Cipher.getInstance("RSA");
        encryptionCipher.init(Cipher.ENCRYPT_MODE, privateKey);
        String message = decodeText;
        byte[] encryptedMessage = encryptionCipher.doFinal(message.getBytes());
        String encryption = Base64.getEncoder().encodeToString(encryptedMessage);

        return encryption;

    }

암호화 함수는 내용은 복잡하지만, 사용은 편하도록 encode(복호화된 텍스트) 형식의 함수를 만들었습니다.

나머지는 루틴이라고 생각하시면 되고 ^^ 앞에서 만든키를 키로 변환해 주는 과정이 필요합니다.

위 코드 중에

        PrivateKey privateKey = (PrivateKey) loadPrivateKey(privateKeyString1);

이 부분입니다. 이부분은 함수로 다시 작성해서 사용했씁니다.

    // 문자열 공개키를 Key 로 변환
    public static Key loadPublicKey(String stored)
            throws GeneralSecurityException, IOException {
        byte[] data = Base64.getDecoder().decode((stored.getBytes()));
        X509EncodedKeySpec spec = new X509EncodedKeySpec(data);
        KeyFactory fact = KeyFactory.getInstance("RSA");
        return fact.generatePublic(spec);
    }

    // 문자열 개인키를 Private Key로 변환
    public static PrivateKey loadPrivateKey(String key64)
            throws GeneralSecurityException {
        byte[] clear = Base64.getDecoder().decode((key64.getBytes()));
        PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(clear);
        KeyFactory fact = KeyFactory.getInstance("RSA");
        PrivateKey priv = fact.generatePrivate(keySpec);
        Arrays.fill(clear, (byte) 0);
        return priv;
    }

개인키 공개키를 모두다 할 수 있도록 만들었습니다.

복호화 함수 만들기


다음으로 decode함수의 소스 코드 입니다.

     public static String decode(String encodeText) throws GeneralSecurityException, IOException {

        KeyPairGenerator keyPairGenerator =
                KeyPairGenerator.getInstance("RSA");
        SecureRandom secureRandom = new SecureRandom();

        keyPairGenerator.initialize(2048,secureRandom);

        PublicKey publicKey = (PublicKey) loadPublicKey(publicKeyString1);

        //Decrypt Hello world message
        Cipher decryptionCipher = Cipher.getInstance("RSA");
        decryptionCipher.init(Cipher.DECRYPT_MODE,publicKey);
        byte[] decryptedMessage =
        decryptionCipher.doFinal(Base64.getDecoder().decode(encodeText));
        String decryption = new String(decryptedMessage);
        //System.out.println("decrypted message = "+decryption);

        return decryption;

    }

위 코드는 암호화된 텍스트를 넣으면, 복호화된 텍스트를 리턴하도록 만들었습니다.

암호화와 마찬가지로 중간에 아래 코드가 중요하고 그 내용은 복호화에 넣어둔 코드를 확인 하십시오.


         PublicKey publicKey = (PublicKey) loadPublicKey(publicKeyString1);

메인 함수에서 불러서 암복호화 해보기



      public static void main(String[] args) throws GeneralSecurityException, IOException {
        String encodeText = encode("Hello World. Welcome to Korea.  * ");

        System.out.println(encodeText);

        System.out.println("encoded Text : " + encodeText);

        String decodeText = decode(encodeText);

        System.out.println("decoded Text : " + decodeText);


    }

Hello World. 으로 시작하는 문자열을 암호화 했다가 복후화 하는 코드 입니다.

실행하면

encoded Text : c8AcbCp4bIARJA3EOW9cf41pRIefVhCvCWyxwcgwifWaDK8AX9RJoe8dOgPzuvauCZZG5ibbOMtvEPh06DUwojFzMngCtT3T6VOyzWDA/CBFN52jXZzqw9M1K1v3vZJ+0uft86TomxZvbWdxv5XPo5keh0HyWyexv3U5c5cXypMwBTDECUiQkUPjZN1aUf7dHGQG0uC+KuyNEKK4NDMddPWoo0gzlWxsxIBkm7oLpuKEcXP9ThM16JQD8rhskJbXwbhUL39xfmDSti8Om9DcrU6KCDakKeT7i72yRjAD5B60Da28jT1DlzwS9p7IlfPXdlybjLKUMUcQsF1rJ1Xvww==
decoded Text : Hello World. Welcome to Korea.  *

위와 같이 잘 복호화 되어서 나옵니다.

전체소스코드



package com.tistory.talkit;

import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.Arrays;
import java.util.Base64;

import javax.crypto.Cipher;

public class RSAEncode {

    public static String publicKeyString1 = "만들어진 public key";

    public static String privateKeyString1 = "만들어진 private key";

    public static void main(String[] args) throws GeneralSecurityException, IOException {
        String encodeText = encode("Hello World. Welcome to Korea.  * ");

        System.out.println(encodeText);

        System.out.println("encoded Text : " + encodeText);

        String decodeText = decode(encodeText);

        System.out.println("decoded Text : " + decodeText);


    }

    public static String decode(String encodeText) throws GeneralSecurityException, IOException {

        KeyPairGenerator keyPairGenerator =
                KeyPairGenerator.getInstance("RSA");
        SecureRandom secureRandom = new SecureRandom();

        keyPairGenerator.initialize(2048,secureRandom);

        PublicKey publicKey = (PublicKey) loadPublicKey(publicKeyString1);

        //Decrypt Hello world message
        Cipher decryptionCipher = Cipher.getInstance("RSA");
        decryptionCipher.init(Cipher.DECRYPT_MODE,publicKey);
        byte[] decryptedMessage =
        decryptionCipher.doFinal(Base64.getDecoder().decode(encodeText));
        String decryption = new String(decryptedMessage);
        //System.out.println("decrypted message = "+decryption);

        return decryption;

    }

    public static String encode(String decodeText) throws GeneralSecurityException, IOException {

        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        SecureRandom secureRandom = new SecureRandom();

        keyPairGenerator.initialize(2048, secureRandom);

        PrivateKey privateKey = (PrivateKey) loadPrivateKey(privateKeyString1);

        Cipher encryptionCipher = Cipher.getInstance("RSA");
        encryptionCipher.init(Cipher.ENCRYPT_MODE, privateKey);
        String message = decodeText;
        byte[] encryptedMessage = encryptionCipher.doFinal(message.getBytes());
        String encryption = Base64.getEncoder().encodeToString(encryptedMessage);

        return encryption;

    }


    // 문자열 공개키를 Key 로 변환
    public static Key loadPublicKey(String stored)
            throws GeneralSecurityException, IOException {
        byte[] data = Base64.getDecoder().decode((stored.getBytes()));
        X509EncodedKeySpec spec = new X509EncodedKeySpec(data);
        KeyFactory fact = KeyFactory.getInstance("RSA");
        return fact.generatePublic(spec);
    }

    // 문자열 개인키를 Private Key로 변환
    public static PrivateKey loadPrivateKey(String key64)
            throws GeneralSecurityException {
        byte[] clear = Base64.getDecoder().decode((key64.getBytes()));
        PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(clear);
        KeyFactory fact = KeyFactory.getInstance("RSA");
        PrivateKey priv = fact.generatePrivate(keySpec);
        Arrays.fill(clear, (byte) 0);
        return priv;
    }

}

개인키와 공개키는  제가 만든 저위에 있는 것을 복사하셔도 되고, MakeKeyData를 이용해서 만드셔도 됩니다. 

그러나, 되도록이면 만들어서 사용하십시오. 공개된 개인키와 공개키를 사용하면 다음에 해킹 당했을 때 위험할 수 있습니다.

그리고, 주의할 점은 저 공개키와 개인키는 무조건 보관해두고 잃어버리시면 안됩니다. ^^

다음에 복호화가 안될꺼니까요.

감사합니다. 

 

반응형
반응형

제가 Java를 처음 시작할때는 eclipse가 아닌 EditPlus라는 편집기를 이용해서 Java개발을 한적도 있습니다. 

그런데, 요즘은 eclipse가 없으면 작업을 못합니다. 

저는 순수 eclipse도 사용하지만, 지난 글에서 이야기한 전자정부 프레임워크 개발 툴을 주로 사용 합니다. 

자바/Java 전자정부 표준프레임워크 개발환경 설치 및 실행하기 https://talkit.tistory.com/685

그래서 저 위에 있는 화면도 전자정부 프레임워크를 실행한 화면입니다.  ^^

오늘은 maven 프로젝트만 만들고 Hello World 만 찍어 보고 끝낼 생각 입니다. ^^

File >> New >> Maven Project 를 실행 하십시오

여기서는 Create a simple project(skip archetype selection)을 선택하고 Next를 누릅니다. 

위와 같이 Gropup 아이디는 가지고 있는 도메인이 있으시면 꺼꾸로 적으시고 ^^ 아니면 임의로 만드시면 됩니다. 

저는 일단 블로그 주소를 꺼꾸로 만들었습니다. ^^

Finish 를 클릭하시면 프로젝트가 생성 됩니다. 

위와 같이 나오면 잘 생성이 된 것입니다. 

JDK가 무쟈게 낮은 버전으로 제가 설정 했네요 ^^ 저건 다시 다음에 설정하고 일단 지금은 간단하게 Hello World만 찍을 꺼여서 실제 Maven 프로젝트의 중요 파일인 pom.xml 만 한번 살펴 보겠습니다. 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tistory.talkit</groupId>
  <artifactId>HelloWorld</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

위와 비슷하게 나와 있으면 잘 된 것입니다. ^^

왼쪽에 src/main/java를 클릭하시고 오른쪽 마우스 클릭하셔서 New 선택하시고, Package를 선택하심시오.

그리고 위와 같이 화면이 뜨면 저처럼 저렇게 입력하셔도 되고 본인의 고유 패키지를 입력하십시오.

이렇게 변경 되었을 꺼구요. 저기다가 Java 프로그램을 하나 만들겠습니다. 

여기서는 프로그램이 아니고 Class 입니다. 

패키지를 클릭하고 오른쪽 마우스 누르고, New 누르고, Class를 선택하십시오.

Class 명령은 HelloWorld로 했구요. 나머지는 그대로 두시고, public static void main(String[] args)를 체크하고, Finsih를 누릅니다. 

그러면 위와 같이 나올껍니다. 

저기 중간에 있는 코드 창에다가 우리가 작업하려고 하는 코드를 넣으면 됩니다. 

// TODO Auto-generated method stub

위 코드를 지우시고, 아래 코드로 변경해 보십시오.

		System.out.println("Hello World!!");

위 코드만 넣으시면 됩니다. 

패키지가 다를 수도 있지만, Full Code는 아래와 같습니다. 

package com.tistory.talkit;

public class HelloWorld {

	public static void main(String[] args) {
		
		System.out.println("Hello World!!");

	}

}

저걸 복사하시고 package 부분만 변경해주셔도 됩니다. ^^

그럼 이제 실행해보겠습니다. 

HelloWorld.java를 클릭하시고 오른쪽 마우스를 누른다음에 Run As >> Java Application 순으로 실행하시면 됩니다. 

하단의 콘솔창에 저희가 출력한 Hello World!! 가 출력 되었습니다. ^^

일단 이번에는 여기까지 하고, 다음에는 pom.xml에 필요한 라이버러리를 추가하고 패포를 위한 설정을 하는 등의 과정을 보여 드리겠습니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

개발환경 - 3.x 다운로드 | 표준프레임워크 포털 eGovFrame

처리중입니다. 잠시만 기다려주십시오.

www.egovframe.go.kr](https://www.egovframe.go.kr/home/sub.do?menuNo=41)

위 그림 처럼 보이게 하려면 위 링크에 접속하시면 됩니다.

4.대가 나오긴 했지만, 3.대로 설치 하겠습니다.

4.대는 좀 더 안정적이 되면, 진행하고 하겠습니다.

준비물


PC에 Java/JDK가 설치 되어 있다고 전제 합니다.

Java/JDK 설치는 Java 설치 글을 하나 적겠씁니다. ^^

다운로드


다운로드 URL은 개발환경 - 3.x 다운로드 | 표준프레임워크 포털 eGovFrame

위에서 말씀 드린대로 위와 같습니다.

윈도우즈 리눅스 맥OS 용도 있으니까 필요한 개발환경을 다운로드 하시면 됩니다.

저는 일단 오늘은 윈도우즈에 설치하고, 다음에 우분투에 한번 설치 해보겠습니다.

위와 같이 나오면 첨부파일을 클릭 합니다. OS 표시가 아무것도 안된 것이 윈도우즈용 입니다. ^^

오 정말 간편해 졌네요 ^^ .exe로 되어 있는 텍스트를 클릭하시고, 다운로드 버튼 한번 더 눌러 주시면 됩니다.

예전에는 T.T 로그인을 하고 했는데 요즘은 그냥 다운로드가 가능 하네요 ^^

저는 지금 다운로드 하고 있습니다.

설치하기


오 다운로드가 다 되었습니다. ^^

저는 c:\dev 폴더에 다운로드를 했기 때문에 폴더 안에 저 파일이 들어 있습니다.

실행 하시면 됩니다.

저는 V3가 파일에 대해서 주의로 판단을 했습니다. 하지만, 저기 그대로 두기를 선택하고 확인 하시면 됩니다. ^^

저는 보통 C 드라이브의 dev 폴더에 개발 환경을 구성 하기 때문에 저렇게 했고, 원하는 폴더로 서택하시면 됩니다.

저기서 압축 풀기를 선택하십시오.

저는 c:\dev에 설치 했기 때문에 잘 설치 되었습니다.

일단 설치는 여기까지 끝입니다.

전자정부 표준프레임워크 개발환경 실행


실행을 해보겠습니다. 저기 eclipse 폴더에 들어가셔서 eclipse.exe를 더블 클릭 하시면 됩니다. ^^

Java가 설치 되어 있지 않으면 위와 같이 실행이 안될껍니다. ^^

Java가 설치 되어 있고, 패스가 잘 걸려 있으면 그냥 실행 됩니다. 

처음 실행하면 아마 비슷하게 물을 것입니다. 

그런데 저는 c:\dev\ 개발환경 폴더 밑에다가 설치 하겠습니다. 

아까 압축을 푼 폴더를 선택하시고 Launch를 클릭하시면 됩니다. 

이제 실제로 전자정부 개발 환경이 설치 되고 잘 실행 되었습니다. 

저화면은 Welcome 옆에 X 버튼으로 닫아 주시면 됩니다. 

다음 부터 전자정부 프레임워크를 이용해서 제가 해보고 싶은걸 좀 해보겠습니다. 

감사합니다. 

 

반응형
반응형




거의 매일 JSTL을 사용하다가 오랫만에 jsp에서 Spring에서 넘긴 값을 받아야 될 일이 생겼습니다.


그래서 찾아 봤는데 자료가 잘 안보이더라구요.


드디어 찾았습니다. ^^;;


http://okky.kr/article/176030


URL에서 발견 했습니다.


model.addAttribute("strYear", strYear1);


콘트롤러에서 위와 같이 넘겼습니다.


JSTL은 아래와 같이 받으시면 됩니다.


${strYear}



그런데 JSP에서는 위 URL에도 나와 있지만,


String strYear = (String) request.Attribute("strYear");


와 같이 받으시면 됩니다.


잊어 버리지 말자고 일단 적어 둡니다. ^^;;


그리고 로그인을 해야 되서 답변에 감사 인사를 못 드렸는데 ^^;;


gruaband 님 감사합니다.



반응형
반응형

다른 블로그를 매일 매일 뒤지는 것이 귀찮아서 ^^;;


일단, 여기에 기록해 둡니다.


Java의 풀소스를 제공하니 바로 써먹으시면 될 겁니다.


Eclipse에서 프로젝트 하나 만드시고 클래스 하나 만드셔서 붙여 넣기 하시면 되륻 합니다.


소스는 아래와 같습니다.


import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.Locale;



public class GetWeekOfDay {

public static void main(String args[] ) {

SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd", Locale.KOREA );

Date currentTime = new Date ( );

Calendar c = Calendar.getInstance();

c.setTime(currentTime);

int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

System.out.println("해당 일자는? " + formatter.format(c.getTime()));

System.out.println("해당일자의 요일은? " + dayOfWeek);

}


}


위의 글상자에서 볼드로 되어 있는 부분이 해당 일자의 요일을 구하는 곳입니다.


요일은 1부터 7까지 나옵니다.


1 : 일요일

2 : 월요일

3 : 화요일

4 : 수요일

5 : 목요일

6 : 금요일

7 : 토요일


위와 같이응답이 나옵니다.


저 결과를 구해서 필요하게 사용하시는 것은 여러분의 몫입니다. ^^;;


감사하니다.

반응형
반응형
항상 JAVA 프로젝트를 하게 되면 한글이 문제다.

한글 문제 특히 include 된 페이지의 한글 문제를 해결 하는 방법은

젤 위에다가
<%@page pageEncoding="euc-kr"%>
위와 같이 넣는 것이다

잊어버리지 말아야지 T.T

맨날 잊어버려서 찾는다 ^^;;


반응형
반응형
가능한 JDK / JRE  1.4.x 이상

TIP. GNU에서 제공하는 gcj는 이 기능을 제공하지 않는 듯 합니다.

WAS를 실행 하거나 java로 실행 할때

java -Djava.awt.headless=true

위 옵션을 주면

java에서 X윈도우즈 접속 없이 이미지 처리가 가능합니다.

다시는 삽질 금지 T.T
반응형

'JAVA' 카테고리의 다른 글

날짜의 요일 구하는 소스  (0) 2015.11.14
[JSP] 한글 문제 해결 하기  (0) 2010.01.19
[JAVA] jar 파일로 묶기  (0) 2009.10.21
JSP에서 Referer  (0) 2009.07.26
JSP 클라이언트 아이피 구하기  (0) 2009.07.26
반응형
맨날 까먹어서용

오늘은 적어 둡니당

일단 사용법은

jar [옵션] [메니페스트파일] [target파일명] [소스파일명들]


사용례는 아래와 같습니다.

jar cmf manifest Collector.jar *

반응형

'JAVA' 카테고리의 다른 글

[JSP] 한글 문제 해결 하기  (0) 2010.01.19
[JAVA] X윈도우즈 접속없이 이미지 처리 하기  (0) 2009.12.16
JSP에서 Referer  (0) 2009.07.26
JSP 클라이언트 아이피 구하기  (0) 2009.07.26
jsp 에서 sessionid 구하기  (0) 2009.07.26
반응형

request.getHeader("referer")

이 글은 스프링노트에서 작성되었습니다.

반응형
반응형

request.getRemoteAddr();

이 글은 스프링노트에서 작성되었습니다.

반응형

'JAVA' 카테고리의 다른 글

[JAVA] jar 파일로 묶기  (0) 2009.10.21
JSP에서 Referer  (0) 2009.07.26
jsp 에서 sessionid 구하기  (0) 2009.07.26
[JAVA] cos.jar로 파일 업로드 하기  (0) 2009.04.03
자바 프로젝트 필수 유틸리티  (0) 2009.03.28
반응형

String sessionID = (String)session.getId();

이 글은 스프링노트에서 작성되었습니다.

반응형
반응형


아래글을 참고해주세용.

http://blog.outsider.ne.kr/214


반응형
반응형

자바 프로젝트 필수 유틸리티

 

자바 프로젝트 필수 유틸리티 - 10점
박재성 지음/한빛미디어

  원래 이책을 산 이유는 Maven이라는 툴에 대해서 알고 싶어서였습니다. 하지만, 사고 나서 보니 Maven 보다는 이책에서 지향하는 목표가 참 마음에 들었습니다.

  이책의 저자인 박재성님은 자바지기(http://www.javajigi.net)라는 웹사이트를 운영하고 계시는 분이니다. 저는 박재성님의 책을 몇권더 읽었습니다. Spring 과 스트럿츠에 관한 책입니다. 그 책들도 프로젝트 하는데 실질적으로 도움이 많이 되었습니다.

  아직 이책을 다 읽진 못했지만 이책에서 필요한 점들은 도입하고 있습니다. ^^;; 우선 이책을 읽기전에 제가 하는 프로젝트에 여러명의 개발자가 참여 하기 때문에 Subversion을 버전 관리툴로 사용하고 있었습니다. 프로젝트를 진행하다가 이 책을 사게 되었습니다. 우선 애자일(기민한) 방법론에 대한 이야기가 참 마음에 들었습니다. 그리고, 저자가 이야기 하는 이야기 중에 애자일 방법론을 완벽하게 국내에 도입하기는 어렵다 하지만, 필요한 부분만 잘 적용하면 좋은 프로젝트 방법론이 될 것이라는 이야기는 실감이 나는 이야기 입니다. 저도 프로젝트를 많이 해봤지만, 애자일 방법론을 적용하기는 무리가 좀 있다고 생각합니다. 하지만, 방법론에서 사용하는 여러가지는 참고하고 사용해볼만하다고 생각합니다.
 
  그리고 프로젝트 관리툴을 도입하는 이야기가 적혀 있습니다. 이책에서는 Trac에 대해서 이야기 하고 있지만 저는 이번 프로젝트를 하면서 Trac을 도입하고 싶었습니다. ^^;; 하지만, Trac까지는 설치를 했는데 Subversion 연동이 잘 되질 않아서 ^^;; Mantis라는 이슈관리툴로 만족하고 있습니다. 이 책에 보면 Trac과 eclipse의 연동 방법이 나옵니다. 그 부분은 Trac을 Mantis로만 바꿔서 사용하면 그대로 적용할 수 있습니다.

  아직 다 읽지 못했기 때문에 뒤쪽에 소스코드 관리라던지, 정작 필요한 Maven에 관한 내용은 건너 띄고 읽고 있습니다. ^^;;

  Java 프로젝트를 진행하는데 정말 도움이 되는 책입니다. ^^;; 이 책에서 읽은 내용과 인터넷에서 찾은 내용들은 다음 포스트에서 차근 차근 이야기를 풀어 볼까힙니다. ^^;;

http://talkit.tistory.com2009-03-28T01:00:020.31010
반응형
반응형

일반적인 에디터에서 Ctrl + G 키를 누르면

원하는 라인으로 이동합니다.

그런데 이클립스에서는 저키가 다른 역할을 합니다.

이클립스에서 원하는 라인(줄)로 이동하기는

Ctrl + L 입니다.

잊어버리지 말자 ^^; Ctrl + L


반응형

'JAVA' 카테고리의 다른 글

JSP에서 Referer  (0) 2009.07.26
JSP 클라이언트 아이피 구하기  (0) 2009.07.26
jsp 에서 sessionid 구하기  (0) 2009.07.26
[JAVA] cos.jar로 파일 업로드 하기  (0) 2009.04.03
자바 프로젝트 필수 유틸리티  (0) 2009.03.28

+ Recent posts