위키주소 : ', ', ", '에 관한..

Typing quotation marks on a computer keyboard

How to type quotation marks (and apostrophes) on a computer keyboard

JUnit 이 무엇인가?


간단하게 테스트를 위한 클래스를 만들고 테스트 하는거..


메소드 몇개 정리하고 갑니다.


Methods

 - assertEquals(A, B)

   A와 B가 일치하는지를 조사한다. A, B에는 Object, int, float, long, char, boolean등 모든 자료형이 들어갈 수 있다. 단 A, B의 타입은 언제나 같아야만 한다.

 - assertTrue(K)

   K가 참인지를 조사한다.

   K는 boolean형태의 값이어야 한다.

 - assertFalse(K)

   K가 거짓인지를 조사한다. assertTrue와 반대

   K는 boolean형태의 값이어야 한다.

 - assertNotNull(Object A)

   A가 Null이 아닌지를 확인한다.

   Null이라면 assertionFailedError가 발생

 - assertNull(Object A)

   A가 Null인지를 확인한다.

   Null이 아니라면 assertionFailedError가 발생

 - assertSame(Object A, Object B)

   A와 B가 같은 객체인지를 조사한다.



물론 목객체 라든지 다른 방법들도 있는데 작은단위에서 널리 활용될 메소드들이다.


버퍼 같은것도 많이 사용되는듯 하고..


퍼트려도 될런진 몰르지만.. 배포는 아니니.. 오래 되었지만 참고할 만한 동영상 링크도 걸어 보겠..;;


http://xper.org/LineReaderTdd/

동영상이다 걍 보쟈..


(문제가 된다면 삭제 하겠습니다.)


글고 메소드나 사용법등이 자세히 되어있는 블로그다

http://netrance.blog.me/110169530575

자바 가상 머신(영어: Java Virtual MachineJVM)은 자바 바이트코드를 실행할 수 있는 주체이다. 일반적으로 인터프리터나 JIT 컴파일 방식으로 다른 컴퓨터 위에서 바이트코드를 실행할 수 있도록 구현되나 자바 프로세서처럼 하드웨어와 소프트웨어를 혼합해 구현하는 경우도 있다. (이론적으로는 100% 하드웨어 구현도 가능하나 비효율적이다) 자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다. 따라서 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장한다.


위키 

http://ko.wikipedia.org/




JDK, JRE, JVM

출처: http://arabiannight.tistory.com/302

JDK : Java Development Kit

말 그대로 자바 개발을 위한 도구(Kit) 입니다. 자바 컴파일러(Javac), 자바가상머신(JVM), 각종 Java Libary 등을 포함하고 있어서 자바 개발을 위한 필수 도구(Kit) 입니다. JDK는 JRE를 포함하고 있습니다. (JDK 설치시 JRE도 설치됨)


JRE : Java Run Environment

역시 말 그대로 자바 실행 환경 이라고 보면 됩니다. Java 파일 실행을 위한 환경이며 JVM이 실행되도록 도와 주는 역할을 합니다. 만약 자바 개발이 필요없고 실행만을 원한다면 JRE만 설치하고 Java 파일을 실행하면 됩니다.


JVM : Java Virtual Machine

사용자가 Java 파일을 생성한 후 JDK의 컴파일을 거쳐 바이트코드(.class)가 되어 JVM을 거치면 컴퓨터가 사용할 수 있는 기계언어로 변경해주는 역할을 합니다.


자바 실행 흐름 : 사용자 Java 코드 생성 -> JDK 컴파일 (.class 파일 생성) ->  JVM -> 실행



JVM이란?


출처 : http://romenz.tistory.com/2


 Java Virtual Machine 를 줄인 것으로 자바를 실행하기 위한 기계라고 할 수 있다.

가상머신은 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어로, 마찬가지로 가상컴퓨터라는 것은 컴퓨터 안에 소프트웨어로 구성된 가상의 컴퓨터 즉 컴퓨터 속에 컴퓨터라고 생각하면 된다.


자바로 작성된 것은 모두 JVM을 통해 실행되기 때문에, 자바를 코딩하고 실행하기 위해서는 컴퓨터기기에 반드시 JVM이 설치되어 있어야 한다.


