2013년 7월 30일 화요일

Ubuntu Tweak 을 설치하다

Ubuntu 를 사용한지 1달이 넘었다. Windows 를 사용하면서 그닥 큰 불편은 없었지만 큰 불편이 없기에... 좀 불편해(?) 보고 싶었다 ㅋㅋㅋ 그래서 선택한 것은 Ubuntu 다. 어차피 인터넷뱅킹/쇼핑은 스마폰을 사용하면서부터 모바일뱅킹/모바일쇼핑으로 사용하고 있기 때문에 과감하게 Desktop 용으로 현재까지 최신버전인 13.04 를 설치해서 사용중에있다. 역시나 불편한점은 없다... 노트북 사양이 좀 딸려서 느리다는 것 빼고는 말이다...

어쨌든 매일 컴퓨터를 켤때마다 소프트웨어 업데이트 도구가 활성화되면서 친절하게 업데이트하라고 한다. 그런데 오늘은 업데이트를 하던중 아래와 같은 창이 뜨면서 조치하라고 한다.


구글링을 하면서 알게된 내용은 각종 Application 과 Kernel 을 업데이트하고 나면 업데이트시 사용한 리소스들이 삭제되지 않고 남게된다는 것이다. 이를 깔끔하게 알아서 청소해주는 것이 Ubuntu Tweak 이라는 Application 이다.

Ubuntu Tweak 은 아래 웹페이지에서 *.deb 확장자를 가진 파일을 Download 하여 설치할 수 있고, Terminal 에서 "sudo apt-get install ubuntu-tweak" 명령으로 설치가 가능하다고 한다.

http://ubuntu-tweak.com/


본인은 Source 를 내려받아 설치해보고자 둘러보니 Blog 가 있어 다음의 명령어를 한줄한줄 따라해가면서 설치를 완료하였다.
sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak
이미 설치했다면 아래 명령을 실행하면 된다고 한다.
sudo apt-get dist-upgrade
Ubuntu Tweak 을 실행하고 청소를 하기 위해서는 재니터 탭으로 이동해서 왼쪽에 있는 항목을 선택하면 알아서 불필요한 리소스를 찾아 오른쪽 화면에 정리해서 보여준다. 오른쪽에 있는 항목을 선택해서 하단의 지우기 버튼을 누르면 맨 위에 있는 설명처럼 지금 막 설치한 것과 같이 만들어준다.


지우기 수행이 완료된 화면이다... 깨알같은 재미를 준다... ㅎㅎㅎ


다음은 Ubuntu Tweak 을 실행하기 전의 /boot 디렉토리의 사용량과 실행 후의 사용량이다.
깔끔하게 청소를 잘 해줬다. 한동안 업데이트는 잘 될 것이고 같은 문제가 발생하면 Ubuntu Tweak 의 도움을 받으면 되겠다. Ubuntu 사용자에게는 필수 Application 인 듯 싶다...

[ 실행 전 사용량 ]
Filesystem                  1K-blocks     Used Available Use% Mounted on
/dev/sda1                      233191   200559     20191  91% /boot

[ 실행 후 사용량 ]
Filesystem                  1K-blocks     Used Available Use% Mounted on
/dev/sda1                      233191    43593    177157  20% /boot

오늘도 한 수 배우고 갑니다.

2013년 7월 24일 수요일

UML 에 대해서

디자인패턴을 공부함에 앞서 각 패턴에 사용된 클래스나 인스턴스의 관계를 표현하는 UML 에 대해 간단히 알아보고자 한다. UML 의 사양은 방대하지만 디자인패턴을 설명하기 위해 필요한 일부만 알면 되기에 정리한다.

1. UML(Unified Medeling Language)

UML 은 시스템을 시각화하거나 시스템의 사양이나 설계를 문서화하기 위한 표현 방법이다.
UML 에서 attribute(속성) 는 Java 를 예로 들어 Field(필드) 로, operation(조작) 은 Method(메소드) 로 이해하면 되겠다.

보다 자세히 알고 싶다면 다음 사이트를 참조하기 바란다.

http://www.omg.org/uml

2. 클래스 다이어그램(Class Diagram)

클래스 다이어그램은 클래스, 인스턴스, 인터페이스 등의 정적인 관계를 표한한 것이다.

2.1. 클래스와 계층관계



화살표는 클래스의 계층관계(하위클래스에서 상위클래스로 향하고 있다)를 표시하고 있고 이는 extends 를 의미한다.

클래스는 직사각형으로 표시하는데 3부분으로 나누어 다음의 순서로 표시한다.

  • 클래스의 이름
  • 필드의 이름
  • 메소드의 이름


여기서 부가 정보(접근제어나 메소드의 인수나 형태) 를 표시하거나 주목할 필요없는 항목을 생략하는 경우도 있다.

abstract 클래스나 메소드는 이탤릭체로, static 필드나 메소드는 밑줄을 사용한다.

2.2. 인터페이스와 구현



화살표는 인터페이스와 구현 클래스의 관계(구현 클래스에서 인터페이스로 향하고 있다)를 표시하고 있고, 이는 implements 를 의미한다. UML 에서 Java 의 인터페이스를 표현하는 경우 <<interface>> 라 쓴다.

2.3. 집약




위 그림과 같이 '갖고 있는' 관계를 집약(Aggregation) 이라 한다. 인스턴스를 갖고 있으면 개수에 관계없이 집약이다. 마름모꼴이 붙은 선은 집약을 표현한다. 
저자는 다음처럼 표현한다. "마름모꼴 모형의 접시 위에 물건이 놓여있다." 라고 생각하면 된다고...

