- 중소기업인력지원사업 종합관리시스템 관리자단 설문조사 기능 개발중 (2달짜리)

- 관리자가 설문조사 작성하고 설문요청자 명단에게 SMS 보내는 중 URL을 구글 축약 기능을 원해서 추가함.

- 내가 찾아본 방법은 2가지

  1. JavaScript 화면단(현재 웹스퀘어5)

  2. Java


- 설문조사 만들고, 해당 설문조사 요청 명단에게 'SMS' 보내야 한다.

  어차피 화면에 요청자 명단 데이타 있어서, 화면단에서 스크립트로도 가능하지만 JAVA 로 하기로 설정


- 준비물

  1. Google Developers Console 프로젝트 생성 > 사용할 구글 API(URL Shortener API) 등록 > 사용자 인증키 발급

  2. Library

org.json-20130603.jar

gson-2.5.jar

jackson-all-1.9.0.jar

  3. 코딩(URL Shortener 변환 클래스 만들기)

     - ShortenerURLGoogle.java

     (※ 해당파일 내에 상수 SHORTENER_API_KEY 는 1번 에서 발급받은 사용자 인증키 입력, 하루에 100만건이 제한)

     (※ JavaScript 로 하는게 훨씬 편해보이긴 한다.)




'공부 > JAVA' 카테고리의 다른 글

JAVA_[SMTP mail 전송(Gmail)]  (0) 2015.05.06
JAVA_[ Collection.srot (리스트 정렬)]  (0) 2015.03.26
JAVA_[ 제어자 ]  (0) 2015.02.10
JAVA_[ JVM의 메모리구조 ]  (0) 2015.02.10
JAVA_[Thread join()]  (0) 2015.02.09

org.insightech.er_1.0.0.v20150619-0219.jar

- ERMaster [DB모델링] 을 설치하려고 검색해보니 거의 다 예전글이고, 이클립스내에서 PlugIn 해도 검색이 안됨.

  직접설치하기로.. 이것도 구글링하면 다 나오는 내용지만, 남긴다. 언제 또 쓸일이 생길지 모르니...

  참 오랜만에 블러그 쓴다.


1. https://sourceforge.net/projects/ermaster/files/ 가서 

   Download org.insightech.er_1.0.0.v20150619-0219.jar (3.4 MB)

   다운로드


2. %이클립스설치경로%\plugins\ 안에 복사


3. %이클립스설치경로%\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info 열여서 젤 밑부분에

   "org.w3c.dom.svg,1.1.0.v201011041433,plugins/org.w3c.dom.svg_1.1.0.v201011041433.jar,4,false" ("따음표"는 빼고)


4. 이클립스 재기동. ERMaster 사용

// JavaScript 정규식을 이용한 Byte 계산하기

StringByteLen = string.replace(/[\0-\x7f]|([0-\u07ff]|(.))/g,"$&$1$2").length;


// JavaScript 개선된 For문 Byte 계산하기

stringByteLength = (function(s,b,i,c){

    for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?3:c>>7?2:1);

    return b

})


일반적으로 For문 돌려서 계산하는것 보다 훨씬 빠르다고 한다.


- 참조 : http://programmingsummaries.tistory.com/239


- TOAD 단축키 모음

▶ F3: 단어찾기 시 다음 일치하는 단어검색 (이전검색은  SHFIT + F3)

▶ F4 : 테이블 등 오브젝트의 정보를 보여줌. (OR CTRL + 오브젝트 클릭)

▶ F5 : 현재화면의 모든 SQL 실행 (CTRL + ENTER : 커서가 위치한 곳 또는 블록으로 선택한 영역실행)

▶ F8 : 이전에 실행했던 SQL History 조회

▶ CTRL + SHIFT + F : 쿼리 자동정렬

▶ CTRL + . : 테이블, 컬럼 등 자동완성

▶ CTRL + M : 자바코드로 변환. 단축키 실행 후 붙여넣기

▶ CTRL + INSERT : 조회된 로우복사시 컬림ID도 같이 복사됨.

▶ CTRL + B : 주석처리

▶ CTRL + SHIFT + B : 주석해제

▶ CTRL + L : 소문자 변경

▶ CTRL + U : 대문자 변경

▶ CTRL + F9 : 실행없이 SQL 문장 Vaildation 체크


'공부 > ORACLE_SQL' 카테고리의 다른 글

ORACLE_[ 년,월 임의출력 ]  (0) 2015.07.29
ORACLE_[ BLOB 타입 SELECT ]  (1) 2014.11.07
ORACLE_[ 숫자형 함수 ]  (0) 2014.11.04
ORACLE_[ START WITH ~ CONNECT BY ~ (오라클트리구조) ]  (0) 2014.05.26
ORACLE_[ DB_LINK CREATE ]  (0) 2013.11.21

- JAVASCRIPT onClick 스크립트 안에 파라미터 (this.parentNode.parentNode.rowIndex);




http://ha927.com.ne.kr/color.html

'공부 > CSS' 카테고리의 다른 글

CSS_[border(보더) 속성 ]  (0) 2014.01.24


출처 : http://mycup.tistory.com/29

'공부 > ORACLE_SQL' 카테고리의 다른 글