일반 윈도우나 리눅스 응용프로그램들은 OS를 통해 하드웨어나 기타 제어를 하게 되는데 Java의 경우 가상머신(JVM)을 한 번 더 거치기 때문에 실행시 속도가 약간 느리다는 단점이 있다. 그러나 향상된 컴파일러 기술이 적용되어 속도의 격차는 현재도 줄어들고 있다.


JVM은 OS에 맞는 것이 필요하기 때문에 자신의 컴퓨터에 깔려있는 OS에 맞는 JVM을 설치해야 한다.


Java 가 뭔지 궁금해 시작한 포스팅


책을 봐도 읽히지가 않고

고3 이 된듯한 착각을 했다.


분명 그림도 많은데.. 문제가 뭘까? 


이유가 있었다 그림을 못읽은것;; 


UML 클래스 다이어그램 기본상식 ( C# )

 ↑링크를 눌러서 보고 옵시다!!


위 제목의 글이 나에겐 도움이 되었다.


뭔지 본적 있다. 하지만 자세히 보려 한적이 없었다.

ERD 비스므리 하다 생각했다.


맞는것도 같다.


여튼 참 많은 도움이 되었다 UML 클래스 다이어그램 +_+


근데 기억을 해야 하느니라.. 


위에 링크도 멋지지만 아래 링크들도 한번 보고 갑시다!!

UML 기본 표기법  http://hyeonstorage.tistory.com/trackback/13

UML Diagram의 종류 http://hyeonstorage.tistory.com/trackback/14

UML 모델링 사례  http://hyeonstorage.tistory.com/trackback/15



./configure --with-apxs2=/usr/sbin/apxs --with-mysql --enable-exif --with-gd --with-ttf --with-gettext --enable-sigchild --enable-mbstring --disable-debug --enable-safe-mode --enable-sockets --enable-mod-charset --enable-calendar --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf --enable-inline-optimization --enable-bcmath --with-zlib --with-freetype-dir=/usr/include/freetype2/freetype/

들어가는말.


난 전산 개발자로써 장장 7년을 일했고, 8년차를 채워가고 있다.

그 와중에 이러저러한 이직, 툴 변경 으로 인해 많은 혼란을 겪어왔다.


이제는 Java 개발자다.

해봤다. 경험해 봤다. 실제 그렇다.


하지만 모르겠다. 

따로 공부한건 기억도 안나는 학교에서가 마지막인걸로 기억한다.


다시 공부하는 맘으로

문법부터 다시 적어 볼 요량으로 이것저것 적어본다.

물론 나도 모르니 인터넷 뒤져서 남에꺼도 훔쳐오고 그럴꺼다.


늦었다 생각 되면 늦은거라지만,

지금 시작하지 않으면 나중엔 더 늦은 시작일 테니까....


들어가는말 끝.







오늘의 주제. Java 가 뭐에요?

구글을 안쓰고 네이버를 쓰면 웬지 뭔가 그... 

애플왕국의 지배를 받는 (미안 애플빠들~ 펌하 아님!! 갠적 견해일뿐;; ) 그런 느낌인가 싶어 구글링함

걍 구글링 이라기도 민망한 구글 검색창에 타이핑 해 봄 java 라고



딴데서 얻기보단 JAVA라고 처음뜬 실제 java 사이트를 들어가 보쟈고 링크를 눌러봄.


헐. 내가 궁금해 하던게 딱 있었음.



http://www.java.com/ko/download/whatis_java.jsp


하지만 지들자랑임.. 

내가 정작 원했던 그런 대답은 뭐지? 


난 이제 나름 웹 개발자 이며, 자바 개발자 라고도 불리우니까

java 개발 에 대해 더 알아야 하지 않을까?

http://www.java.com/ko/about/


꼬리에 꼬리를 물고.. 화면캡쳐도 지겹고...

여튼 결론으론 오라클사에서 자바를 잡아먹었고, 그로인해

오라클이라고 붙은 자바에서 개발자를 위한 사이트를 열어 주셨다. 이전부터 있었는진 난 모른다.

여튼 주소..

http://www.oracle.com/technetwork/java/index.html


참조 하시길 바란다.

제길 영어울렁증 ㅠㅠ 다 영어다. 꼭 반드시 맘이 평온할때 천천히 보리라...

후우.....



많이들 java의 역사로 시작들 많이 하시던데..

걍 창시자 정도만 알고 가쟈.. 제임스 고슬링 아즈씨

 

자바 프로그램을 최초 개발하여 `자바의 아버지`라 불리며 세계적으로 가장 영향력 있는 프로그래머 가운데 한 사람 자바 이외에도 다중 프로세서용 유닉스와 컴파일러 / 메일 시스템 / 데이터 인식 시스템 등을 개발하였다.

 

개발자에게는 마이크로 소프트의 빌 게이츠만큼이나 유명하지만 정통 개발자 특유의 은둔 덕후 성향 때문에 세상에 널리 알려지지는 않았다.

 

그는 자바 커피를 하루에도 10잔 이상 마시는 자바 예찬론자로도 유명함 자바(Java)라는 프로그램 명칭은 인도네시아에서 유명한 커피 재배지 Java에서 따왔다고 한다


소녀시대 덕후라는 소문도 있다;; (걍 닮은 사람이라고 하드라;;)



결론.


제임스 아저씨 고마워요~

덕분에 공부할께 한트럭이네요..


덕분에 먹고도 살아요.


캐나다에서 은둔하며사는 가장 영향력 있는 프로그래머들 가운데 한 사람인 제임스 고슬링 아즈씨(자바 애비) + 몇몇 개발자 가  처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발했지만 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있는 객체 지향적 프로그래밍 언어이며, 썬 마이크로시스템즈에서 무료로 제공하고 있다.


+ 그래서 그게 뭔데?? 라는 의문을 남기며.


이번 포스팅 끝!!






import socket


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('', 8080)) # ip, port

