책을 한권 읽다가 발견한 내용이 있어 글을 적어 본다. 참고로 읽고 있는 책은 "자바 병렬 프로그래밍 - 멀티코어를 100% 활용하는" 이다. ( 아직 출간 된지 1년이 안된책이라 -_- 할인이 별로 안된다. 쩝... ) 아직은 읽고 있는 중이라, 다음에 다 읽으면 그때 정리해야지. ㅋ.

  자바 병렬 프로그래밍 - 멀티코어를 100% 활용하는  더그 리 외 지음, 강철구 옮김


각설하고 이 책을 읽다 보면, 멀티 스레드에서 버그가 많이 발생할 수 있다는 이야기를 하면서, FindBugs라는 프로그램에 대해서 설명이 아주 짧게 나온다. 이 FindBugs라는 프로그램은 Java 소스에서 잠재적으로 버그가 일어날만 한 부분에 경고를 보여 준다.

직접 프로그램을 설치 할 수도 있지만, 이클립스 플러그인도 있다. 이클립스 플러그인을 설치하는 법을 알아 보고, 어떤식으로 사용되는지 확인해 보도록 하자.

우선 FindBugs( http://findbugs.sourceforge.net/ )의 홈페이지에 접근해서 Download 해 보자.

사용자 삽입 이미지


좌측메뉴에서 Downloads( http://findbugs.sourceforge.net/downloads.html ) 를 클릭하게 되면
standard version과 eclipse plugin을 받을 수 있는 링크를 제공하고 있다. 우리는 이클립스 플러그인을 사용해 볼것인데, 이는 굳이 직접 다운로드 받지 않고, 이클립스에서 플러그인 업데이트를 통해서 설치 하도록 하자.

1. 이클립스를 띄운다.
2. Help -> Software Updates
3. Add Site에 주소를 입력한다. ( http://findbugs.cs.umd.edu/eclipse )
4. FindBugs 플러그인을 선택/설치 한다. ( 설치하는데 속도가 느려서 시간이 좀 걸린다. )

사용자 삽입 이미지

5. 설치한 뒤에는 이클립스를 재시작 한다고 한다.
설치 되었으니, 이제 프로그램을 간단하게 하나 짜 보도록 하자.
간단하게 아래의 코드정도면 어떨까?
( 이 코드에는 과연 어디가 문제가 될만한지 직접 찾아 보는것도 좋다. )

  1. public class BugClass {  
  2.     public static int ZERO = 0;  
  3.       
  4.     int i;  
  5.     int value;  
  6.       
  7.     public int getValue() {  
  8.         return value;  
  9.     }  
  10.       
  11.     public synchronized int setValue(int value) {  
  12.         this.value = value;  
  13.         return value;  
  14.     }  
  15.       
  16.     @Deprecated 
  17.     public boolean getTrue() {  
  18.         return true;  
  19.     }  
  20.       
  21.       
  22.     public static void main(String[] args) {  
  23.         BugClass bc = new BugClass();  
  24.         bc.setValue(bc.ZERO);  
  25.         bc.setValue(10);  
  26.           
  27.     }  
  28. }  

위의 코드는 어떤 문제가 존재할 수 있을까? 이제 FindBugs를 이용해서 이 코드에 잠재적으로 문제를 발생할 수 있는 부분이 어떤것인지 확인해 보자. FindBugs로 해당 프로젝트에서 마우스 오른버튼을 누르고, 아래쪽에 보이는 Find Bugs -> Find Bugs를 누르면 동작한다.

사용자 삽입 이미지


자.. 이제 Find Bugs가 찾아낸 "잠재적인 문제점"을 확인해 보도록 하자. Find Bugs를 누르게 되면 소스코드의 좌측에 벌레가 등장한다. 여기에 마우스를 올리면 어떠한 문제가 있을 수 있는지를 알려 주게 된다.

사용자 삽입 이미지

마우스를 올려서 일일이 볼 수 없지 않은가? 이클립스 하단에 있는 View에서 Problem 탭을 선택하면 어떠한 문제가 생겼는지 바로 볼 수 있도록 만들어 두었다.

사용자 삽입 이미지

글자가 작아서 안 보일텐데, 어떠한 문제가 있냐고 적혀 있는지 대략 살펴보면 아래와 같다.

H V MS: BugClass.ZERO isn't final but should be : FindBugs Problem (High Priority)
ZERO가 final로 선언되지 않았다. (중요)

M M UG: BugClass.getValue() is unsynchronized, BugClass.setValue(int) is synchronized    : FindBugs Problem (Normal Priority)
setValue메소드는 synchronized로 되었으나, getValue메소드는 unsynchronized되어 있다. (보통)

M P UuF: Unused field: BugClass.i : FindBugs Problem (Normal Priority)
i라는 놈을 쓰지도 않는다. (보통)


조금 더 편하게 보라고 FindBugs 이클립스 플러그인은 Perspective를 제공해 준다.
이클립스 메뉴에서 Window -> Open Perspective -> Other... 을 선택하자.
사용자 삽입 이미지


그림에서 보다시피 Find Bugs Perspective가 생긴것을 볼 수 있다. 이를 선택하면 이클립스가 Find Bugs Perspective로 변신을 한다. 이 Find Bugs의 Perspective는 하단에 "Bugs Details"라는 탭이 생긴다. 이 탭에는 현재 문제가 되는곳이 왜 문제가 되며, 그것을 수정하기 위해서는 어떻게 해야 하는가를 설명해 두어서, 문제를 해결하는데 도움을 준다.
사용자 삽입 이미지

버그 없는 프로그램은 있을 수 없다. 그렇기 때문에 안전한 프로그래밍을 해야 한다.
그 안전한 프로그래밍을 도와 줄 수 있는 툴이 바로 FindBugs이다.


신고
  1. 나미 2009.01.14 16:56 신고

    훌륭한데...
    자바소스만 되는거지..? ㅡㅜ;
    요새 자바랑 거리먼 1人

    • Chan 2009.01.14 23:01 신고

      ㅋㅋ 내가 알기론~ ㅎㅎ 자바만~ ㅎㅎ

올만에 포스팅. ㅎㅎ

네이버 카페에는 치명적인 버그가 있다. ㅎㅎ




어제 난 NDS 로 기타를 쳐 볼 수 있는 게임인
M-06 에 대한 정보를 얻기 위해서 인터넷을 헤매고 다니고 있었다.

그러다가 포터블G ( http://cafe.naver.com/cafegba ) 라고 하는 네이버 카페를 찾았다.
( 이 카페는 포터블 게임기를 거의 다 다루고 있는 대표카페이다. )
( 포터블 게임기를 가지고 있는 분들은 가입해 두는게 도움이 될것이라 생각된다. )



오오오~ 포터블G 에는 각종 공략 게시판들이 있고, 그 중에서 M-06 에 대한 자료도 존재한다.
사용자 삽입 이미지


오우~ 이렇게 기쁠 수가. 나도 NDSL로 기타를 쳐 볼 수 있는것인가?



좋아 좋아~ 이제 가는거야~ 막 쳐보는거야~
Let it be를 쳐 볼 수 있다고? 좋다. 함 쳐 보자. 게시물을 클릭하자!! 야호!!!





! ! !


사용자 삽입 이미지



엥 -_- 역시나, 공짜는 없나 보다. -_- 가입해야 된단다 ㅠ_ㅠ
그래서 얼른 가입을 했다.
하지만! 여전히! 나는 좌절할 수 밖에 없었다.
등급이 낮아서 게시물을 볼 수 없다고 한다. ㅠ_ㅠ



그렇다고 여기서 포기할순 없다.
이상하게 -_- 권한이 없는 게시물이 봐지던 -_- 기억을.. 더듬 더듬...
이전에 어렴풋이 알고 있던것을 시험해 볼 시간이 드디어 온 것이다.






그럼 이제 실험을 시작하자.

내가 보고 싶은 게시물인
[NDS] M-06으로 노래를 부르자! #.2 <<연주의 기본 : Let it be>> 의 제목을..
주루룩 복사 하여서. 네이버 검색창에 쳐 넣어 보자.

사용자 삽입 이미지

( 캡춰된 이미지는 블로그에 넣기 좋도록 내가 적당히 편집했다.  ㅋㅋ ;; )




오오오~ 분명히 등급이 필요한 안되는 게시물인데도..검색 결과에 등장해 주신다.
그리고 -_- 맙소사 -_- 그 내용까지.. 검색 결과에 약간 보여준다. -_- 말이 돼???



그렇다면. 저 게시물을 클릭하면 어떻게 될까?
과감히 클릭!!

사용자 삽입 이미지



짜잔~

멋지지 않는가 -_-?
가입하지 않고도, 게시물을 볼 수 있고.
게시물 볼 권한이 되지 않는데도. 게시물을 볼 수 있다.

실험해 볼 수 있도록 아래에 두가지 링크를 제공한다.
1. 카페의 게시판에 직접 가서 클릭하는 링크
  - http://cafe.naver.com/ArticleRead.nhn?clubid=10098237&menuid=526&boardtype=L&page=&articleid=230901

2. 검색을 통해서 클릭하는 링크
  - http://cafe.naver.com/cafegba/230901
   ( 확인 결과 -_- 링크를 바로 쓰면 안된다. -_-; 네이버에서 검색을 한뒤에 클릭해 주어야 한다. )
   ( 리퍼러를 확인해 보고, 검색을 통해서 들어 왔는지 확인하나 보다. 컥 ;;; )

한번 클릭해서 ;; 직접 눈을 확인해 보기를 ^_^




정확하게 따지면 이것은 버그가 아니다.
네이버에서 글을 쓰면 "검색엔진에 노출" 시킬것인가를 정하는 체크 박스가 있기 때문이다.
( 글쓰기 창 아래에 잡다한것이 너무나 많아서 사람들이 잘 인식하고 사용하지는 않는다. )
( 사용자가 접근하는 UI 디자인 측면에서는 잡다한것이 좋지 않을테지만 )
(  그렇기 때문에 사용자가 오히려 이 체크 박스에 신경쓰지 않는것이 아닐까 ?)

사용자 삽입 이미지



하지만, 이 체크박스는 기본적으로는 켜져 있는 상태이고.

그러므로

게시판 자체의 권한이 없다고 하더라도 저것이 켜져 있다면 언제든지 검색을 통하여 정보를 획득할 수 있다는 것이다.

( 정말로 권한을 주고 싶지 않다면 "검색되는것을 불허"해야 한다. )
( 그리고 권한이 있는 게시판에서는, 저 체크 박스가 기본으로 꺼져 있는게 옳지 않은가? )



하여튼 위의 이유로 해서
이제 여러분은 네이버가 제공해 놓은 합벅적인 수단으로, 대부분의 카페 게시물을 볼 수 있게 된다.

몇개의 게시물을 보기 위해서 얼마나 많은 카페에 가입을 했던가?

이제는 더 이상 가입만 하고 활동하지 않는 카페들을 추가 하지 말자.
게시물을 보고 싶다면 당장 검색해 보도록 하자.
신고
  1. 유겸애비 2007.03.25 08:07 신고

    오호 좋은데요?

    • Chan 2007.03.27 19:22 신고

      ㅎㅎ; 글을 항상 공개로 하는 저로써는 꺼리낌도 없고. ㅋ

  2. 나미 2007.03.27 11:47 신고

    난 항상 이렇게 써왔다는.. ㅋㅋ
    첨에 그런적이 많았엉
    내가 검색한 내용을 다른사람한테도 보여줄려고
    링크를 알려주면

    "안들어가져.."

    이런반응..

    그럼 다시 알려주지
    네이버에 들어가서 'XXX'로 검색하면
    3번째에 나오는거야

    ㅋㅋ

  3. 가루 2007.04.14 09:23 신고

    저도 자주 경험했던거에요^^;; 버그라기보다는 이상한 정책;

    • Chan 2007.04.14 15:40 신고

      좀.. 웃기고.. 일관되지 않은 정책이죠. ㅋ

  4. 마리오 2008.07.14 14:05 신고

    후훗...... 이렇게 써왔지만 직접 캡춰해놓은것을 보니 약간 신기(?)한듯. 그런데 하나하나 일일이 검색하는게 전 귀찮더라구요...^^;

    • Chan 2008.07.14 22:51 신고

      제가 별짓(?)을 다 한거죠. ㅋ.
      그래도 꼭 봐야할 것이 있다면.. 그 정도 불편함이야..ㅎㅎ

  5. ㅗㅎ 2008.07.21 19:44 신고

    하지만 꼭되는건아니에요 네이버에 검색안되게하면 복사해도안나옴 ㅋㅋ

  6. montreal florist 2009.10.14 01:56 신고

    검색되서 보는 것은 되게 되어잇군여

    • Chan 2009.10.14 12:54 신고

      검색결과 갯수를 늘려 주기 위해서 넣은게 아닐까 생각되지요~ ^^

  7. 2009.11.07 23:10

    비밀댓글입니다

    • Chan 2009.11.14 02:11 신고

      검색 비허용은 볼 수 있는 방법이 없겠죠? ㅎ

  8. 누나 2009.11.27 02:30 신고

    근데 이거 다음도 그래..다음은 웃긴게 뭐냐면 카페 가입자중에서 정회원한테만 공개된거라도, 다음 검색창에서 쳐서 들어가면은 그거 볼 수가 있고, 정회원들만 공개되는 게시판글이라고 하더라도, 일단 그렇게 해서 들어가면은 목록누르기 하지말고ㅡ 그냥 그 아래글이나 윗글 클릭하면 거기에 있는 글들을 다 읽을 수 있어.. 일단 목록으로 나오면 그때부터는 못보고.

    • Chan 2009.11.30 12:53 신고

      옹~ 신기하네. ㅋㅋ. 보고 싶은글 있을때 한번 해 봐야 겠다. ㅎ

  9. kim 2010.09.27 12:19 신고

    거기있는 자료는 어찌 받을방법이 없는건가요?

    • 2010.09.28 03:04 신고

      자료를 받는 방법은 잘 모르겠네요 ^^

  10. geppetto64 2011.06.11 13:06 신고

    전 또 권한 상승이나 카페 뚫기류인줄 알았네요 ..

    • Chan 2011.06.15 22:11 신고

      ㅎㅎ 제목이 오해 할 만 하죠?ㅎㅎ ;;

  11. 난또뭐라고 2017.04.04 21:13 신고

    검색 허용 해놨으니까 보이는 거겠지. 제목이 뭔가 했네

+ Recent posts