http://alexgorbatchev.com/SyntaxHighlighter 사이트에서 syntaxhighlighter_3.0.83.zip 파일을 다운로드 받고, 압축을 해제합니다. index.html 파일을 실행해서 소스를 참고하면 좋습니다.


관리자 화면에서 HTML/CSS 메뉴 선택합니다. 


이 4줄은 다운로드받은 패키지의 index.html 소스를 참고했습니다.

<script type="text/javascript" src="./images/shCore.js"></script>

<script type="text/javascript" src="./images/shBrushJScript.js"></script>

<link type="text/css" rel="stylesheet" href="./images/shCoreDefault.css">

<script type="text/javascript">SyntaxHighlighter.all();</script>


Hello SyntaxHighlighter

function helloSyntaxHighlighter()
{
	return "hi!";
}


저장을 누르고, 파일업로드 탭을 눌러서 해당 파일을 업로드합니다.



shCore.js는 scripts 폴더와 src에 있습니다. 업로드할 파일은 scripts/shCore.js 입니다.




가장 많이 사용하는 ArrayList와 HashMap의 근본입니다.



다이어그램 읽기

삼각형 실선은 상속(extends), 삼각형 점선은 구현(implements), 그리고 화살표는 사용(has)입니다.

SortedMap<K,V>는 Map<K,V>를 상속하고,

public interface SortedMap<K,V> extends Map<K,V> 


HashMap<K,V>는 Map<K,V>를 구현했습니다.

public class HashMap<K,V>

    extends AbstractMap<K,V>

    implements Map<K,V>, Cloneable, Serializable


HashMap<K,V>는 Set<E>를 필드로 사용하고 있습니다.

    private transient Set<Map.Entry<K,V>> entrySet = null;



UML class diagram은 ObjectAid 이클립스 플러그인을 사용했습니다.

http://www.objectaid.com/

site-url : http://www.objectaid.net/update


간단 플러그인 사용법

ctrl+N > class 필터 > Class Diagram 선택

model.ucls 파일 생성

클래스를 끌어서 ucls 파일에 놓으면 생성

show attributes > none

show operations > none

Layout Diagram 정렬


Add > Java Classifier : 클래스명으로 추가


아웃라인 기능




objectaid 플러그인에서 Sequence Diagram은 라이선스가 있어야 됩니다. Class Diagram만 무료로 사용할 수 있습니다.





IntelliJ IDEA에서는 클래스 선택하고 ctrl+alt+U 로 UML을 바로 볼 수 있네요. 무료버전인 Community Edition에서도 가능합니다.

이클립스처럼 따로 플러그인을 설치하지 않아도 되는 편한 기능입니다.

http://www.jetbrains.com/idea/features/uml_class_diagram.html


이클립스에서 sysout 입력하고 ctrl+space를 치면 System.out.println(""); 코드가 자동으로 완성됩니다.

날짜 시간을 기록하는 dtlog 라는 것을 만들어 보겠습니다.


Quick Access(ctrl+3)에서 templates로 검색해서 Templates - Java/Editor를 선택합니다. 


sysout도 이곳에 설정되어 있습니다. New... 버튼을 클릭합니다.



dtlog를 입력하고 Pattern:에 ${date} ${time} 을 입력합니다.


이제 코드에서 dtlog라고 입력하고 ctrl+space를 입력하면 현재 날짜와 시간이 기록됩니다.



더 많은 옵션들이 스택오버플로우에서 공유되고 있습니다.

http://stackoverflow.com/questions/1028858/useful-eclipse-java-code-templates

따옴표를 다시 바꾸려면 귀찮은 작업인데, 옵션을 이제야 찾았습니다.


프로그래밍에는 곧은 따옴표가 좋습니다.




http://www.slideshare.net/yearinreview/kenu/qPYAAA


더 열심히 활동하고 싶은 자극을 주는 통계페이지입니다.




아직은 JDK8의 정식 버전이 나오지 않아서 이 화면을 보기 쉽지 않습니다.



eclipse 개발중인 다른 버전을 다운로드 받아서 JDK8을 테스트할 수 있습니다.