s.listen(1)


conn, addr = s.accept()

print 'Connected by', addr

while 1:

    data = conn.recv(1024)

    if not data: break

    conn.send(data)

conn.close()



위처럼 하고 다른서버에서 telnet ip port 로 연결 시도해본다.

$ ./configure --with-apxs2=/usr/sbin/apxs --with-mysql --enable-exif --with-gd --with-ttf --with-gettext --enable-sigchild --enable-mbstring --disable-debug --enable-safe-mode --enable-sockets --enable-mod-charset --enable-calendar --enable-sysvsem=yes --enable-sysvshm=yes --enable-ftp --enable-magic-quotes --enable-gd-native-ttf --enable-inline-optimization --enable-bcmath --with-zlib --with-config-file-path=/etc/php.ini


$ make


$ make install

다음과 같은 자바스크립트를 실행하면 된다.


console.log(setInterval(function(){var xml=new XMLHttpRequest();xml.open("GET",document.URL,false);xml.send();},10000));


ie의 경우 javascript: 를 앞에 추가해서 주소창에 실행해도 된다.

http://docs.python.org/2/c-api/init.html#threads

발번역.. 죄송

 

The Python interpreter is not fully thread-safe.

Python 인터프리터는 완전히 쓰레드에 안전하지 않다.

 

In order to support multi-threaded Python programs, there's a global lock, called the global interpreter lock or GIL, that must be held by the current thread before it can safely access Python objects.

멀티 쓰레드 Python 프로그램을 지원하기 위해서 전역 인터프리터 잠금(GIL)이라고 불리는 전역 잠금(global lock)이 있다. 이것은 현재 쓰레드가 실행되기 전에 열어야 한다. 안전하기 파이썬 객체 접근할 수 있게 해준다.

 

 

Without the lock, even the simplest operations could cause problems in a multi-threaded program:

이 잠금이 없으면 멀티 쓰레드 프로그램에서 단순한 명령에서 조차 문제를 발생할 수 있다:

 

for example, when two threads simultaneously increment the reference count of the same object, the reference count could end up being incremented only once instead of twice.

예를 들어 두 쓰레드가 동시에 같은 객체에 레퍼런스 카운트를 증가할 때, 레퍼런스 카운트 마지막에는 두번 대신 오직 한번만 증가될 수 있다.

 

 

Therefore, the rule exists that only the thread that has acquired the GIL may operate on Python objects or call Python/C API functions.

