유사한 폴더나 파일을 비교해서 차이점을 확인하고 내용을 통합하고 싶을 때 가장 즐겨 사용하는 툴이

 

Beyond Compare 입니다.

 

주로 소스코드를 비교할 때 사용하는데요.

 

쉬운 설치와 깔끔한 비교 그리고 완벽한 통합까지!!

 

몇 년째 애용하고 있는 Beyond Compare 의 설치 및 사용방법에 대해 소개해 드리도록 하겠습니다.

 

 

 

1. 설치하기

 

아래 링크를 통해서 사이트를 방문하시면 Beyond Compare 를 무료로 다운 받을 수 있습니다.

http://www.scootersoftware.com/download.php

 

 

 

설치하고자 하는 PC 의 운영체제를 선택하고

Standard and Pro Editions 옆에 위치한 Download 를 클릭합니다.

(저는 윈도우에 설치할 것이기 때문에 Windows 를 선택했습니다.)

 

 

 

실행 버튼을 클릭합니다.

 

 

 

이제부터 설치가 시작됩니다.

현재최신 버전은 4.0.7 입니다.

Next 버튼을 클릭합니다.

 

 

 

설치될 공간을 선택하는 화면입니다.

Next 버튼을 클릭합니다.

 

 

 

라이센스를 확인하는 부분입니다.

I accept the agreement 를 체크하고, Next 버튼을 클릭합니다.

 

 

 

설치될 위치를 확인한 후 Next 버튼을 클릭합니다.

 

 

 

생성될 폴더 이름을 지정하는 화면입니다.

Next 버튼을 클릭합니다.

 

 

 

아이콘과 컨텍스트 메뉴 생성을 묻는 부분입니다.

Next 버튼을 클릭합니다.

 

 

 

앞에서 설정한 모든 정보를 다시 한번 확인하고 Install 버튼을 클릭해서 설치를 진행합니다.

 

 

 

짧게 Progress bar 가 지나가고 설치가 완료된 화면입니다.

Finish 버튼을 클릭하여 Beyond Compare 를 실행합니다.

 

 

 

 

2. 파일 비교하기

 

 

 

Beyond Compare 를 실행하면 다음과 같은 화면이 나타납니다.

5가지 기능 중에서 자주 사용하는 것은 Text Compare 와 Folder Compare 인데요.

이번에는 간략하게 Text Compare 기능을 사용해 보도록 하겠습니다.

Text Compare 를 클릭합니다.

(Folder Compare 기능은 폴더의 구조와 폴더에 속한 파일들을 비교하게 됩니다.)

 

 

 

비교 대상의 내용을 명시적으로 확인할 수 있게 화면이 분할되어 나타납니다.

각각 상단에 위치한 열기 아이콘을 클릭하여 비교할 파일들을 import 합니다.

 

 

 

입력된 숫자가 다른 파일 2개를 생성하여 비교해 보았습니다.

화면에서 나타는 것과 같이 두 파일이 다른 위치와 내용을 빨간색을 이용해서 알려주고 있습니다.

 

사용자는 빨간색 부분을 통해 두 파일의 차이점을 한 눈에 파악할 수 있으며

좌측에 위치한 노란색 화살표를 클릭하여 우측 내용을 좌측으로 또는 좌측 내용을 우측으로 복사할 수 있습니다.

 

또한 맨 아래 부분을 보면 서로 다른 부분을 정확히 비교해서 한 번 더 표현해 주기 때문에

분할 화면을 통해 이해가 되지 않은 부분이 있다면 더 상세하게 확인 할 수 있습니다.

 

이 외에도 위쪽에 위치한 다양한 도구 메뉴를 사용하여 편리하게 비교 및 통합을 진행 할 수 있습니다.

 

Posted by maze1008
,

몇 시간에 걸쳐 정성스럽게 블로그에 글을 작성하고 나면 검색이 잘 되고 있는지 궁금해 질 때가 있습니다.

 

이왕이면 많은 사람들에게 도움이 된다면 기분이 참 좋겠는데 검색이 잘 이루어져야 가능한 소원이겠죠.

 

그래서 오늘은 내가 작성한 블로그 글이 네이버에서 검색이 잘 이루어지고 있는지

 

검색누락 을 확인/해결하는 방법에 대해 설명해 드리도록 하겠습니다.

 

 

 

1. 검색누락 확인하기

 

 

제가 열심히 작성한 글 입니다.

글의 제목은 "이클립스 테마 적용하기" 인데요.

네이버에서 확인할 때 사용하는 키워드가 바로 글의 제목 입니다.

 

 

우리가 매일 하루 한 번 이상은 방문하게 되는 네이버 홈페이지 입니다.

평소에 검색하듯이 검색창에 제가 작성한 글의 제목 "이클립스 테마 적용하기" 를 입력하여 검색합니다.

 

대부분의 경우 이렇게 단순한 검색 만으로도 자신의 글이 등록되었는지 확인 할 수 있는데요.

