본문 바로가기

전체 글152

Eclipse 4 파트에 팝업 및 뷰 메뉴 생성 Eclipse 3.x에서의 뷰(View) 또는 에디터 파트(EditorPart)는 Eclipse 4에서 파트(Part)와 동일한 의미로 사용된다. 이전에 커맨드 나 핸들러를 정의 했던 것처럼, 팝업 및 뷰 메뉴 관련된 정의를 Application.e4xmi 파일에 선언한다. 팝업 및 뷰 메뉴는 특정 파트와 관련되어 있다. 팝업 및 뷰 메뉴를 추가 하고자 하는 파트를 선택하고, 오른쪽 클릭을 하면 아래 이미지처럼 표시된다. 그런 다음 어떤 메뉴를 선택할지 클릭한다. Eclipse 4 파트에 팝업 메뉴 추가 팝업 메뉴에 대해서 먼저 알아보자. 다른 메뉴도 비슷한 방법으로 추가하기 때문에 참고하면 된다. Popup Menu 아래에 Handled Menu Item을 추가한다. 그리고 ID, Label, Comm.. 2019. 4. 30.
Atom에 Hydrogen 패키지 설치 Atom에 Hydrogen 설치 edwith 사이트에서 최성철 교수의 Python 수업 강의를 듣는데 Atom 에디터에서 Python 코드를 실행하는 방법이 신기해서 찾아봤다. Hydrogen Hydrogen은 Atom Package 중 하나이다. Hydrogen은 Jupyter Kernel을 인식해서 Python 코드 실행을 한다. 따라서 Jupyter Kernel이 설치가 되어 있지 않으면, 오류가 발생한다. 참고자료 Atom 에디터 설치 Atom hydrogen 설치 및 사용법 2019. 4. 30.
다른 스레드의 종료를 기다렸다가 수행하는 방법, Thread.join() 주로 스레드는 다른 스레드와 독립적으로 실행하도록 한다. 그렇지만 특정 스레드가 종료될 때까지 기다렸다가 실행해야 하는 경우도 있을 수 있다. 예를 들어, A, B 두 개의 스레드가 있다. A 스레드는 B 스레드에서 실행한 결과값을 이용해야 한다고 가정하자. 이러한 경우에는 Thread 클래스의 join() 메서드를 사용하면 된다. ThreadA가 ThreadB의 join() 메서드를 호출하면, ThreadA는 ThreadB 작업이 종료할 때까지 일시 정지 상태가 된다. 작업이 종료되고 나면 ThreadA는 일시 정지 상태에서 실행 상태가 되서 다음 코드를 실행하게 된다. ThreadA는 ThreadB 작업을 실행한다. ThreadA는 ThreadB.join() 메서드를 호출한다. ThreadA는 일시 .. 2019. 4. 29.
Future를 이용한 블로킹 방식의 작업 완료 통보 방법 Future 블로킹 방식의 작업 완료 통보 ExecutorService의 submit() 메서드는 매개값으로 준 Runnable 또는 Callable 객체를 스레드풀의 작업 큐에 저장하고 즉시 Future 객체를 반환한다. Future 객체는 작업이 모두 완료될 때까지 기다렸다가 최종 결과값을 얻는데 사용한다. Future를 지연 완료(pending completion) 객체라고 한다. Future 클래스의 get() 메서드를 호출하면 스레드가 작업을 완료할 때까지 블로킹 상태로 머무르다가 작업이 완료되면 처리 결과를 반환한다. 이 방법이 블로킹을 사용하는 작업 완료 통보 방식이다. 아래는 Future 클래스의 get() 메서드 설명이다. get() : 작업이 완료될 때까지 지연했다가 처리 결과를 반환한.. 2019. 4. 29.
Java 컬렉션 프레임워크(Collection Framework) Java 컬렉션 프레임워크(Collection Framework) 프로그래밍을 하다 보면 다수의 객체 또는 자료형을 담기 위해서 배열을 사용한다. 배열에 저장하면 이후에 필요할 때 꺼내서 사용할 수 있다. 배열의 단점으로는 초기 배열을 선언할 때 크기를 지정해야 한다는 점이다. 배열을 크기는 동적으로 가변적으로 늘릴 수 없다. 그렇다면 무조건 배열의 크기를 크게 해서 생성해야 할까? 배열의 크기를 크게 해서 생성하면, 불필요한 공간으로 인해 듬성 듬성 빈 공간이 남게 된다. 자바에서는 이러한 문제점을 보완하고자 자료구조(Data Structure)를 바탕의 인터페이스와 클래스를 제공한다. java.util 패키지 자료구조 개념의 클래스와 인터페이스는 java.util 패키지에 위치한다. 이들을 총칭해서 .. 2019. 4. 29.
H2 대소문자 구분 없이 Like 검색 (case insensitive like query) H2 데이터베이스는 기본적으로 대소문자를 구별한다. 즉 sensitive 하다라는 뜻이다. 따라서 대소문자 구분 없이 검색하려면, ILIKE 키워드를 사용해야 한다. 이러한 특징은 PostgreSQL 데이터베이스에서도 동일하다. # case insensitive SELECT * FROM users WHERE name ILIKE '%jayden%'; # case sensitive SELECT * FROM users WHERE name LIKE '%jayden%'; 참고자료 H2 공식 문서 2019. 4. 29.
리팩토링 - 코드의 구린내 코드의 구린내 구린내라는 표현은 캔트 벡이 마틴 파울러에게 제안한 아이디어이다. 어딘가 구리다, 별로다 라는 표현을 '구린내'라고 빗대어 표현한 것이다. 리팩토링이 필요한 코드를 코드의 구린내가 난다고 표현한다. 중복 코드 (Duplicated Code) 중복 코드는 코드의 구린내 중 하나이다. 똑같은 코드 구조가 두 군에 이상에서 중복으로 사용될 때, 이를 하나로 통일하면 프로그램이 개선된다. 중복 코드의 예로 한 클래스의 두 개의 메서드에 동일한 코드 구조가 들어가 있는 경우이다. 이럴 때는 메서드 추출 기법을 사용해서 중복되는 코드를 빼내어 별도의 메서드로 구성하는 것이 좋다. public void methodA() { methodC(); } public void methodB() { methodC.. 2019. 4. 28.
백준알고리즘 10988번 팰린드롬인지 확인하기 10988번 팰린드롬인지 확인하기 문제는 문자열 처리 알고리즘 문제입니다. 팰린드롬 또는 회문이란 간단하게 말해서 입력 받은 문자열이 거꾸로 해도 같은 문자를 뜻한다. 예를 들어 한글로는 토마토가 있고, 영어로는 level이 있다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String text = scan.next(); System.out.println(isPalindrome(text)); scan.close(); } private static int isPalindrome(String text) { int textLeng.. 2019. 4. 25.
SYBASE IQ 사용자 로그인시 비밀번호 변경 하도록 설정 USER 생성 CREATE USER LELECODER IDENTIFIED BY SYBASEIQ; USER 로그인시 비밀번호 변경 하도록 설정 ALTER USER LELECODER FORCE PASSWORD CHANGE ON; 2019. 4. 25.