그러므로, Python 객체들이나 Python/C API 함수들은 GIL을 획득해야 한다는 룰이 존재한다.

 

In order to emulate concurrency of execution, the interpreter regularly tries to switch threads (see sys.setcheckinterval()).

동시 실행을 하기 위해서는, 인터프레터는 정기적으로 쓰레드 변경을 시도한다. (sys.setcheckinterval() 를 확인해라).

 

The lock is also released around potentially blocking I/O operations like reading or writing a file, so that other Python threads can run in the meantime.

다른 Python 쓰레드들이 그동안 실행되기 위해서 파일의 읽기 또는 쓰기와 같은 잠재적 I/O 명령들 블로킹 잠금은 또한 해제된다.

 

The Python interpreter keeps some thread-specific bookkeeping information inside a data structure called PyThreadState.

Python 인터프리터는 PyThreadState 라고 불리는 데이터 구조 내에 어떤 특정 쓰레트 부기 정보를 유지한다.

 

There's also one global variable pointing to the current PyThreadState: it can be retrieved using PyThreadState_Get().

 

거기에도 또한 현재 PyThreadState를 가리키는 하나의 전역 변수가 있다. 그것은 PyThreadState_Get()를 통해서 확인할 수 있다.

Javadoc 생성시 다음과 같이 인코딩 에러가 발생할 경우에는..

: unmappable character for encoding MS949

 

다음과 같이 "-encoding UTF-8" 옵션을 설정하면 된다. J

 


참고로 나는 다음과 같이 3가지 옵션을 모두 사용한다.

-encoding UTF-8 -docencoding UTF-8 -charset UTF-8


http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#options


아래 내용을 참고해보자.

http://earthcode.com/blog/2006/01/css_floats_programmatically.html

 

요약하면,

IE에서는 styleFloat, 나머지 cssFloat 를 설정해야 한다.

float로 쓸 수 없는 이유는 예약어와 겹치기 때문이다.

 

Programmatically setting the "float" CSS property in Javascript

IE and Firefox have different ways of doing this, and neither one is what you would expect.

 

In IE, it's myDiv.style.styleFloat="left";

In Firefox, it's myDiv.style.cssFloat="left";

 

Here's a full code block, with primitive browser detection included. This will work in both IE and Firefox:

 

if (document.all) { // very basic browser detection

var sFloat="styleFloat"; //ie

} else {

var sFloat="cssFloat"; //firefox

}

var oMyDiv=document.getElementById("myId");oMyDiv.style[sFloat]="left";

 

http://www.emailonacid.com/blog/details/C13/12_fixes_for_the_image_spacing_in_html_emails

CoffeeScript는 자바스크립트를 변환 컴파일하는 프로그래밍 언어이다. Ruby, Python, Haskell에서 영감을 얻은 짧으면서도 가독성이 높은 syntactic sugar와 의미 매칭과 같은 정교한 기능이 추가되어 있다. CoffeeScript는 런타임 성능에 영향없이 약 1/3보다 적은 코드의 작성으로 자바스크립트로 컴파일 된다. 2011년 3원 16일 부터 CoffeeScript는 GitHub에서 가장 많이 주목된 프로젝트가 되었으며 현재까지도 GitHub에서 가장 많이 개발되고 있다.

 

http://jashkenas.github.io/coffee-script/

 

CoffeeScript is a programming language that transcompiles to JavaScript. The language adds syntactic sugar inspired by Ruby, Python and Haskell to enhance JavaScript's brevity and readability, adding sophisticated features like list comprehension and pattern matching. CoffeeScript compiles predictably to JavaScript and programs can be written with less code, typically 1/3 fewer lines, with no effect on runtime performance. Since March 16, 2011, CoffeeScript has been on GitHub's list of most-watched projects, and as of today is the eleventh most popular language on GitHub.

 

Sample 보기: http://coffeescript.org/

 

encodeURI() / decodeURI()

최소한의 문자만 인코딩합니다.

; / ? : @ & = + $ , - _ . ! ~ * ' ( ) #

이런 문자는 인코딩하지 않습니다.

http:// ... 등은 그대로 나옵니다.

 

 

encodeURIComponent() / decodeURIComponent()