efxclipse는 e(fx)clipse 즉, JavaFX 개발용 패키지들이 포함된 이클립스입니다. 그래서 용량이 350MB 이상입니다.

http://downloads.efxclipse.org/eclipse-java8/


http://docs.oracle.com/javase/tutorial/java/javaOO/examples/RosterTest.java
http://docs.oracle.com/javase/tutorial/java/javaOO/examples/Person.java
두 소스는 JDK8 샘플입니다.
설명은 http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html 주소의 문서를 참고하세요.



Lambda Expression 이라고 얘기합니다. jdk8에 포함된 기능입니다.

인터페이스의 메소드가 하나일 때, 이것에 대한 인터페이스를 만들고, 익명 클래스로 만들어서 처리하는 것을 단순화 시켰습니다.

http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

예제가 잘 되어 있습니다.


최종 결과는 다음과 같은 코드입니다. C++에서 보던 -> 기호 때문에 당황스럽군요.

printPersons( roster, (Person p) -> p.getGender() == Person.Sex.MALE && p.getAge() >= 18 && p.getAge() <= 25 

    );


람다 표현식을 사용하기 전의 코드는 다음과 같이 익명 클래스로 되어 있습니다.

printPersons(
    roster,
    new CheckPerson() {
        public boolean test(Person p) {
            return p.getGender() == Person.Sex.MALE
                && p.getAge() >= 18
                && p.getAge() <= 25;
        }
    } 

    );


interface CheckPerson {
    boolean test(Person p);
}


확실히 interface 파일 하나 줄이고, 코드를 1/3로 줄이는 효과가 있습니다.

람다 표현식을 사용하려면 아직 개발자 미리보기 버전을 설치해야 합니다.

http://jdk8.java.net



갑자기 이 노래가 생각납니다.

Lambada




죽은 시인의 사회에서 로빈 윌리암스의 대사를 그대로 iPad Air 광고에 사용했네요. 

"We don’t read and write poetry because it’s cute. We read and write poetry, because we are members of the human race. And the human race is filled with passion. And medicine, law, business, engineering, these are noble pursuits and necessary to sustain life. But poetry, beauty, romance, love, these are what we stay alive for.

To quote from Whitman: ‘O me, O life of the questions of these recurring. Of the endless trains of the faithless. Of cities filled with the foolish. What good amid these, O me, O life? Answer: That you are here. That life exists and identity. That the powerful play goes on, and you may contribute a verse. That the powerful play goes on, and you may contribute a verse.’

What will your verse be?"

from: http://mashable.com/2014/01/12/apple-commercial-uses-poetry-to-profile-the-ipad-as-a-creative-tool/



1:18에 나오는 James Walson(닥터 하우스의 친구 윌슨) 모습도 보입니다.


어쨌든 애플이 이 대사를 활용해서 광고를 예술적으로 만들어버렸습니다.


워니퍼님의 글이 확실히 도움이 되었습니다.

이클립스가 workspace 중심이라면 인텔리J는 프로젝트 중심입니다. 이클립스의 워크스페이스는 프로젝트 그룹입니다.


습관이란 게 무서운 것이더군요. 이클립스에서 JUnit 테스트 케이스는 자동으로 프로젝트에 라이브러리를 추가해줍니다. IntelliJ 매뉴얼을 보니, "우리는 자동으로 테스트케이스 라이브러리를 추가하지 않습니다."라고 되어 있네요.


JAR, 즉 junit.jar를 추가하는 방법입니다.


hellojunit이라는 새로운 프로젝트를 만들었습니다.


Preferences...에서 찾을 수 없습니다.


File > Project Preferences... 메뉴가 따로 있습니다.


Project Settings 섹션에 Modules를 선택하고, Dependencies 탭을 선택합니다.


Jars or directories를 통해서 연결하면 됩니다.


다음 버전은 뱅킹에 보이스 피싱(성대모사)가 유행하겠군요.
"당.황.하셨어~요~"


전화인증 할 테니,

ActiveX는 걷어 냅시다.


지금 메일 받고 (****) 올립니다.



+ Recent posts