ORACLE_[TOAD 단축키 모음]  (0) 2016.09.13
ORACLE_[ BLOB 타입 SELECT ]  (1) 2014.11.07
ORACLE_[ 숫자형 함수 ]  (0) 2014.11.04
ORACLE_[ START WITH ~ CONNECT BY ~ (오라클트리구조) ]  (0) 2014.05.26
ORACLE_[ DB_LINK CREATE ]  (0) 2013.11.21

var monthLastDay = ( new Date('년', '월', 0) ).getDate();


음.. 화면단 에서만 콤마를 찍고, 실제 DB에는 Integer 값이 들어가므로 콤마(,)가 필요없다.

그러니까, 화면단에 보여줄 <input type="text> 랑 실제 처리 될 입력값 <input type="hidden">

두개를 놓고, submit 하기전에 콤마(,)찍은 화면단의 값을 실제 처리 될 입력 값 <input type="hidden"> 에 넣어주면 된다.


굳이 또, 적자면

<input type="text" name="moneyComma" id="moneyComma" value="<fmt:formatNumber type='number' 

value='${빈이름.변수이름(실제값)}'/>" onkeyUp="js_inputComma(this.value, 'moneyComma')"/>

<input type="hidden" name="money" id="money"/>


이렇게 하고, Submit 하기전에 "moneyComma" 의 값을 콤마제거하고, "money"에 넣고 날리면 되겠지'- ',

import java.io.UnsupportedEncodingException;

import java.util.List;

import java.util.Properties;


import javax.mail.Address;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeUtility;


import com.srpost.salmon.lang.StringUtil;


public class SMTPMailSend {


    public static void mailSend(List<String> toMails, String fromMail, String fromName, 

 String contents, String title, String mailId, 

 String mailPwd) throws MessagingException, UnsupportedEncodingException {


        if (StringUtil.isEmpty(mailPwd)) {


            // 내 메일 Access 허용 비밀번호,

            mailPwd = "구글에서 발급받은 16자리"; (gmail 로그인 비밀번호 아님)

        }


        Properties props = new Properties();


        props.put("mail.smtp.user", "내 Gmail 주소"); // "user@gmail.com"

        props.put("mail.smtp.host", "smtp.gmail.com");

        props.put("mail.smtp.port", "465");

        props.put("mail.smtp.starttls.enable", "true");

        props.put("mail.smtp.auth", "true");

        props.put("mail.smtp.debug", "true");

        props.put("mail.smtp.socketFactory.port", "465");

        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

        props.put("mail.smtp.socketFactory.fallback", "false");


        Authenticator auth = new SMTPAuthenticator(mailId, mailPwd);


        Session mailSession = Session.getInstance(props, auth);

        mailSession.setDebug(true); // 메일 전송할 때 상세한 상황을 콘솔에 출력한다.


        Address fromMailAddress = null;


        if (StringUtil.isEmpty(fromName)) { // 메일 보낸사람이름 등록시

            fromMailAddress = new InternetAddress(fromMail);

        }

        else { // 메일 보낸사람이름 미등록시

            fromMailAddress = new InternetAddress(fromMail, MimeUtility.encodeText(fromName, "UTF-8", "B"));

        }


        MimeMessage mailMsg = new MimeMessage(mailSession);

        mailMsg.setFrom(fromMailAddress);

        mailMsg.setSubject(title, "UTF-8");


        InternetAddress[] toMailAddress = new InternetAddress[toMails.size()];


        for (int i = 0; i < toMails.size(); i++) {


            toMailAddress[i] = new InternetAddress(toMails.get(i));

        }

        mailMsg.setRecipients(Message.RecipientType.TO, toMailAddress);

        mailMsg.setContent(contents, "text/html;charset=utf-8");


        // 전송

        Transport.send(mailMsg);

    }

}



import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;


public class SMTPAuthenticator extends Authenticator {


    private String mailId;

    private String mailPwd;


    public SMTPAuthenticator(String mailId, String mailPwd) {

        this.mailId = mailId;

        this.mailPwd = mailPwd;

    }


    @Override

    public PasswordAuthentication getPasswordAuthentication() {


        return new PasswordAuthentication(mailId, mailPwd);

    }

}


PS. 위의 작업 전 구글 계정 2단계 인증을 등록해야만, 가능하다. 인증 안 받고 해보진 않았다. 
     인터넷에서 인증을 받아야 된다고 해서..

1. https://myaccount.google.com/

2. https://accounts.google.com/b/0/SmsAuthConfig?hl=ko 
> 설정 시작

3. 재로그인

4. https://accounts.google.com/b/0/SmsAuthSettings?Setup=1
> 전화번호 입력 후 코드 전송

> 인증코드 입력

5. https://security.google.com/settings/security/apppasswords?pli=1
> 기기선택과 앱(MAIL) 선택 후 생성

6. 생성된 비밀번호를 위 소스의 pwd란에 입력한다.
          > mailPwd = "구글에서 발급받은 16자리";     여기 입력 할 비밀번호.


'공부 > JAVA' 카테고리의 다른 글

JAVA_[Google URL Shortener API]  (0) 2017.11.22
JAVA_[ Collection.srot (리스트 정렬)]  (0) 2015.03.26
JAVA_[ 제어자 ]  (0) 2015.02.10
JAVA_[ JVM의 메모리구조 ]  (0) 2015.02.10
JAVA_[Thread join()]  (0) 2015.02.09

+ Recent posts