알파벳과 숫자 Alphanumeric Characters 외의, 대부분의 문자를 모두 인코딩합니다.

http:// ... 가 http%3A%2F%2F 로 됩니다.

 

escape() / unescape()

예전부터 있던 오래된 함수입니다. encodeURI() 와 encodeURIComponent() 의 중간 정도의 범위로 문자를 인코딩합니다.

 

http://mwultong.blogspot.com/2006/10/encodeuri-encodeuricomponent-escape.html

 

또 업무 때문에 찾았다.

 

폰트 설치 여부를 판단하고 폰트가 없으면 설치하게 하기위하여 였다.

 

jquery.font.js 가 필요하다.

 

jquery.font.js

를 적절한 위치에 놓는다.

jsp 화면단에서 스크립트를 참조하는 경로를 적어 놓았다.

<script src="/js/jquery.font.js"></script>

 

출력용 OCR 폰트 였다.

한글을 설치하면 OCR폰트가 기본적으로 있다 하지만 내게 필요한건 OCR-B-10 폰트 였으므로.

설치..

사용법은 간단하다.

 

$.font.test('OCR-B-10 BT') 의 결과값 true / false 로 설치 여부를 알 수 있다.

그게 다다.

 

확인후 없으면 설치파일 경로를 링크해서 다운로드 받도록 하면 된다.

 

OCR폰트는 저작권이 있는 폰트로 알아서 찾아내시길 바란다.

 

서버를 이용하지 않고 JavaScript만을 이용해서 화면 캡쳐하는 방법.

http://html2canvas.hertzen.com/

 

 

Java에서 unsigned short 가 없나 보구나? 업무상 간단한 알고리즘 만들어 보려다가 안되서 찾아보니 정말 인 것 같다. 아.. 어렵다. 언어도 어렵고 알고리즘도 어려워 ㅜㅜ

 

http://en.wikipedia.org/wiki/Integer_(computer_science)#Short_integer

 

event.stopPropagation()

DOM 트리로 이벤트가 버블링되는것을 차단한다. 다른 부모 헨들러가 이벤트를 받지 못하다록 한다. (Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event.)

 

event.preventDefault()

이게 호출되면 기본 이벤트가 발생하지 않는다. (If this method is called, the default action of the event will not be triggered.)

 

즉, stopPropagation과 preventDefault를 호출하므로써 이벤터 재정의 또는 기본 이벤트 동작을 차단할 수 있다.

http://api.jquery.com/event.stopPropagation/

 

