본문 바로가기

IT/Java

(13)
java resource 경로 참조 어플리케이션을 개발하다보면 전역 환경변수 등을 파일 하나로 관리해야하는 상황이 발생한다. 웹 어플리케이션과 배치프로그램을 무려 하나의 프로젝트로 가져가는 -_- 환경에서자바 어플리케이션과 웹 어플리케이션에서 공용으로 사용했던 resource 참조 코드를 기록해둔다. 참고로 프로젝트의 웹 어플리케이션 환경은 Jersey 프레임워크, 톰캣 8.0 으로 구성되었다. public final class ConfigProperty { private static final Logger LOGGER = Logger.getLogger(ConfigProperty.class); private static final String PROP_FILE_PATH = "config.properties"; private static P..
java.net.InetAddress를 활용한 IP주소 구하기. Java-standalone에서 간단한 로직을 구현하다보니 시스템의 IP주소를 출력할 일이 있었다. Web기반에서 Request객체를 통해 요청자의 IP주소를 뽑아낸 적은 있지만정작 내 시스템의 IP주소를 뽑아내본 적은 없었다.-_-; 검색해보니 JDE 자체에서 지원하는 클래스를 통해 간단히 IP주소를 뽑을 수 있어 기록해본다. 기본적으로 try / catch 문으로 예외처리를 해주어야하며, 결과값은 다음과 같이 출력된다. 동일하게 출력된다. :)
java.util.UUID API를 활용한 랜덤아이디 만들기. UUID(Universally unique identifier), 범용 고유 식별자. 소프트웨어 구축에 쓰이는 식별자 표준으로,개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화..같은 내용은 궁금한 사람만 위키피디아에서 살펴보도록 하고 (링크) 프로젝트에서 사용자에게 임시비밀번호를 부여하는 로직에서Java에서 지원하는 UUID 기능을 사용해 볼 기회가 있었다. 관리자가 기존 회원의 비밀번호를 임시비밀번호로 교체하는 로직을 호출하면해당 사용자의 비밀번호를 UUID로 변경하고, 사용자의 이메일로임시비밀번호 변경페이지로 이동가능한 HTML링크를 전송해주는 방식이다.메일발송기능도 충분히 재미있지만, UUID도 충분히 중요하고 짧으니까 먼저 기록해두려한다. 기본적인 UUID의 생성은 간단..
org.apache.commons.email 라이브러리를 활용한 메일 발송 기능. 프로젝트 진행 중 메일발송 기능을 만져볼 기회가 있었다.이전 다른 프로젝트에서 메일발송을 구현했던 선배님께 조언을 구해아파치 커먼즈에서 지원하는 메일 라이브러리를 통해 구현하게 되었다. 기본적으로 org.apache.commons.mail.Email 익명클래스를 상속받아SimpleEmail, MultipartEmail, HtmlEmail 등의 클래스를 구현하게 된다.(HtmlEmail클래스의 경우는 정확히는 MultipartEmail클래스를 상속받음) 파일첨부메일의 경우 org.apache.commons.mail.EmailAttatchment클래스를 별도로 구현하여MultipartEmail클래스를 .send()메서드로 발송 직전 .attatch()메서드로 붙여주면 됨. SimpleEmail의 경우 실제로..
가변인자 (varargs : Variable Arguments) 멘토과장님께서 참고하라고 소스를 주셨는데, 희한한 형태의 코드가 보였다. .. 무엇인가 이 요상한 형태의 인자는; String[] 도 아니고 String도 아니고 String... ?"요거이 대체 뭐당가요" 부시맨처럼 묻는 내게 과장님은 이렇게 대답해주셨다. ㄴ..넵 알겠습니다! 구글링하니 Variable Arguments. 가변인자 라고 한다.ArrayList를 사용하자니 인자가 너무 적고, 배열을 사용하자니 인자의 갯수를 예측하기 힘들다.이럴때 가변인자를 사용한다. 인자의 자료형과 변수명 사이에 점 3개(...)을 넣어준다. void varargs(String... params) 결국 위 코드의 getFilePath()메서드는 인자로 filePath와 filePath2를 받아순서대로 경로를 체크하여 ..
2013.01.14. Java Interface, 익명내부클래스, Object클래스, Exception클래스 2013.01.14. Java Interface, 익명내부클래스, Object클래스, Exception클래스 인터페이스 사용의 이유 - Java에서는 객체간의 혼선을 최대한 방지하기 위해 둘 이상의 객체로부터의 상속(다중 상속)을 허용하지 않는다. - 클래스의 상속이 아닌 공통기능이 추출된 인터페이스의 구현을 통해 재사용성을 극대화한 시스템 구축이 가능해진다. 인터페이스 선언 및 구현 예 interface Lendable { void checkOut(String borrower, String date); void checkIn; } class SeparatedVolumn implements Lendable { void checkOut(String borrower, String date) { … … … }..
2013.01.11. Java 형변환, final, 추상클래스 2013.01.11. Java 형변환, final, 추상클래스 오브젝트 형변환(Cast) - 부모 클래스로부터 상속을 받을 경우 데이터형태까지 승계 - 메서드 오버라이딩의 제정을 통한 다형성의 구현 메서드 오버라이딩(Method Overriding) - 자식 클래스에서 사용하기 위해 부모 클래스에서 정의한 메서드를 재정의. - 메서드명을 포함한 메서드 시그니쳐를 부모 클래스에서와 동일하게 선언. - super.메서드명 : 부모 클래스의 해당 메서드를 호출하기 위한 명령문. - 자식 클래스에 오버라이딩된 메서드가 존재할 경우, 메서드를 호출시 언제나 원본 메서드가 아닌 오버라이딩된 메서드를 호출한다.※ Java의 Interface의 의미를 이해하는데 매우 중요하다.final 키워드의 활용 - final +..
2013.01.10. Java 상속, 예외처리 2013.01.10. Java 상속, 예외처리 상속 (Inheritance)- 기존의 클래스에서 신분(클래스)과 자원(변수, 메서드)를 받아 확장, 새로운 클래스를 만드는 것.- 부모를 상속한 클래스에서 객체를 생성할 경우 부모 클래스가 먼저 호출된다. 곧, 부모 클래스의 default생성자가 먼저 호출된다.(클래스는 언제 부모 클래스로 지정될 지 모르므로 언제나 default생성자를 만들어두는 것이 좋다.) ※ super함수 : 부모 클래스의 생성자를 호출해서 멤버 변수를 초기화하기 위한 호출 구문super함수를 통한 부모 클래스 생성자 호출의 예) Account(String accountNo, String ownerName, int balance) { this.accountNo = accountNo;..