1 페이지에 글이 나타나지 않는다면 우선순위가 조금 아래에 있을 수도 있으니 대략 3 페이지까지 확인해 봅니다. (저는 ctrl + f 에 제 블로그 주소를 입력해서 search 합니다.) 

 

만약 어디에도 자신의 글이 보이지 않는다면 좀 더 상세한 검색이 필요합니다.

화면에서 정렬, 기간, 영역, 유사문서, 출처 옵션이 보이시나요?

이 옵션들을 하나씩 조절해서 상세 검색을 진행 할 수 있습니다.

 

 

 

(1) 정렬

정확도는 네이버에서 내부적으로 정의한 기준에 의해 글들이 정렬된 상태입니다.

최신순을 선택해 주세요. (가장 최근에 등록된 순서대로 글들이 정렬됩니다.)

 

 

 

(2) 기간

검색 기간를 조정할 수 있습니다.

찾고자 하는 글이 등록된 날짜를 기준으로 검색하고자 하는 기간을 선택합니다.

(3일전에 등록된 글을 찾고 싶다면 1주를 선택합니다.)

 

 

 

(3) 유사문서

네이버에서 정한 기준에 따라 이미 존재하는 글과 유사하다고 판단되면 기본 검색에서는 제외됩니다.

자체적인 기준이기 때문에 실제로 유사문서가 아님에도 이 부분에 포함되는 경우가 존재합니다.

따라서 포함을 선택해 주세요. (유사문서를 해결하는 방법은 아래에서 다시 설명 드리겠습니다.)

 

 

 

(4) 출처

어떤 사이트(블로그)를 대상으로 검색할 것인지 출처를 등록하는 부분입니다.

특정출처만 검색을 선택하고 입력창에 사이트(블로그) 주소를 입력 > 적용하기 버튼을 클릭합니다.