spring 으로 개발하다보면 인코딩을 설정해줄 필요가 있는데 이때 각각 모든 뷰에 설정할 수도 있지만 web.xml에 filter를 등록함으로써 한번에 할 수도 있다.



  springCharacterEncodingFilter
  org.springframework.web.filter.CharacterEncodingFilter
  
    encoding
    UTF-8
  
  
    forceEncoding
    true
  



  springCharacterEncodingFilter
  /*

위는 spring 설정이고 tomcat에서도 할 수 있는듯한데 나는 잘 안되더라. 위에 springframework 의 filter-class대시 org.apache.catalina.filters.SetCharacterEncodingFilter 를 쓰면 톰켓에서 헨들링하는 것 같다.

이클립스에서 톰캣으로 개발할 때 js, css처럼 정적 파일을 수정할 때도 꽤 오래 기다리거나 이를 못 참을 경우 서버를 재 시작 해야 할 때가 있다. 아마 톰켓 디렉터리로 publish 하기 때문인 것 같다. (틀린다면 댓글 남겨주세요) 하지만 이를 빠르게 하는 방법이 있다. 즉 톰켓 폴더로 publish 하지 않고 바로 workspace를 참조하여 실행하는 방법이다. 아래 화면처럼 따라해보자.

 

Tomcat 더블 클릭

 

Serve modules without publishing 옵션 체크

요즘 대다수 사이트에서 이벤트 처리를 hash 테그를 url에서 변화시켜 변화된 상태를 확인해서 처리하고 있는 것을 어렵지 않게 볼 수 있다. 아마 요즘 트랜드 같다. 이렇게 트랜드가 된 이유는 아마 브라우저에서 이 hash chage 이벤트 처리가 추가되었기 때문도 있을 것이다. 보통 해시태그가 변화하면 본디 책갈피 용도로 쓰던 태그이기 때문에 page reload가 발생하지 않아 이벤트 처리가 곤란했는데 요즘은 구버전 브라우저를 제외하고 거의 모든 브라우저에서 이 이벤트 처리가 가능하다.


지원 브라우저

  • Google Chrome 5
  • Safari 5
  • Opera 10.60
  • Firefox 3.6
  • Internet Explorer 8

if ("onhashchange" in window) { // event supported?
    window.onhashchange = function () {
        hashChanged(window.location.hash);
    }
}
else { // event not supported:
    var storedHash = window.location.hash;
    window.setInterval(function () {
        if (window.location.hash != storedHash) {
            storedHash = window.location.hash;
            hashChanged(storedHash);
        }
    }, 100);
}

http://stackoverflow.com/questions/2161906/handle-url-anchor-change-event-in-js

 

한 페이지짜리 레퍼런스 문서 링크

http://static.springsource.org/spring-security/site/docs/3.2.x/reference/springsecurity-single.html


구 버전을 보고 싶으면...

http://static.springsource.org/spring-security/site/docs/


자바.. 참 재미있으면서 골치아프다. 설정의 묘미란.. -_-



Spring에서 interface를 만들어야 하는 이유가 뭘까? 일주일 전 쯤 처음 spring 을 접할때 이런 의문을 가졌었고 그 후 일주일 후 개발을 진행해 가면서 이 의문이 풀리게 되었다. 토비의 책에도 나와있는 내용이지만 실제 경험을 통해 느끼게 되었다. 그 이유는 다음 3가지이다.


  1. 변하지 않는 소프트웨어는 없다.
  2. 객체지향 개념에 더 맞는다.
  3. 테스트를 위해서 이다.


이 중 마지막 테스트를 위해서 만든 다는 것이 진리인 것 같다. 보통 Junit 을 이용해 테스트 케이스를 만드는데 이 경우 약한 결합의 구현이 없다면 유연한 테스트가 불가능하다. 하지만 이 경우도 아니고 절대 never never 변할지 않을 부분이라면 성능 저하를 가져오면서 까지 concrete 하지 않은 구현체를 만들지 않을 필요는 없다고 생각한다. 하지만 테스트는 왠만해서는 필수다. 테스트 없는 개발은... 너무 눈가리고 뛰어가는 것과 같다고나 할까? 어디로 가고있는지 언제 넘어질 지 모르는 것 같다.


 

이클립스가 갈 수록 느려지는 것 같다. 아니면 내 pc성능이 시대에 뒤떨어지던가 둘 중에 하나이다. 그래서 이클립스 성능을 향상시킬 수 있는 간단한 팁을 하나 알려드려 고자 한다. 이건 사실 이클립스의 성능향상이라기 보다는 많은 리소스를 사용하지 않도록 제한해서 속도가 느려지는 것을 미연에 방지하는 팁이다. 설정 창에 가서 아래와 같이 옵션을 설정해보자.

 

 

Close editors automatically 옵션을 설정하고 나는 4로 했는데 이처럼 해놓으면 창이 열리는 개수를 제한한 수 있다. 만약 4개 이상 열리면 자동으로 이전 창이 닫히고 4개로 유지된다. 프로젝트를 탐색하다 보면 나도 모르는 사이에 창이 많이 열려서 이클립스가 느려지는 경우가 자주 있었고 그럴 때마다 나는 close all로 닫곤 했는데 상당히 귀찮았다. 이 옵션으로 좀 더 편하게 개발할 수 있게 된 것 같다. 이클립스 참 좋다.. 설정이 너무 많아서.. ㅎㅎ (그래도 느리면 다른 튜닝을~ J)

 

그래 난 이게 궁금했다... 

**라고 쓰는 설정이 뭔지, 찾아보니 *는 원 뎁스만을 의미하고 **는 다중 뎁스까지 포괄한다.

 

예를들면 아래와 같다.

<patternset id="non.test.sources">

  <include name="**/*.java"/>

</patternset>


http://bytes.com/topic/java/answers/18590-double

'**' will match multiple directory levels, '*' only one level.

 