2.4. 접근 제어



메소드나 필드의 이름 앞에 기호를 붙여 접근 제어를 표현한다.

  • + : public, 접근 가능
  • - : private, 클래스 외부로부터 접근 가능
  • # : protected, 동일 클래스/패키지 내 클래스, 하위 클래스
  • ~ : 동일 패키지 접근 가능

3. 클래스의 관계


클래스의 관계를 나타내기 위해 관련된 이름에 삼각형(▶) 을 붙여 표현한다.

4. 시퀀스 다이어그램(Sequence Diagram)

시퀀스 다이어그램은 프로그램이 작동할 때 어떤 메소드/추상 클래스가 어떤 순서로 실행되는가의 동적인 관계를 표현한다.

  • 클래스 다이어그램 : 시간에 의해 변하지 않는 것(정적인 관계)
  • 시퀀스 다이어그램 : 시간에 따라 변하는 것(동적인 관계)

4.1. 처리의 흐름과 오브젝트(객체) 간의 협조 동작



인스턴스는 다이어그램 위쪽에 있는 직사각형에 대응되고 직사각형 내부에 콜론(:) 뒤에 클래스명을 표기하고 밑줄이 그어져 있다. 인스턴스에 이름이 필요한 경우에는 콜론 앞에 이름을 표시해주면 된다. server:Server

인스턴스에서 아래 방향으로 뻗어있는 점선은 라이프 라인(생존선) 이라 한다. 시간은 아래 방향으로 흐른다. 라이프 라인은 인스턴스가 존재하는 동안만 존재하고 중간에 가늘고 긴 직사각형은 오브젝트(객체)가 활동 중인 것을 나타낸다.

앞이 검은 화살표의 실선은 메소드의 호출을 점선의 화살표는 메소드에서의 반환을 표시한다. 메소드의 리턴은 생략하는 경우도 있다.

라이프 라인을 따라가면서 위에서부터 순서대로 읽는다. 그리고 화살표가 있으면 따라가면서 인스턴스 간의 협조 동작을 확인한다.

본 글의 UML 다이어그램은 Eclipse 의 UML plugin(AmaterasUML) 으로 작성된 것으로 글의 설명과 표현이 다르다는 것을 알아두자.

AmaterasUML plugin 을 적용하여 Eclipse 에서 UML 을 작성하는 내용은 다음 포스팅으로 남기도록 한다...

2013년 7월 14일 일요일

Notepad++ 에서 "바꾸기" 기능 사용시 캐리지리턴 추가하기

UltraEdit 을 주로 사용해 온 터라 Notepad++ 을 사용해야만 하는 현 상황에서 바꾸기 기능 사용시 캐리지리턴 추가할 때 엄청 불편했다

구글링하면서 알게된 사실은 어이없게도 정말 간단했다

바꿀 단어에 "\r\n" 을 입력하고 바꾸기 하면 되더라

추가로... 파일에 "\n" 문자를 바꿔야 한다면 찾을 단어에 "\\n" 을 입력하면 해당 문자를 찾아서 원하는 문자로 변경할 수 있다

2013년 7월 10일 수요일

Java 세상에 빠져 삽질하는 일상에 대하여

Java 세계로 입문한지 4개월째 접어들고 있다.
그간 Java 책을 비롯하여 Java API 문서와 관련 유용한 웹페이지를 찾아보며 공부하면서 일을 진행하고 있다.

C 관련 일을 계속해와서 그런지 여전히 객체지향 개념을 쉽사리 받아들이지 못하고 있는데 지금은 처음보다는
많이 나아진 모습을 보인다는 자평이다.
그래도 많이 부족하여 퇴근 후 1시간 정도 학습을 하는데 역시 집에서는 잘 되지 않는다.

어찌됐던간에 매일 조금씩이나마 짬을 내어 투자하면 향상된 모습을 보이지 않을까하는 마음에 나름 열심히 하는 중이다.

팀에서든 프로젝트에서든 회사에서든 인정받는 사람이 되어야한다. 꼭 그래야한다!!!

2013년 7월 8일 월요일

App Store 5주년 인기 앱 무료 제공


앱스토어가 5주년 기념으로 인기 앱 10종을 무료로 제공한다 지금껏 한 번도 무료로 제공된 바 없었던 인기 게임 앱도 포함되었다고 한다

난... 일상을 기록할 수 있는 Day One 과 지친 나의 정신(?)을 달래줄 Tiny Wings 를 설치했다 

iOS 사용자들은 한 번쯤 들러서 필요한 것이 있는지 살펴보자

http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=031&aid=0000296227&sid1=001

다시 블로그를 시작하다...

블로그를 다시 시작하기 위해 블로그 서비스를 알아보고 난 결과 Blogger 가 나에게 잘 맞을 것 같다는 생각이 들어 선택하였다

유명하고 사용자가 많은 블로그 서비스가 많지만 글 쓰기 위해 이것 저것 할 것이 많고 꾸며야할 것들이 끝이 없어 귀찮더라. 그리고 현재 집에서 사용하는 PC를 리눅스로 바꾸면서 지원이 제대로 되지않는 서비스들은 모두 제외했더니 결국 Blogger 가 남게 되었다

Google 에서 서비스하는 거라 믿음이 가고 단순하고 꾸밀것도 없어 귀찮지 않게 블로깅을 할 수 있다는 점이 Blogger 를 선택한 가장 큰 이유이다 많은 시간을 들여 선택한 만큼 꾸준히 포스팅하면서 잘 채워가겠다!!!