(저는 http://library1008.tistory.com 를 입력했습니다.)

 

 

이제 이러한 상세 조건을 순서대로 적용하면서 검색창에 제가 작성한 글의 제목 "이클립스 테마 적용하기" 를 입력하여 다시 검색합니다.

 

 

 

 

2. 유사문서 해결하기

 

상세 조건에서 유사문서 포함을 선택하고 검색했을 때 글이 나타나셨나요? (제외했을때는 나타나지 않았고요!)

저도 제가 작성한 글임에도 유사문서에 포함된 경험이 있는데요.

 

유사문서로 분류되면 네이버 기본 검색에서는 제외되기 때문에 일반 사용자들에게는 노출되지 않는다고 생각할 수 있습니다. (즉 검색이 되지 않는 상태라고 생각하시면 됩니다.)

 

그래서 유사문서가 아님을 네이버에 알리기 위해 몇 가지 추가적인 작업이 필요합니다.

 

 

아래의 링크를 통해서 네이버 고객센터에 방문합니다.

https://help.naver.com/

 

 

블로그를 클릭합니다.

 

 

좌측 메뉴에서 블로그 검색을 클릭합니다.

 

 

 

블로그 검색 반영 요청을 클릭합니다.

 

 

 

좌측 메뉴에서 원본 반영 요청하기 를 클릭합니다.

 

 

 

네이버 아이디로 로그인을 진행하고

작성한 글의 URL 을 ("이클립스 테마 적용하기" 의 URL : http://library1008.tistory.com/29) 입력한 후에

개인 정보 수집동의 체크 > 작성완료 버튼을 클릭합니다.

 

저는 몇 시간 뒤에 제 글이 유사문서에서 탈출해서 정상적으로 검색되는 것을 확인했습니다.

유사문서로 분류되는 일이 시스템의 의해 이루어지기 때문에 특별한 문제가 없다면 정상적으로 수정이 가능할 것입니다.

 

 

 

3. 검색누락 해결하기

 

상세 조건을 설정하여 검색을 했는데도 불구하고 글이 나타나지 않는다면 검색누락을 네이버에 알려서 문제를 해결할 수 있습니다.

 

 

네이버 웹마스터를 통해서 검색요청을 할 수 있는데요.

http://webmastertool.naver.com/

 

 

아직 네이버 웹마스터에 가입하지 않으셨다면 아래 포스팅을 참고하시기 바랍니다.

네이버에 티스토리 블로그 등록하는 방법 (네이버 웹마스터도구 사용)

 

 

 

 

촤측 메뉴에서 수집요청을 선택합니다.

작성한 글의 URL 을 ("이클립스 테마 적용하기" 의 URL : http://library1008.tistory.com/29) 입력한 후에

확인 버튼을 클릭합니다.

 

수집 요청 결과는 아래쪽에 리스팅됩니다.

(저는 요청성공 이라는 메시지를 받고도 검색이 되지 않았습니다.

하지만 네이버에서 검색누락에 대해서 해결책으로 제시하는 것이 이 방법뿐이니 시도는 해 보아야겠죠?!)

 

Posted by maze1008
,

애드센스를 처음 가입하는 일은 경우에 따라서 매우 어려울 수 있습니다.

 

인터넷 검색을 통해 여러 기준들을 확인할 수 있지만 어느 것이 명확하다고 확정할 수 없기 때문에

 

한 번에 쉽게 승인이 되는 사람이 있는 반면 여러차례의 요청에도 거절을 당하는 상황을 만날 수도 있습니다.

 

하지만 이렇게 어렵게 단 한번의 관문을 지나고 나면 이후에 운영하는 다양한 곳에 광고를 바로 추가하여 사용할 수 있습니다.

 

오늘은 가입이 완료된 상태에서 사이트(블로그)를 추가하는 방법을 소개해 드리도록 하겠습니다.

 

 

애드센스 계정에 로그인합니다.

https://www.google.com/adsense/

 

 

우측 상단에 설정(톱니바퀴) 아이콘 > 설정을 클릭합니다.

 

 

 

좌측 메뉴에서 사이트 관리를 클릭하면 계정에 등록된 사이트(블로그) 리스트가 나타납니다.

 

처음 애드센스에 가입하기 위해서 입력했던 사이트(블로그)가 1개 리스팅되어 보여집니다.

 

추가하고자 하는 사이트(블로그)의 주소를 입력한 후 사이트 추가 버튼을 클릭해주세요.

 

하나의 애드센스 계정에는 500개의 사이트(블로그)를 추가하여 사용할 수 있습니다.

 

 

이제 사이트(블로그)에 광고를 바로 추가하여 사용하실 수 있습니다!!

Posted by maze1008
,

네이버 키워드광고 또는 네이버 검색광고 란 말을 들어보신적 있으신가요?

 

지난번 블로그에 애드센스를 추가하는 방법에 대해서 소개해 드렸는데요.

구글 애드센스 가입하기

구글 애드센스 삽입하기

 

네이버 블로그에서도 글의 하단쪽에 Text 형태로 된 키워드광고를 보신적이 있으실 겁니다.

 

이처럼 자신의 상품을 홍보하기 위해서 광고주, 창업주, 사업자, 기업 여러분들이

 

네이버에 광고를 등록하는 시스템이 바로 네이버 키워드 광고 입니다.

 

이곳에 등록된 광고들이 우리가 운영하는 블로그 등에 삽입되어 홍보되는 것입니다.

 

 

자신의 상품을 최적화된 상태로 알리기 위해서

 

등록 기능 이외에도 다양한 기능들이 제공되고 있는데 이 중에서 우리 모두가 주목해야 할 것은

(광고주, 블로그 운영자 분들을 포함해서 모두!!)

 

바로 키워드 조회수(검색수) 확인 입니다.

 

네이버를 사용하는 분들이 어떤 키워드를 얼만큼 자주 검색하는 지를 알게 된다면

 

광고주 분들은 정보에 적합한 광고 문구, 이미지 등을 선정하실 수 있고

 

블로그 운영자 분들은 정보에 적합한 포스트를 작성하실 수 있습니다.

 

특히! 블로그 운영자 분들은 몇 시간에 걸쳐 열심히 작성한 글을 하루, 열흘, 한달이 지나도 찾는 이가 없다면

 

다음과 같이 2 가지 항목을 체크해 볼 필요가 있습니다.

 

1. 블로그가 검색이 되지 않는지

네이버 검색창에서 글을 제목을 검색해 보았을 때 나타나지 않으면 네이버에서 글을 수집하지 못한 것 입니다. 네이버 웹마스터 도구를 이용해서 글 검색 요청을 수행하면 OK

 

2. 사용자가 검색하지 않는 키워드인지

네이버 키워드광고를 사용해서 키워드 조회수(검색수)를 확인해보면 OK

한달에 조회수가 10명 미만의 키워드이고, 등록한 글이 검색 페이지 3번째쯤 위치해 있다면

누가, 언제, 어떻게, 왜!! 글을 검색해서 찾아 들어올 수 있겠습니까...;

 

1 번째 방법은 글을 작성한 이후에 확인하는 것이 일반적인 방법이지만

 

2 번째 방법은 사실 글을 작성하기 이전에 충분히 확인 해 볼 수 있는 사항입니다.

 

그래서 이번에는 블로그 운영자 분들께 어쩌면 더더욱 유용할 네이버 키워드광고를 사용하는 방법에 대해서 소개해 드리도록 하겠습니다!!

 

 

아래의 링크를 클릭해 주세요.

(앞으로 자주 방문하실 곳이니 즐겨찾기 해놓으시기 바랍니다.)

http://searchad.naver.com/

 

 

원래 목적이 광고주 분들을 위한 곳이니 광고주 신규가입이 필요합니다.

(네이버 계정으로는 로그인이 되지 않으니 신규 가입을 해주셔야 합니다.)

 

신규가입후 광고를 등록하지 않을 것이기 때문에 비용이 발생하지 않습니다.

 

우리가 해야할 건 단순 가입일 뿐이니 걱정하지 마시고 광고주 신규가입을 클릭합니다.

 

 

 

익숙하게 보아온 회원가입 페이지 입니다.

휘리릭 진행해 주세요.

 

 

 

광고주 유형 : 개인광고주, 인증방법 : 휴대폰인증을 체크하시고

나머지 과정을 완료합니다.

 

 

 

가입 완료후 다시 메인 페이지입니다.

로그인 > 상단에 광고관리시스템을 클릭 합니다.

 

 

 

좌측에 키워드 도구를 클릭합니다.

 

 

 

입력창에 확인하고자 하시는 키워드를 입력하시고

키워드 조회 버튼을 클릭합니다.

 

월간조회수(PC), 월간조회수(모바일) 이 두 항목에 주목해 주시기 바랍니다.

 

한 달동안 네이버 사용자들이 이 키워드를 몇 번 찾았었는지 검색수(조회수) 를 보여줍니다.

 

당연히 사용자가 많이 찾는 키워드 일수록 관련된 글을 작성하면 블로그의 방문자도 많아지겠죠!

 

(추가로 가장 좋은건 사용자가 많은 찾는 검색어이고, 등록한 글이 1페이지 검색 최상단에 올라가는 것 입니다.

그런 키워드가 무엇이 있을까요?! )

Posted by maze1008
,

자바의 String 형을 선언하는 방법에는 2가지가 있습니다.

 

1. 기본 자료형(Primitive Type) : 실제 값을 저장

String apple = "apple";

 

2. 참조형(Reference Type) : 클래스를 사용하여 값이 저장되어 있는 주소를 저장

String banana = new String("banana");

 

두 가지 모두 애용되는 방법이지만

문자열을 비교하는 연산을 수행할 때 원하지 않는 오류를 발생시킬수 도 있습니다.

 

오늘은 기본 자료형과 참조형에 대한 등위 연산자의 차이와

문자열 비교에 이용되는 다양한 String 메소드에 대해서 알아 보도록 하겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class StringTest {
    
    public static void printResult(boolean result) {
        if (result) {
            System.out.println("같다");
        } else {
            System.out.println("다르다");            
        }
    }
 
    public static void main(String[] args) {
        // 기본 자료형(primitive type)
        String str1 = "apple";
        String str2 = "apple";
                
        // 참조형(reference type) : class
        String str3 = new String("apple");
        String str4 = new String("apple");
 
        // 등위 연산자( == )
        printResult(str1 == str2);        
        printResult(str2 == str3);
 
        // equals(), equalsIgnoreCase()
        printResult(str2.equalsIgnoreCase(str3));
        printResult(str3.equalsIgnoreCase(str4));
 
        // compareTo(), compareToIgnoreCase()
        printResult(str2.compareToIgnoreCase(str3) == 0);
        
        // matches(regex)
        printResult(str2.matches(str3));
    }
}
 
cs

 

"apple" 이라는 문자열을 대해 기본 자료형 변수와(str1, str2) 참조형 변수(str3, str4) 가 각각 2개씩 선언하였습니다.

 

 

1. 등위 연산자 ( == )

 

첫 번째로 비교에서 가장 많이 사용되는 등위 연산자를 적용해 보았습니다.

 

1
2
3
// 등위 연산자( == )
printResult(str1 == str2);    // 같다
printResult(str2 == str3);    // 다르다
cs

 

같은 기본 자료형을 비교했을 때에는 "같다"

기본 자료형과 참조형을 비교했을 때에는 "다르다"는 결과가 출력되었습니다.

 

두 연산의 결과가 다른 이유는 무엇이었을까요?

그 이유는 기본 자료형으로 선언한 경우 변수가 다르더라도 같은 내용(문자열)을 갖고 있다면 동일한 주소값을 가리키고 있기 때문입니다. 따라서 처음의 등위 연산자는 "같다" 는 결과를 출력하게 된 것 입니다.

 

이와 반대로 참조형의 경우에는 각각 메모리의 일정한 공간을 차지하기 때문에 기본 자료형과 같은 내용(문자열)을 갖고 있다 하더라도 다른 주소를 가리키게 됩니다. 그래서 다음의 등위 연산자는 "다르다" 는 결과를 나타내게 됩니다.

 

printResult(str3 == str4); // 다르다 

참조형 변수를 비교하더라고 마찬가지로 "다르다" 라는 결과를 얻게 될 것입니다.

 

결국 등위 연산자가 비교한 값은 실제 문자열이 아닌 문자열이 저장된 주소인 것이지요.

 

 

2. equals(), equalsIgnoreCase()

 

우리가 비교하고 싶은 것은 실제 문자열! 입니다.

 

1
2
3
4
// equals(), equalsIgnoreCase()
printResult(str2.equalsIgnoreCase(str3));    // 같다
printResult(str3.equalsIgnoreCase(str4));    // 같다
cs

 

그래서 문자열의 비교에는 String 클래스에서 제공해주는 equals(), equalsIgnoreCase() 메소드를 사용합니다. 실제 문자열을 비교하기 때문에 기본 자료형과 참조형의 비교에도 우리가 원하는 "같다" 는 결과를 제대로 돌려줍니다.

 

1
2
3
4
5
printResult("apple".equals("APPLE"));    // 다르다
printResult("apple".equals("apple"));    // 같다
        
printResult("apple".equalsIgnoreCase("APPLE"));    // 같다
printResult("apple".equalsIgnoreCase("apple")); // 같다
cs

 

equals() 메소드는 대소문자를 구분하여 비교하고

equalsIgnoreCase() 메소드는 대소문자를 구분하지 않고 비교하므로

원하는 비교 형태를 확인하시고 선택 / 사용하면 더욱 유용합니다.

 

 

3. 그 외의 방법들  : compareTo(), compareToIgnoreCase(), matches()

 

equals(), equalsIgnoreCase() 메소드 이외에도 

String 클래스에서 제공해주는 다양한 메소드를 활용할 수도 있습니다.

 

1
2
3
4
5
// compareTo(), compareToIgnoreCase()
printResult(str2.compareToIgnoreCase(str3) == 0);    // 같다
        
// matches(regex)
printResult(str2.matches(str3));    // 같다
cs

 

두 문자열의 길이가 같은지, 각각의 순서에 맞게 char 로 비교한 결과를 리턴하는

compareTo(), compareToIgnoreCase() 메소드는 두 문자열이 같다면 0 를 반환하게 됩니다.

 

또한 matches() 메소드는 파라미터로 정규식(regex) 를 입력받아, 문자열이 정규식과 일치하는지 확인하는 데 사용되지만 위에서와 같이 문자열 비교에도 이용할 수 있습니다.

 

Posted by maze1008
,

안드로이드에서는 이클립스의 DDMS 탭을 통해서 연결된 디바이스의 화면을 손쉽게 캡쳐할 수 있습니다.

 

 

USB 케이블을 사용하여 스마트폰과 PC 를 연결합니다.

 

 

 

이클립스 실행 > 우측의 DDMS 탭 선택

DDMS 탭이 없다면

(1) 이클립스 실행 > Window 메뉴 > Open Perspective > Other...  를 클릭합니다.

(2) Open Perspective 다이얼로그 > DDMS 선택 > OK 버튼 클릭합니다.

 

좌측 상단 Devices 탭에서 PC 의 연결된 스마트폰 선택 > 바로 위의 카메라 버튼 클릭

(위의 표시된 device name 은 갤럭시일 경우 samsung-.... 나타날 수 있습니다.) 

 

 

 

선택한 스마트폰의 현재 화면이 캡쳐되어 다이얼로그에 보여집니다.

Save 버튼을 클릭하면 PNG 파일로 저장할 수 있습니다.

Posted by maze1008
,

이클립스 단축키

IT/Eclipse 2015. 3. 15. 15:45

이클립스에서 단축키를 사용하면 효율성, 생산성을 크게 향상 시킬 수 있습니다.

 

특별히 외우려고 하지 않아도 사용하다보면 자연스럽게 그 편리함에 많은 단축키들을 쓰게 되는데요.

 

오늘은 이클립스에서 제공하는 기본적인 단축키에 대해서 소개해 드리도록 하겠습니다.

 

 

이클립스 (Eclipse) 를 실행하고 Help 메뉴 > Key Assist 를 클릭하면

우측 하단에 우리가 사용할 있는 기본 단축키 리스트가 나타납니다.

 

정말로 다양한 기능들이 지원되는데요.

이중에서 유용한 것들을 선별해 보도록 하겠습니다.

 

 

 

 

F1 : 도움말

F3 : 클래스, 메소드, 속성이 선언된 위치로 이동

F4 : 클래스의 계층구조 확인(Type Hierarchy view)

F5 : 디버깅 시 선택된 행의 메소드 내부로 이동 (Step In)

F6 : 디버깅 시 선택된 행의 아래로 이동 (Step Over)

F7 : 디버깅 시 실행중인 메소드 외부로 이동(Step Return)

F8 : 디버깅 시 다음 디버그 포인트(중단점)로 이동 (Resume)

F11 : 디버그 모드로 실행 (Debug)

F12 : Editor창으로 이동

 

 

Ctrl + / : 한 줄 주석(//) 처리 또는 해제

Ctrl + 콤마(,) 또는 점(.) : 다음/이전 에러(경고)로 이동

Ctrl + F6 또는 E : Editor 창 간의 이동 (파일간의 이동)

Ctrl + F7 : View 창 간의 이동 (Console, Problems )

Ctrl + F8 : Perspectives 창 간의 이동 (Java, Debug )

Ctrl + F11 : 실행 모드로 실행 (Run)

Ctrl + 1 : 빠른 수정 (에러에 대한 수정할 코드 추천)

Ctrl + D : 한 줄 삭제

Ctrl + F : 문자열 찾기 (Find/Replace 다이얼로그)

Ctrl + H : 문자열 찾기 (Search 다이얼로그)

Ctrl + I : 들여쓰기 자동 적용

Ctrl + K : 현재 선택된 문자열과 동일한 문자열 찾기

Ctrl + L : 행 번호를 입력하여 특정 행으로 이동 (Go to Line 다이얼로그)

Ctrl + M : 현재 View / Editor 를 최대화

Ctrl + N : 새로운 파일 / 프로젝트 생성

Ctrl + O : 메소드 또는 속성 이동

Ctrl + Q : 마지막으로 편집한 곳으로 이동

Ctrl + T : 클래스 계층 구조 팝업

Ctrl + W : 파일 닫기

Ctrl + Space : 코드 자동완성

 

 

Ctrl + Shift + F4 : 열린 파일 모두 닫음

Ctrl + Shift + Space : 메소드의 파라미터 목록 표시

Ctrl + Shift + B : 현재 행의 중단점(Break Point) 설정 / 해제

Ctrl + Shift + F : 코드 형식 정리

Ctrl + Shift + G : 선택한 메소드, 속성이 사용된 모든 곳을 검색 (Search view)

Ctrl + Shift + L : 모든 단축키 정보 표시

Ctrl + Shift + O : import 자동 추가 / 삭제

Ctrl + Shift + R : 파일(클래스 포함) 찾기(Open Resource 다이얼로그)

Ctrl + Shift + T : 클래스 찾기 (Open Type 다이얼로그)

Ctrl + Shift + X : 대문자 변환

Ctrl + Shift + Y : 소문자 변환

 

Ctrl + Alt + G : 전체 파일에서 선택된 문자열과 동일한 문자열 찾기 (Search view)

Ctrl + Alt + 화살표(up, down) : 현재 라인을 위(아래)로 복사

Alt + 화살표(up, down) : 현재 라인을 한 줄씩 위(아래)로 이동

 

 

굵게 표시한 항목들은 제가 평소에 특별히 유용하게 사용하는 기능들입니다.

실행 / 디버깅 작업을 할 때에는 필수적으로, 검색 (클래스, 메소드, 속성, 문자열, 호출된 곳) 및 Edit 작업시에도 적절한 기능들을 선택하여 애용하고 있습니다.

 

혹시 프린트를 해서 컴퓨터 옆에 붙여놓고 사용하고자 하시는 분들을 위해서

2가지 형태의 (word, excel) 파일을 첨부해 놓았습니다.

(이 포스트는 복사가 금지되어 있으므로 파일을 다운받아서 사용해 주시기 바랍니다.)

 

 

이클립스 단축키(word).docx

 

이클립스 단축키(excel).xlsx

 

Posted by maze1008
,

자바에서 정수를 표현하기 위해서 byte, short, int, long 등 다양한 타입이 지원됩니다.

 

그러나!  long 보다 큰 정수를 표현해야 할 때에는 어떻게 해야 할까요?

 

BigInteger 클래스는 이름 그대로 큰 정수값을 표현할 때 사용됩니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.math.BigInteger;
 
public class BigIntegerTest {
    public static void main(String[] args) {
        System.out.println("정수의 최대값 : " + Long.MAX_VALUE);
        System.out.println("정수의 최소값 : " + Long.MIN_VALUE);
        System.out.println();
 
        BigInteger bigValue1 = new BigInteger("10000000000000000000");
        BigInteger bigValue2 = new BigInteger("-9999999999999999999");
 
        BigInteger addResult = bigValue1.add(bigValue2);
        BigInteger mulRuslt = bigValue1.multiply(bigValue2);
        
        System.out.println("BigInteger 더하기 : " + addResult);
        System.out.println("BigInteger 곱하기 : " + mulRuslt);
    }
}
cs

 

<결과>

정수의 최대값 : 9223372036854775807
정수의 최소값 : -9223372036854775808

 

BigInteger 더하기 : 1
BigInteger 곱하기 : -99999999999999999990000000000000000000 

 

 

우선 정수의 최대값과 최소값을 확인하기 위해서 long 타입의 범위를 출력해 보았습니다.

 

그리고 이 범위를 벗어나는 아주 큰 정수들을 BigInteger 클래스를 사용하여 선언했습니다.

BigInteger  는 BigDecimal 과 마찬가지로 math 패키지에 포함되어 있으며, 일반적인 클래스를 사용하듯이 이용할 수 있습니다.

 

 

여기서 한가지 주의할 점은 생성자의 매개변수를 문자형으로 전달해야 된다는 것입니다.

문자형을 사용하는 이유는 아주 간단합니다. 숫자형으로 표현할 수 있는 범위를 벗어난 값이기 때문입니다!

BigInteger 클래스를 사용하는 이유이기도 하죠.

 

 

연산이 수행된 결과값이 보이시나요?

BigInteger 클래스에는 add, multiply 이외에 다양한 메소드들이 제공되고 있으니 정수 연산에 유용하게 이용할 수 있습니다.

 

 

 

'IT > Java' 카테고리의 다른 글

자바 랜덤함수(Java Random)  (0) 2015.03.24
자바 문자열 비교 - equals(), equalsIgnoreCase()  (0) 2015.03.17
BigDecimal 클래스 - 오차없이 실수 표현하기  (0) 2015.03.13
자바 버전 확인  (0) 2015.03.09
자바 환경변수 설정  (0) 2015.03.02

Posted by maze1008
,

실수형 데이터 타입을(float, double) 사용하여 값을 표현할 때에는 오차에 유의해야 합니다.

 

일반적인 프로그래밍에서 큰 영향이 없는 미묘한 차이일지라도 금융권 등에서는 치명적이 오류를 발생시키기 때문입니다.

 

자바의 BigDecimal 클래스을 사용하면 이러한 실수 표현의 문제점을 해결할 수 있습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.math.BigDecimal;
 
public class BigDecimalTest {
 
    public static void main(String[] args) {
        // test #1
        double value1 = 1.6;
        double value2 = 0.1;
        System.out.println("실수의 더하기 : " + (value1 + value2));
        System.out.println("실수의 곱하기 : " + (value1 * value2));
        System.out.println();
        
        // test #2
        BigDecimal value3 = new BigDecimal(1.6);
        BigDecimal value4 = new BigDecimal(0.1);
        System.out.println("BigDecimal 더하기 : " + value3.add(value4));    
        System.out.println("BigDecimal 곱하기 : " + value3.multiply(value4));    
        System.out.println();
        
        // test #3
        BigDecimal value5 = new BigDecimal("1.6");
        BigDecimal value6 = new BigDecimal("0.1");
        System.out.println("BigDecimal 더하기 : " + value5.add(value6));    
        System.out.println("BigDecimal 곱하기 : " + value5.multiply(value6));    
    }
}
cs

 

<결과>

실수의 더하기 : 1.7000000000000002
실수의 곱하기 : 0.16000000000000003

 

BigDecimal 더하기 : 1.7000000000000000943689570931383059360086917877197265625
BigDecimal 곱하기 : 0.1600000000000000177635683940025051398161724525855033823303533017413935457540219431393779814243316650390625

 

BigDecimal 더하기 : 1.7
BigDecimal 곱하기 : 0.16

 

 

1번째 테스트(test #1) 에서는 double 형 변수를 2개 생성하여 연산을 수행해 보았습니다.

예상된 결과는 더하기 : 1.7  곱하기 : 0.16 이지만 출력된 결과는 오차값을 표현하고 있습니다.

 

 

오차 문제를 해결하기 위해서 2번째 테스트(test #2) 에서 BigDecimal 클래스를 사용했습니다.

BigDecimal 은 math 패키지에 포함되어 있으며, 일반적인 클래스를 사용하듯이 new 키워드를 이용하여 객체를 생성한 후 add, multiply 메소드로 연산을 진행했습니다.

 

 

그런데 오차범위가 줄어들지 않고 오히려 더 상세하게 표현되고 있습니다!

BigDecimal 의 객체를 생성할 때 실수형 매개변수(1.6 과 0.1)가 전달되면서 이미 오차가 발생하기 때문에 더욱 심각한 연산 결과가 발생하게 되는 것입니다.

 

 

마지막으로 3번째 테스트(test #3) 에서는  BigDecimal 의 객체를 생성할 때 문자형 매개변수("1.6" 과 "0.1")가 전달되도록 작성해 보았습니다.

 

드디어 오차없이 정확한 결과값 1.7 과 0.16 이 출력되었습니다.

BigDecimal 클래스에는 add, multiply 이외에도 다양한 메소드가 제공되고 있으니 참고하시기 바랍니다.

 

 

 

Posted by maze1008
,

CSV 파일 변환

IT/ETC 2015. 3. 12. 10:00

CSV 는  Comma Separated Value 의 약자입니다.

 

쉼표를(Comma , ) 를 기준으로 데이터를 구분해서 저장 및 사용하겠다는 의미입니다.

 

데이터1,데이터2,데이터3,.....

데이터11,데이터12,데이터13,....

 

 

CSV 파일은 프로그래머(개발자)들이 configuration 등 프로그램 동작시 필요한 간단한 값들을 저장하기도 하고

 

일정한 기준으로 약속된 value 들을 기록하는데 사용하기도 합니다.

 

꽤 많이 그리고 자주 이용되는 데이터 저장 형식이라는 의미입니다.

 

그렇다면 이렇게 빈번히 사용되는 CSV 파일은 어떻게 작성해야 할까요?

 

한땀한땀 쉼표(,) 를 찍어가며 직접 입력하기엔 실수가 일어날 확율이 아주 높습니다.

 

그래서 오늘은 손쉽게 CSV 파일은 만들고 사용할수 있는 CSV 파일 변환 방법에 대해 소개해 드리겠습니다.

 

 

 

1. CSV 파일 - 엑셀(Excel) 을 이용하세요.

 

우리가 문서 작업시 자주 사용하는 엑셀(Excel) 은 CSV 파일을 만들고 수정하는 데도 유용합니다.

 

엑셀(Excel) 을 실행 시켜주세요.

 

 

기본적으로 새로운 엑셀 파일에는 3개의 시트가 포함되어 있습니다. (Sheet1, Sheet2, Sheet3)

이 때 Sheet1 하나만을 남겨두기 위해서 Sheet2, Sheet3 를 삭제합니다.

(Sheet2 이름에 마우스를 올려놓고 > 오른쪽 클릭 > 삭제 를 선택하면 간단하게 삭제하실 수 있습니다.)

 

엑셀(Excel) 을 사용하여 CSV 파일을 만들때는 파일에 반드시 1개의 Sheet 만 존재해야 합니다.

그렇지 않으면 저장시 에러 다이얼로그가 발생합니다.

 

Sheet1 의 이름은 변경해 주셔도 되는데요.

특별한 의미를 갖지 않으므로 어떤 이름으로 설정해 주셔도 무방합니다. (저는 수정하지 않았습니다.)

 

 

 

데이터를 입력해 볼까요?

 

1행이 CSV 의 첫번째 줄이 되고 A 컬럼에 입력된 값이 첫 번째 값, B 컬럼에 입력된 값이 두 번째 값으로... 이렇게 순서대로 구성됩니다.

 

A1,B1,C1,....

A2,B2,C2,....

 

제가 엑셀에 입력한 값들은 연두색 Tooltip 으로 표시된 것처럼 CSV 파일에 나타나게 됩니다.

 

데이터는 영어, 숫자, 한글 모두 입력 가능합니다.

 

 

 

입력이 모두 끝나셨다면 좌측 상단에 Office 단추 > 다른 이름으로 저장을 클릭합니다.

 

 

 

가장 중요한 순간 입니다!!

파일 형식을 선택하면 중간 아래쪽으로 CSV (쉼표로 분리) 라는 항목이 존재합니다.

앞에서 입력했던 정보들을 CSV 파일 형태로 저장하겠다는 의미입니다.

CSV (쉼표로 분리) 항목을 선택해 주세요.

 

 

 

파일 이름 입력 > 저장 버튼을 클릭합니다.

 

 

 

CSV (쉼표로 분리) 형식을 선택할 경우 완벽히 지원되지 않는 기능이 있을 수 있다는 경고 다이얼로그가 나타나는데요. 단순 경고 문구로 특별한 의미를 가지고 있지 않습니다. 예(Y) 버튼을 클릭합니다.

 

 

 

우리가 작성한 CSV 파일입니다.

기존에 사용하던 엑셀과는 다른 파일 모양을 가지고 있습니다.

 

 

메모장을 실행한 후 저장한 CSV 파일을 메모장으로 드래그해서 열어줍니다.

(메모장은 시작메뉴 > 모든 프로그램 > 보조프로그램 > 메모장 을 선택하면 실행할 수 있습니다.)

 

 

 

처음 우리가 작성하려 했던 CSV 파일 형태로 기록된 상태입니다.

데이터들이 쉼표(,) 를 기준으로 구분되어 있습니다.

잘 작성된 것 같죠!

 

 

 

메모장을 종료하고 다시 CSV 파일(CSVTest 파일)을 더블 클릭하면

엑셀에서 파일을 작성했던 형태로 Cell 에 데이터들이 채워져 보여집니다.

 

물론 처음부터 메모장을 열어 집중해서 쉼표(,) 를 넣어가면 CSV 파일을 만들 수 도 있습니다.

하지만 앞에서 말씀드린 것 처럼 데이터를 입력할 때 시각적인 분리가 잘 되지 않아 실수할 확율이 매우 높습니다. 실수는 곧 프로그램의 버그 더 나아가 치명적인 에러를 발생시키게 되겠죠.

 

그래서 대부분의 경우 엑셀을 이용하여 데이터를 입력 / 수정하고

메모장을 열어 복사해서 사용하거나 저장된 파일을 그대로 이용하게 됩니다.

 

 

 

2. 쉼표(,) 외에 다른 구분자 지정하기

 

그런데 말입니다.

 

Comma Separated Value 라는 이름에도 불구하고 가끔은 쉼표(,) 가 아닌 다른 구분자를 사용해야 할 때가 있습니다. (주로 데이터내에 쉼표(,) 가 포함된 경우 입니다.)

 

구분자는 어떻게 변경해야 할까요?

 

 

시작 메뉴를 클릭하여 제어판을 선택합니다.

 

 

 

시계, 언어 및 국가별 옵션 아래에 위치한

키보드 또는 기타 입력 방법 변경을 클릭합니다.

 

 

 

추가 설정 버튼을 클릭합니다.

 

 

 

목록 구분 기호(L) 에 쉼표(,) 가 기본값으로 입력되어 있습니다.

이 부분에 구분자로 사용하고 싶은 기호를 입력합니다.

저는 | 로 수정했습니다.

 

 

 

1번에서 진행했던 대로 엑셀(Excel) 파일을 다시 저장하고 나면

데이터들이 | 를 기준으로 구분되어 있는 것을 확인 할 수 있습니다.

Posted by maze1008
,