최근에 jQuery가 릴리즈 되었다. 1.9의 마이너 버전 1.9.1까지 2월 4일에 릴리즈 된 것 같다. 미리 주시하지 못해 정확한 날짜에 확인하지 못했다. (ㅜㅜ) 아무튼 지금이라도 봐서 다행이다. 릴리즈 블로그 내용은 다음 링크에서 확인할 수 있다. 1.9에서 상당히 많은 부분이 변경되었기에 확인이 필요하다. 1.9는 1월 15일에 릴리즈 되었다. 앞으로 더 관심 가져야겠다.

 

1.9 Release

http://blog.jquery.com/2013/01/15/jquery-1-9-final-jquery-2-0-beta-migrate-final-released/

 

1.9.1 Release

http://blog.jquery.com/2013/02/04/jquery-1-9-1-released/

 

1.9.1 버전의 script 포함 내용은 아래와 같이 하면 된다. 기존 파일명에서 버전명만 바꾸면 된다.

 

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<script src="http://code.jquery.com/jquery-migrate-1.1.0.js"></script>

 

 

google cdn이나 MS cdn 호스팅에도 추가된 것을 볼 수 있었다. (MS에서는 example에서는 확인 안되지만 파일에 버전 명을 바꾸면 사용은 가능하다.)

https://developers.google.com/speed/libraries/devguide#jquery

http://www.asp.net/ajaxlibrary/cdn.ashx#Using_jQuery_from_the_CDN_18

 

1.9에서 변경된 점 중에 눈에 띄는 점은

  • css에서 multi getter 지원
    var dims = $("#box").css([ "width", "height", "backgroundColor" ]);
    // { width: "10px", height: "20px", backgroundColor: "#D00DAD" }

 

  • CSS3의 지원이 추가
  • 그리고 충격적인 live, die 메소드가 삭제되었다는 점 이 눈에 띈다.
    자세한 리스트는 아래 목록을 참고하자.

 

 

http://jquery.com/upgrade-guide/1.9/

 

Changes of Note in jQuery 1.9

  • .toggle(function, function, ... ) removed
  • jQuery.browser() removed
  • .live() removed
  • .die() removed
  • jQuery.sub() removed
  • .add()
  • .addBack( selector ) replaces .andSelf()
  • .after(), .before(), and .replaceWith() with disconnected nodes
  • .appendTo, .insertBefore, .insertAfter, and .replaceAll
  • AJAX events should be attached to document
  • Checkbox/radio state in a .trigger()ed "click" event
  • Order of triggered "focus" events
  • jQuery(htmlString) versus jQuery(selectorString)
  • Events not fired by the .data() method; names with periods
  • Ordering of disconnected nodes within a jQuery set
  • Loading and running scripts inside HTML content
  • .attr() versus .prop()
  • $("input").attr("type", newValue) in oldIE
  • "hover" pseudo-event
  • .selector property on jQuery objects
  • jQuery.attr()
  • jQuery.ajax returning a JSON result of an empty string
  • jQuery.proxy() context
  • .data("events")
  • Removed properties of the Event object
  • Undocumented arguments of API methods
  • Other undocumented properties and methods

 

 

Junit에서 Exception이 발생할 경우 성공으로 확인하고 싶을 때는 다음과 같이 excepted를 추가해주면 된다.

 

@Test(expected=UnsupportedOperationException.class)

public void renameFolder() {

    this.obj.renameFolder("", "");

}

 

파란막대 좋아~ ^^*

 

assertThat(result, is(true));

 

위 코드에서 이클립스에서 Junit에서 지원하는 버전을 추가했는데도 assertThat구문에 x표가 뜰 때가 있다. 해결방법은 다음 두 import를 수동으로 추가하면 된다.

 

import static org.junit.Assert.*;

import static org.hamcrest.CoreMatchers.*;

 

ctrl+shift+o 로 하면 지워진다. 왜 그런지.. 잘 모르겠다.


http://whiteship.tistory.com/1739 참고

 

혹시나 해서 검색해봤는데 역시 자바도 decompile이 아주 쉽게 되는군, .net 과 마찬가지로 VM을 가지고 있기 때문에 컴파일 된 코드는 중간 언어인 byte코드로 변환될 테고 그 바이트 코드는 하나씩 해석하면 역시 원래 코드로 변환도 가능하다. Java Decompiler 프로그램은 http://java.decompiler.free.fr/?q=jdgui 여기서 받을 수 있었다. 물론 이것 말고도 많은 프로그램들이 있다. .class 파일이나 .jar 파일을 이 프로그램에서 로드 하면 다음과 같이 decompile 된 코드를 볼 수 있다. 소스를 참고해 보고 싶은 컴파일 된 결과물이 있을 때 아주 유용할 것 같다. 윈두우, MAC, 리눅스 모두 지원하고 무료로 이용할 수 있다.

 

http://java.decompiler.free.fr

 

Internet Explorer 9 통해 기존 사이트에 사이트 고정 기능 추가하기

학습 목표

실습에서는 Windows Internet Explorer 9 새로운 사이트 고정(Pinned Site) 기능에 대해 알아보, 기존 사이트를 보강하는 가지 기본 단계를 살펴보기로 합니다. 실습의 학습 목표는 다음과 같습니다.

·         프로그램적으로 시작 메뉴에 사이트 추가하기

·         점프리스트 작업 정의하기

·         점프리스트 카테고리를 정의하고 항목 추가하기

·         오버레이 아이콘 표시하기

·         비디오 미리보기에서 미리보기 표시줄 버튼 표시하기

 

개요

Internet Explorer 9 개발자에게 사이트와 Windows 7 데스크톱을 손쉽게 통합할 있는 방법을 제공합니다. 사이트 고정(Pinned Site)이라 일컫는 기능은 최종 사용자가 Windows 7 작업 표시줄, 데스크톱 또는 시작 메뉴에 사이트를 고정할 있는 메커니즘을 제공합니다. 기능을 통해 사용자는 Windows 응용프로그램을 이용할 때와 비슷한 방식으로 자신이 즐겨 찾는 사이트로 바로 이동할 있습니다.

기능은 기존 컨텐츠를 수정하지 않고도 모든 사이트에서 이용할 있게 해줍니다. 사이트 고정 기능을 실행하면 해당 사이트의 즐겨찾기 아이콘을 이용해 사이트에 브랜딩된 Internet Explorer 격리 인스턴스(isolated instance) 자동적으로 시작됩니다. 따라서 사용자는 사이트에서 확장된 모든 탭과 창을 하나의 그룹으로 관리할 있습니다.

사이트 개발자는 새로운 마크업 API 이용해 사이트 고정 경험을 더욱 향상시킬 있습니다. 개발자는 작업, 점프리스트 아이콘 기반 알림 기능을 제공함으로써 웹사이트에서 Windows 응용프로그램에 제공되는 것과 유사한 Windows 통합 기능을 활용할 있도록 지원합니다.

필수 구성 요소

실습을 위해서는 다음 구성 요소가 필요합니다.

·         개발 방식에 대한 실무 지식

·         정상적으로 작동하는 서버(ASP 필요 없음)

 

매뉴얼 관련 정보

매뉴얼 버전: 1.0
마지막 업데이트 날짜:
10/13/2010
테스트 제품: Internet Explorer 9 베타

자세한 정보

다음 사이트를 방문하시면 매뉴얼에서 다루고 있는 다양한 주제에 관해 자세히 알아보실 있습니다.

개발자 가이드:
http://msdn.microsoft.com/en-us/ie/ff468705.aspx

릴리스 정보:
http://ie.microsoft.com/testdrive/info/ReleaseNotes/Default.html

시나리오

실습에서는 사이트와 Windows 데스크톱 통합 사용자 경험을 향상시키도록 기존 사이트를 수정해 보게 니다.

실습의 예상 소요 시간

60

유용한 힌트:

Internet Explorer 9에는 F12 개발자 도구가 내장되어 있으며 디버깅, 중단점(break point) 다양한 기능을 지원합니다. 따라서 문제가 발생하는 경우, 이러한 유용한 도구를 이용해 문제의 원인을 파악할 있습니다.

 

HOL_Lighting_up_Windows_with_Internet_Explorer9-kor_0201-1.docx

 

+ Recent posts