'dw'에 해당되는 글 17건
- 디벨로퍼웍스 늦가을 행사 “개발자들의 수다” 행사를 하는군요. (2) 2008/11/05
- [dW] 다시 보는 자바스크립트의 역사 (2) 2008/10/28
- [dW] XML을 사용하는 좋은 습관 열가지 (4) 2008/09/24
- [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) 2008/09/23
- [dW] Groovy 유창하게 쓰기 (2) 2008/08/06
- [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) 2008/08/01
- [dW] Ajax 성능 도구 2008/08/01
- [dW] 아파치 메이븐 2 시작하기 (4) 2008/07/11
- [dW] REST 서비스 작성하기 (2) 2008/06/30
- [dW] Diagnosing Java code: Java generics without the pain, Part 1 2008/06/29
- [dW] Practically Groovy: Reduce code noise with Groovy 2008/06/24
- [dW] Learn 10 good XML usage habits (2) 2008/05/23
- [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) 2008/05/22
- [dW] 동적인 언어를 동적으로 호출하기, Part 1: 자바 스크립팅 API (한글) (2) 2008/04/30
- [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) 2008/04/20
- [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) 2008/03/23
- [dW] IBM developerWorks 리뷰 블로거 2.0 선발과 Mylyn 2.0 통합된 태스크 관리 & 자동화된 콘텍스트 관리 (8) 2008/02/23
디벨로퍼웍스 늦가을 행사 “개발자들의 수다” 행사를 하는군요.
Posted at 2008/11/05 21:58// Posted in 나만의 작업/dW그러나 전 잠시 주말에 지방에 다녀와야해서 참석은 못하겠지만, 수다 예고편을 보니 재미있겠는데요..
개발자들도 예쁜 옷 입고 앉아서 할려나?ㅎㅎㅎㅎㅎ 머 거기까진 아니겠지만, (밑의 그림을 보니..)
못가는 게 너무 아쉽습니다.ㅠㅠㅠ
참가 신청은 전자우편(dWkorea@kr.ibm.com)으로 해주시고, 신청시 이름, 소속, 연락처 등을 적어서 보내주시기 바랍니다.
장소 관계상 참가 신청은 선착순 200명으로 한정하니, 빠른 신청을 부탁드립니다.
"개발자들의 스타트업과 창업", "나는 어떤 일을 잘 할 수 있는가?", "오픈소스에 대한 나의 생각", "개발자들의 제태크", "개발자와의 연애, 불가능한가?", "여성개발자의 커리어패스", "개발자와 QA, 친해지길 바래" 등 이외에도 참가자들이 즉석에서 주제를 제안할 수 있습니다.

'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Dojo concepts for Java developers (0) | 2008/12/27 |
|---|---|
| [dW] IBM campus wizard 모집 (0) | 2008/12/22 |
| [dW] XML 구문을 분석할 때 발생하는 오류 처리하기 (2) | 2008/12/09 |
| [dW] 아파치 더비를 이용한 오프라인 Ajax (0) | 2008/11/13 |
| 디벨로퍼웍스 늦가을 행사 “개발자들의 수다” 행사를 하는군요. (2) | 2008/11/05 |
| [dW] 자바스크립트 개발 툴킷(JSDT) 살펴보기 (2) | 2008/10/30 |
| [dW] 자바로 만든 자바스크립트 엔진, 리노 (4) | 2008/10/29 |
| [dW] 다시 보는 자바스크립트의 역사 (2) | 2008/10/28 |
| [dW] RESTful한 웹 서비스 만들기 (2) | 2008/09/29 |
-
2008/11/06 23:54 [Edit/Del] [Reply]
sMiLo와~ 재미있겠네요. ^^-
2008/11/07 10:41 [Edit/Del]
버리야재밌을 것 같은데 못가서 너무 아쉬워요.ㅠ
-
[dW] 다시 보는 자바스크립트의 역사
Posted at 2008/10/28 11:23// Posted in 나만의 작업/dW하루종일 자바스크립트하고 노는데, 늘~ 알수없는 녀석이 어떻게 살아왔나 익히 들어와서 대충 알고있긴 하지만, 이렇게 정리되어 있어 한번 쭈욱 읽고나니 조금 더 묘한 느낌(지금 째즈음악을 듣고 있어서 그런가...)이 납니다.
역사 얘기도 나오고 자바스크립트의 특징도 살짝 나오고,, 지금은 비록 모습이 많이 없지만, 프로토타입 기반 객체지향 개념을 내세운 자바스크립트, 아이오(Io) 언어에 의해 계승되고 있다는 셀프(self)언어를 꺼내며 프로포타입 기반의 객체지향과 클래스 기반의 객체지향에 대해서도 살짝 나오고 있습니다.
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] 아파치 더비를 이용한 오프라인 Ajax (0) | 2008/11/13 |
|---|---|
| 디벨로퍼웍스 늦가을 행사 “개발자들의 수다” 행사를 하는군요. (2) | 2008/11/05 |
| [dW] 자바스크립트 개발 툴킷(JSDT) 살펴보기 (2) | 2008/10/30 |
| [dW] 자바로 만든 자바스크립트 엔진, 리노 (4) | 2008/10/29 |
| [dW] 다시 보는 자바스크립트의 역사 (2) | 2008/10/28 |
| [dW] RESTful한 웹 서비스 만들기 (2) | 2008/09/29 |
| [dW] XML을 사용하는 좋은 습관 열가지 (4) | 2008/09/24 |
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
[dW] XML을 사용하는 좋은 습관 열가지
Posted at 2008/09/24 10:34// Posted in 나만의 작업/dW어쩜 이런글은 지나다니다 많이 본 글인 것 같은데..
오늘도 역시 지나다가 한번 훑어보고 나중에 보기위해 포스팅합니다.
[dW] XML을 사용하는 좋은 습관 열가지
1. XML과 인코딩을 정의하라
<?xml version="1.0" encoding="us-ascii"?> 이런식으로 써주면 XML 구문분석기가 문서를 잘못 분석할 가능성을 줄일 수 있다.
2. DTD 또는 XSD를 사용하라
DTD를 정의하면 XML 문서 구조를 검증해 문제를 찾아내기 쉬워진다.
일부 XML 편집기는 자동 완성 기능에 DTD를 요구하는 반면, 스키마를 사용하면 실제 문서 구조를 설계하기가 훨씬 편리해진다. DTD를 사용할지 XSD를 사용할지 여부는 개발자가 처한 상황에 달렸다.
3. 항상 검증하라
JSLint는 자주 쓰는데 xmllint도 있군요. Validation
xmllint는 libxml2 툴킷에 포함되며, libxml2 툴킷은 리눅스, 유닉스(UNIX®), 맥 OS X에 기본적으로 들어있고, 윈도(Windows®) 플랫폼에서는 별도로 툴킷을 내려받아야 한다고 하군요.
4. 때로는 검증으로 부족하다
5. 엘리먼트냐 속성이냐
쓸 때 맨날 고민하는 것 중 하나.. 엘리먼트로 할까? 속성으로 할까?
의견이 분분한데 이 문서에선
"일반적으로는 파일 내부에서 엘리먼트를 사용해 정보를 기술하는 편이 낫다. 즉, 자료를 태그 사이에 정의하는 편이 낫다. 속성은 기술하고자 하는 자료에 조건을 추가할 때 사용해야 한다." 이렇다고 한다.
6. XPath를 활용해 정보를 찾자
7. 정보 인출을 위해 반드시 구문분석기를 사용할 필요는 없다
8. SAX가 DOM보다 나은 경우
문서가 크거나 문서를 변환할 생각이라면 SAX가 낫다.
반면, 구조를 저장하거나 기록하려는 경우에는 SAX가 적합하지 못하다. 또는 문서 전체를 이해한 다음에 문서에서 특정 정보를 추출하려는 경우에도 (예를 들어, 전체 문서에서 연락처 하나만 찾는 경우에도) 마찬가지다.
이 때는 XML 문서 전체를 읽어 자료 구조를 판독한 후 (필요에 따라) 엘리먼트를 출력하는 복잡한 처리 과정을 구현해야 한다.
9. DOM이 SAX보다 나은 경우
DOM은 XML 구조를 보존하고 이해하므로 응용 프로그램에서 구조 전체나 개별 엘리먼트를 쉽게 참조하고 조작할 수 있다.
반면, DOM은 파일을 스트림으로 처리하기 어렵다는 단점이 있다.
또한 DOM은 문서 전체를 메모리로 읽어들이므로 속력이 느려지고 메모리가 많이 필요하다. 반면, 문서 전체를 분석해 메모리에 보존하므로 장점도 존재한다.
10. 좋은 XML 편집기를 사용하라
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] 자바스크립트 개발 툴킷(JSDT) 살펴보기 (2) | 2008/10/30 |
|---|---|
| [dW] 자바로 만든 자바스크립트 엔진, 리노 (4) | 2008/10/29 |
| [dW] 다시 보는 자바스크립트의 역사 (2) | 2008/10/28 |
| [dW] RESTful한 웹 서비스 만들기 (2) | 2008/09/29 |
| [dW] XML을 사용하는 좋은 습관 열가지 (4) | 2008/09/24 |
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
-
2008/09/24 13:18 [Edit/Del] [Reply]버리님~ 스터디할 자료 말고 일상적인 이야기나 사진은 안올리시나요? ^^
블로그에서 그런거 본지 꽤 된거 같네요~ 바쁘셔서 그러신지~ ㅎㅎ-
2008/09/24 13:59 [Edit/Del]^^어느순간 저도 모르게 그랬네요..^^
일상적인 이야기는 궁금해하실분이 없으실 것 같아서(?)ㅎㅎ
요즘 맘편히 블로깅하는 시간이 없었던 것 같아요(놀러다니느라..ㅎㅎ)
이야기랑 사진 올려야죠~ ㅎㅎ 또 놀러오세요~ ㅎㅎ
-
-
seattle2008/09/24 23:00 [Edit/Del] [Reply]정말 간만에 아는 이야기 나와서 히죽대고 있습니다. ㅋㅋ
전 자알~ 지냅니다. 여기서 대답하기 -_-v
[dW] Ajax와 자바 개발을 간단하게 시리즈~
Posted at 2008/09/23 12:49// Posted in 나만의 작업/dWdW에서 3주동안 시리즈로 올라오는 글 중 웹개발에 도움되는 글이 있군요.
Ajax와 자바 개발을 간단하게, Part 1
JSP 태그 파일로 자바스크립트 코드 동적으로 생성하기 내용인데
HTML과 URL 인코딩 함수 - 유틸리티 함수가 유용하군요~
Ajax와 자바 개발을 간단하게, Part 2
JSTL과 JSP 태그 파일을 사용하여 커스터마이징이 가능한 웹 컴포넌트를 만들기
Ajax와 자바 개발을 간단하게, Part 3
자바스크립트와 JSP 태그 파일을 사용하여 사용자 친화적이고 웹 폼에 안전한 검증 기능을 구현하기
사용자가 웹 브라우저에 입력한 값을 자바스크립트로 검사하는 valid 같은 특정 기능에 얽매이지 않고 더 일반적인 함수를 만들 수 있는 코드가 있군요.
저같이 수련이 많이 필요한 사람에겐~ 배울게 많군요...
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] 자바로 만든 자바스크립트 엔진, 리노 (4) | 2008/10/29 |
|---|---|
| [dW] 다시 보는 자바스크립트의 역사 (2) | 2008/10/28 |
| [dW] RESTful한 웹 서비스 만들기 (2) | 2008/09/29 |
| [dW] XML을 사용하는 좋은 습관 열가지 (4) | 2008/09/24 |
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
-
-
2008/09/24 10:31 [Edit/Del]열공은... 매일 마음속 다짐으로^^
늘 변함없이 들러주시는 seattle님이 더 멋진데요!ㅋㅋ
잘 계시죠?ㅎㅎ 여기서 안부묻기..ㅎㅎ
-
-
[dW] Groovy 유창하게 쓰기
Posted at 2008/08/06 19:30// Posted in 나만의 작업/dW그루비 처음 공부할 때 이렇게 친절하게 설명한 동영상을 더 먼저 봤으면 더 이해가 쏙쏙 되었을텐데..
이렇게 동영상으로 읊어주시니(?) 더욱 좋은 것 같아요
근데 이 영상을 보고 제목처럼 유창하게 쓸 수 있을지는 모르겠다는 의문이 들긴하지만
그루비가 궁금하신 분은 잠깐 시간내어 보시는 거에 강추합니다.
Groovy 유창하게 쓰기
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] 다시 보는 자바스크립트의 역사 (2) | 2008/10/28 |
|---|---|
| [dW] RESTful한 웹 서비스 만들기 (2) | 2008/09/29 |
| [dW] XML을 사용하는 좋은 습관 열가지 (4) | 2008/09/24 |
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
[dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관
Posted at 2008/08/01 19:49// Posted in 나만의 작업/dW유닉스 팁: 열 가지 더 좋은 유닉스 습관
유닉스를 많이 사용해 본 적이 없어서 더구나 콘솔로 사용할 일도 많이 없었지만
최근엔 콘솔 사용하는것에 재미(?)를 느껴서 찾아보니 예전 대학교 1학년때 열심히 외우던
명령어가 어렴풋이 배웠던 기억이 나는 명령어도 있군요.
그냥 기록해놓으면 좋을 것 같아서.. 남겨 놓습니다..^^
익혀야 하는 열 가지 더 좋은 습관
- 파일 이름 완성 기능을 활용하자.(bash 쉘에선 TAB: 쉘마다 키가 다르다)
- 히스토리 확장 기능을 활용하자.(
!$명령은 명령어에 사용했던 마지막 인수를 반환한다. ) - 직전에 사용한 인수를 재사용하자.(
!:1연산자는 명령에서 사용한 인수를 반환한다. ) pushd와popd로 디렉터리를 탐색하자.- 대용량 파일을 탐색하자.
- 편집기 없이 임시 파일을 생성하자.(
cat명령어와>파일 재지정 연산자를 활용) curl명령행 유틸리티를 활용하자.(curl명령은 HTTP, HTTPS, FTP, FTPS, Gopher, DICT, TELNET, LDAP, FILE 프로토콜을 사용해서 서버에서 자료를 가져올 수 있다. )- 정규 표현식을 적극 활용하자.
- 현재 사용자가 누구인지 알아내자.(whoami)
awk로 자료를 처리하자.
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] RESTful한 웹 서비스 만들기 (2) | 2008/09/29 |
|---|---|
| [dW] XML을 사용하는 좋은 습관 열가지 (4) | 2008/09/24 |
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
[dW] Ajax 성능 도구
Posted at 2008/08/01 18:53// Posted in 나만의 작업/dWAjax 성능 도구
Ajax 성능에 향상을 주는 여러가지 도구와 부가 기능이 많이 있는데 저는 그 중 쓰는게 RAMBack과 YSlow밖에 없군요...
하나씩 써봐야 겠군요... 이렇게 정리해 주니 좋은 것 같습니다. ㅎㅎ
참고로 Load Time Analyzer이 firefox 3 버젼을 아직 지원안하는군요
오픈 소스 도구
- Apache Bench: 서버 부하를 흉내 낸다.
- Tsung: 다중 프로토콜 부하를 시험한다.
- Bonnie++: 디스크 I/O 문제 추적
- Wireshark: 네트워크 트래픽 분석
- Comet 서버 응용 프로그램 도구: 더 긴(long-lived) 연결, 더 높은 병행성, 더 낮은 지연, 더 낮은 서버 부하를 위해 사용된다.
파이어폭스 부가 기능
LiveHTTPHeaders(일 반적인 HTTP 트래픽을 확인)와 파이어버그(자원의 적재 시간을 측정)는 유용한 파이어폭스 부가 기능들이다. RAMBack(내부 캐시 지우기), Load Time Analyzer(적재 시간 분석기: 웹 페이지의 적재 시간을 측정), YSlow(웹 페이지 분석), iMacros for Firefox(웹 응용 프로그램 테스트), ColorBlind Ext(색맹 보조) 등 확장도 관심을 가질 만하다.
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] XML을 사용하는 좋은 습관 열가지 (4) | 2008/09/24 |
|---|---|
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
[dW] 아파치 메이븐 2 시작하기
Posted at 2008/07/11 19:55// Posted in 나만의 작업/dWmaven을 처음 쓸 때 dependency 관리에서 그만... 반하고 말았습니다. :)
이클립스에서 프로젝트에 필요한 library를 직접 걸어주고 또는 소스가 보고싶을때 매번 attach source를 해서 자주보는 소스는 다운을 직접 받아서 연결을 시켜줘야 하는데 maven을 쓰면 이 작업이 모두 xml파일(pom.xml)에 몇줄만 추가해주면 되니 너무 행복했지요. maven의 중앙 repository에서 알아서 jar파일을 다운로드하고 관련된 source도 받을 수 있게 할 수 있지요..
이건 뭐.. 빙산의 일부분이겠지요~ 그래도 이것만 되도 행복할 것 같은데, 그 외에도 많은 기능을 제공하지요.
뭐 아실만한 분은 다 아시겠지요~ ㅋㅋ
오늘 내부 세미나에서 maven을 주제로 세미나 하신 분이 계셨는데 그 계기로 좀 더 알아보려고 찾아보다가 dW에서 찾아보니 좋은 문서가 있군요~
아파치 메이븐 2 시작하기
여기에는 maven에 대한 기본 골격과 이클립스에서 메이븐 프로젝트를 생성하는 과정이 잘 나와 있습니다.
참고로 maven을 위한 이클립스 플러그인에는 m2eclipse와 q4eclipse가 있는데
q4e는 dependency 관계를 그림(?)으로로 보여준답니다.
얘가 어떤애를 참고 하고 어떤애가 다른애를 참고하고 있는 걸 눈에 이쁘게 보여주죠~
참고해 보세요.. maven 강추!~ ^^ 제가 아는건 이것밖에 없어서 슝슝=33
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Ajax와 자바 개발을 간단하게 시리즈~ (4) | 2008/09/23 |
|---|---|
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
-
seattle2008/07/12 00:00 [Edit/Del] [Reply]메이븐 정말 파워풀합니다... 라고 누가 그랬던거 같네요.. 이런거 보면 저도 참 어지간히 공부 안했구나 생각이 듭니다. 즐거운 주말 보내세요~
-
[dW] REST 서비스 작성하기
Posted at 2008/06/30 23:38// Posted in 나만의 작업/dW이 글은 REST(Representation State Transfer)와 Atom Publishing Protocol(APP)에 관한 개념이 잘 나와있습니다. 그리고 REST/APP 기반의 서비스 구현 방법도 예로 나와있지요~
본문 내용중에,
REST 원칙은 URI(Uniform Resource Identifiers)를 사용하여 주어진 자원 표현의 위치를 알아내고 접근한다. 표현 상태(representational state)라 알려진 자원 표현은 만들어질 수도, 찾아올 수도, 수정될 수도, 삭제될 수도 있다. 예를 들어 REST를 적용하여 문서를 발행해 독자들이 이 문서를 읽을 수 있게 할 수 있다. 언제든 문서를 발행할 때는 웹 URL을 보여줘야 한다. 그래야 독자들이 그 문서의 정보(표현 상태)에 접근할 수 있다. 문서를 읽는 사람은 URL만 알면 문서 정보를 읽을 수 있고 승인이 있다면 정보를 수정할 수 있다.
HTTP 기반 REST 시스템에서는
GET, PUT, POST, DELETE라는 표준 HTTP 메서드를 사용하여 자원의 표현 상태에 접근해야 한다.APP는 REST 개념과 기술을 사용하여 의미적으로 풍부한 콘텐츠 교환에 쓰이는 여러 메커니즘을 정형화기 위해 인기있는 아톰 배급 포맷(Atom Syndication Format) 위에 구축된다.
-
GET: 컬렉션이나 멤버 자원 표현을 찾아오는 데 쓰인다. -
POST: 새 멤버 자원을 만드는 데 쓰인다. -
PUT: 멤버 자원을 갱신하는 데 쓰인다. -
DELETE: 멤버 자원을 삭제하는 데 쓰인다.
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Groovy 유창하게 쓰기 (2) | 2008/08/06 |
|---|---|
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
[dW] Diagnosing Java code: Java generics without the pain, Part 1
Posted at 2008/06/29 21:31// Posted in 나만의 작업/dWJavaOne 2008 Wrap-up 세미나 발표자료에 올라온 "More Effective Java" 주제로 양수열님이 2nd Edition으로 출간된 Effective Java의 저자직강으로 JavaOne에서 열렸던 내용을 소개하는 부분으로 Java 5.0에 추가된 Generics, Enum types, Lazy initialization 관련 부분이 나와서 찾아보던 중
Generics에 관한 글로 2003년 글로 dW에 있군요.Part 1, Introduction to generic types and support features (February 2003)
Part 2, Extension limitations and implementation strategies (March 2003)
Part 3, Adding support for new operations (April 2003)
Part 4, Adding support for mixins through generic types (May 2003)
Java generics는 Java 5.0 이전에 Collection을 사용중에 어떤 타입을 add한다거나 put하고
다시 꺼낼때 타입 캐스팅을 필요로 하는데 이 과정에서 컴파일시에 나타나지 않았던 막상 값을 꺼내보니
이 타입이 아니다~ 런타임시의 에러를 컴파일시에 체크해주기 위해 나타났죠~
이 Java generics가 등장하면서 혁신(?)이다~ 라는 반응과 < >로 채워지는 코드의 복잡성을 증가시킨다~
라는 주장이 있는데 머... 적절하게 잘 쓰면 되겠죠..(어디..그게 쉽나..ㅠㅠ)
암튼, 코딩하면서 Java generics를 많이 쓰는데, 주로 List<String> , HashTable<String, Integer> 이런식으로 간단하게 쓰는데, Wildcard을 써서 더 유연하게 쓸 수 있도록 Foo<? extends T> 와 Foo<? super T> 이렇게도 쓰는군요..
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 (2) | 2008/08/01 |
|---|---|
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
[dW] Practically Groovy: Reduce code noise with Groovy
Posted at 2008/06/24 10:13// Posted in 나만의 작업/dW발견했는데 자바에서의 noise와 복잡성을 Groovy를 사용해서 제거하는 방법이 주로 나타나있습니다.
자바에서 JavaBean을 썼을때와 Groovy에서 Bean을 생성했을때의 코드차이.
Groovy에서도 Junit을 이용해 테스트 코드를 작성하는 법, polymorphism, Spring framework를 사용하는 방법들이 소개되어 있습니다.
Groovy에 대해 직접적인 언급보다는 기존 자바코드와 비교해서 또는 자바와 함께 쓸때의 장점등이 나타나있군요.
이래서 Groovy를 쓰면 편하겠다~ 라는 글.. ^^
Practically Groovy: Reduce code noise with Groovy
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Ajax 성능 도구 (0) | 2008/08/01 |
|---|---|
| [dW] 아파치 메이븐 2 시작하기 (4) | 2008/07/11 |
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
[dW] Learn 10 good XML usage habits
Posted at 2008/05/23 10:50// Posted in 나만의 작업/dW"XML을 사용할때 좋은 10가지 습관(관습)"이라는 글을 우연히 보았는데 당연한 것도 있고,
알지만 안쓰게 되는 점들도 있군요.Learn 10 good XML usage habits
- Define your XML and encoding
- Use a DTD or XSD
- Remember to validate
- Validation isn't always the answer
- XML structure versus attributes
- Use XPath to find information
- You don't always need a parser to extract information
- When to use SAX over DOM parsing
- When to DOM over SAX parsing
- Use a good XML editor
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] REST 서비스 작성하기 (2) | 2008/06/30 |
|---|---|
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
| [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) | 2008/03/23 |
[dW] XStream으로 자바 객체를 XML로 직렬화하기
Posted at 2008/05/22 00:24// Posted in 나만의 작업/dW오픈 소스 라이브러리를 써주는 센스!를 발휘하려면 어떤 라이브러리가 있는지 알아야겠지요.
전 dW에 번역글이 올라와서 알게 된 XStream이 있는데 정말 몇줄로 자바객체를 XML로 직렬화 시켜주는 군요.
[dW] XStream으로 자바 객체를 XML로 직렬화하기
이곳을 참조하면, 이클립스 프로젝트에서 클래스를 생성해서 단 몇줄로 자바객체를 XML로 직렬화하는 방법이 나와있습니다. 친절하게 이클립스의 스크린샷까지..
XStream 사이트에 가보면 제일 첫 화면에 보이는
"XStream" is a simple library to serialize objects to XML and back again.
정말 심플한 라이브러리일까? 한번 소스를 봐보면..Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));String xml = xstream.toXML(joe);
이렇게 대략 프로그래밍을 하면 XML결과는..(물론 Person 객체가 존재해야겠지요)
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
XStream을 사용하면 XML 객체를 직렬화 하는 방법도 있고, 역직렬화하는 방법(XML을 읽어서 프로그래밍하고싶을때 사용한다면..)도 있고
기본적으로 역직렬화를 하다보면 XStream방식으로 "com.thoughtworks.xstream." element 이름으로 나오는 경우가 있는데 이때는 alias를 줘서 원하는 방식으로 바꾸는 방법도 있고, 또 annotation방법으로 편하게 줄 수도 있군요.
대충 예제를 보니 사용하기도 쉬운것 같습니다. 직렬화할 일이 있다면 써보는게 좋을 것 같군요~
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Diagnosing Java code: Java generics without the pain, Part 1 (0) | 2008/06/29 |
|---|---|
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
| [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) | 2008/03/23 |
| [dW] 클래스 로딩 문제 분석하기 (4) | 2008/03/04 |
-
-
2008/05/23 10:46 [Edit/Del] [Reply]오호... 객체 내의 객체까지 직렬화가 가능하네요.
음... 근데 Serializable과 관계없다면 텍스트 정보(숫자/문자열)만 직렬화가 가능한 듯 하네요.
열공하시느라 바쁘신가보네요 ^^ -
[dW] 동적인 언어를 동적으로 호출하기, Part 1: 자바 스크립팅 API (한글)
Posted at 2008/04/30 10:35// Posted in 분류없음동적인 언어를 동적으로 호출하기, Part 1: 자바 스크립팅 API (한글)
이 문서에서 코드를 다운로드 받아서 실행해보면 쉽게 이해가 된다. 내부는 잘은..모르겠지만,
이 패키지는 다른 스크립트 언어로 작성된 것을 공통 API를 사용하여 호출될 수 있도록 하는 class와 interface를 제공하기에 인터페이스를 통해 JVM안에서 스크립팅 코드를 작성할 수 있고 실행할 수 있다.
스크립팅 패키지를 사용할 수 있는 경우는
- 완벽한 규칙 엔진에 의존하지 않고, 자바 언어보다 단순한 언어로 비즈니스 규칙을 작성한다.
- 플러그인 아키텍처를 생성하여 사용자들이 즉석에서 애플리케이션을 커스터마이징 할 수 있도록 한다.
- 기존 스크립트를 텍스트 파일들을 처리하거나 변형하는 스크립트 같은 자바 애플리케이션에 통합시킨다.
- 프로퍼티 파일 대신 완전한 프로그래밍 언어를 사용하여 애플리케이션의 런타임 작동을 외부에서 설정한다.
- 도메인 스팩의 언어를 자바 애플리케이션에 추가한다.
- 스크립팅 언어를 사용하면서, 자바 애플리케이션을 프로토타이핑 한다.
- 스크립팅 언어로 애플리케이션 테스트 코드를 작성한다.
중요 클래스와 인터페이스
import javax.script.*;
public class EvalScript {
public static void main(String[] args) throws Exception {
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from String
engine.eval("print('Hello, World')");
}
}
ScriptEngineManager(Class) : 스크립트 엔진을 간접적으로 찾고 생성
스크립트-엔진 매니저들이 인스턴스화 되면, 등록된 모든 javax.script.ScriptEngineFactory 구현을 classpath에서 찾는다.
ScriptEngine(Interface) : 코드에선 ScriptEngine 인스턴스를 사용하여 스크립트를 실행하는데 스크립팅 코드와 기반 언어 인터프리터 또는 코드를 실행하는 컴파일러 사이의 중개자로서 작동한다.
ScriptEngine의 인스턴스를 이용하여 Java 메소드 안에서 JavaScript나 Ruby의 function 코드를 정의할 수도 있고 function을 통해 수행된 결과를 eval함수를 통해 출력창에 뿌릴수도 있다.
또, 스크립팅 코드에서 자바 메소드를 호출할 수도 있다.
Java Scripting Programmer's Guide
http://java.sun.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html
Script Engines in this project (so far!)
https://scripting.dev.java.net/
[dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글)
Posted at 2008/04/20 11:11// Posted in 나만의 작업/dW- Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글)
모달 대화상자를 통해 사용자 경험을 향상시키고 네비게이션을 단순화하기
http://www.ibm.com/developerworks/kr/library/wa-aj-overhaul1/index.html?ca=drs-kr
몇일전 dW에 올라온 Ajax와 jQuery를 이용해서 웹 1.0의 사이트를 웹 2.0의 사이트로 변신(!)하는 번역글이 떴습니다. javascript library로 dojo밖에 해보지 않아(그것도 아주 얕게..) jQuery는 잘 모르지만, GreyBox, ThickBox, JTip, jQuery forms등을 이용한 예제를 볼 수 있군요~
문서의 예제에서는 기존의 웹1.0의 사이트와 ajax를 적용한 웹 2.0의 사이트가 있는데 예제 링크가 걸려있어서 확인이 가능해서 더 편한것 같습니다.
근데 "오버홀"이 뭘~까? 란 의문이 드는 시점이 왔습니다.
사전을 찾아보니 overhaul은 "정밀 검사", "분해 검사" 머 이런 뜻이군요
유추해보면 머 Ajax 한번 정밀검사해보자?ㅋㅋ Ajax를 파헤쳐보자! 머 이런것 같은데, 원문 제목이 Ajax overhaul 이렇게 되어 있어서 번역하신 분도 상당한(!) 고민이 많으셨을듯!
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
|---|---|
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
| [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) | 2008/03/23 |
| [dW] 클래스 로딩 문제 분석하기 (4) | 2008/03/04 |
| [dW] IBM developerWorks 리뷰 블로거 2.0 선발과 Mylyn 2.0 통합된 태스크 관리 & 자동화된 콘텍스트 관리 (8) | 2008/02/23 |
[dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글)
Posted at 2008/03/23 23:32// Posted in 나만의 작업/dW공부해 봐서 마침 dW에 글이 있나 찾아보니 역시나 있군요~
우리나라 말로하면 "아저씨"(지극히 저의 개인적인 생각)란 이름과 비슷한 아씨지(어떤분은 머 다른말로 표현하셨던데 어쩜 그게 더 비슷한거 같기도 하고)
아무튼!
What is Acegi Security?
Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with comprehensive authentication, authorization, instance-based access control, channel security and human user detection capabilities.
머~ 이런 일을 한다고 합니다~로그인할때 해당 유저가 로그인할 권한이 있는지 Acegi 보안을 통해 접근할지 못하게 할지등등의 일을
처리할 수 있습니다.
Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글)
이 문서에서의 내용은 Spring 프레임워크를 사용하여 IoC와 XML설정 파일을 이용해 보안처리를 하기위해 Acegi를 적용한 간단한 샘플 예제가 있습니다.
설정으로 보안과 관련해서 처리해야 할 일들을 줄일 수 있다면야~ 좋겠죠~?
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
|---|---|
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
| [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) | 2008/03/23 |
| [dW] 클래스 로딩 문제 분석하기 (4) | 2008/03/04 |
| [dW] IBM developerWorks 리뷰 블로거 2.0 선발과 Mylyn 2.0 통합된 태스크 관리 & 자동화된 콘텍스트 관리 (8) | 2008/02/23 |
-
2008/03/25 12:42 [Edit/Del] [Reply]스프링을 무지 열심히 공부하나 봐요...
스프링에 관심이 도통 가지 않는 것을 보니
벽 보고 반성 좀 해야겠습니다.
갑자기 날씨가 추워졌어요 감기 조심해요. -
[dW] IBM developerWorks 리뷰 블로거 2.0 선발과 Mylyn 2.0 통합된 태스크 관리 & 자동화된 콘텍스트 관리
Posted at 2008/02/23 15:33// Posted in 나만의 작업/dW지난 2월 초에 발표된 IBM developerWorks 리뷰 블로거 2.0에 선발이 되어 완전 영광스럽습니다.
IBM developerWorks에는 아시다시피 많은 아티클, 튜토리얼등의 문서가 많이 있는데,
리뷰 블로거는 이 문서들을 자신의 블로그에 소개하고 안내하는 역할을 합니다.
저는 이 문서들을 소개하기 위해 문서들을 많이 읽게 되어 저에게도 많은 도움이 되리라 생각합니다.
저의 블로그를 찾는 분이 많으시진 않지만, 혹시나 스쳐지나 가는 분들 중에게도 도움을 드릴 수 있지 않을까~
작은 기대를 해 봅니다. ^_^
의지는 불타지만(?) 아는게 별로 없는 초보개발자인 제가 소개하는 내용은 최신기술(아님 조금 지났지만 저에겐 최신기술?)인 것도 있고, 아주 기본기를 정확하게 다지는 글들을 담을려고 합니다. ^_^
처음으로 담을 주제는,
예전에 태스크 중심의 개발이 무엇인지 처음 개발을 시작할때는 와닿지 않았습니다.
그러다가 작년 6월에 Eclipse 3.3/Eclipse Europa에 default로 Mylyn 추가되었다고 기뻐하시는 분들이
많았는데, 그땐 Mylyn이 들어도 언뜻 좋은지 모르겠고 먼~ 얘기 같았는데,
팀장님께서 Mylyn에 이게이게 좋다~라는 설명을 들으니 고난이도나 어려운 환경에서 개발을 하는게 아니고
무언가 eclipse와 같이 일정을 짜고 함께 개발을 진행해 나가는 무언의 느낌(?)이 들어서 써보았더니
머릿속의 정리도 함께 해주는 것 같고, 편리한 점들이 한두개가 아니더군요.
Mylyn은?
하나의 프로그래밍 태스크를 완성하기 위해 우리는 그 태스크와 관련없는 클래스의 전체 계층구조를 보고
그 중에 필요한 메소드를 찾아 개발합니다.
하지만 Mylyn을 쓰게 되면, 한 태스크에 대해 관련된 클래스의 메소드만들 보게 됨으로써
태스크 완성에 더 집중하게 되고(관련된 메소드의 자동폴딩등..), 자신만의 로컬 태스르를 관리할 수 있고,
한 개 이상의 태스크 저장소(Bugzilla, Trac, JIRA 등.)에 저장된 태스크들로 작업을 할 수 있습니다.
태스크를 처리하기 위해 시간을 분배하고 시간 체크도 할 수도 있습니다.
이외에도 개발자가 개발에 보다 집중할 수 있도록 도와주는 역할을 많이 하기 위해 Mylyn을
힘쓰고 있는 점들은 아래의 글에서 참고하시길 바랍니다.
Mylyn의 이름은?
미엘린(Myelin)은 자연스럽게 발생하는 인체 물질로서, 흥분 상태에서 뉴런들을 더욱 활성화 함으로써 생각을 가속화 한다. Mylyn이란 이름도 이 myelin에서 착안한 것이다. 많은 사용자들은 Mylyn으로 자신이 생각하는 속도로 코딩을 할 수 있다고 말하고 있다.
Mylyn 2.0, Part 1: 통합된 태스크 관리 (한글)
Part 1에서는 Mylyn의 태스크 관리 장치와 Bugzilla, Trac, JIRA 같은 저장소와의 통합에 대해 설명합니다.Mylyn 2.0, Part 2: 자동화 된 콘텍스트 관리 (한글)
콘텍스트 관리로 멀티 태스킹을 쉽게 하는 방법과, 정보 오버로드를 줄이는 방법을 설명합니다.
Mylyn 2.0, Part 1: Integrated task management(원문)
Mylyn 2.0, Part 2: Automated context management(원문)
'나만의 작업 > dW' 카테고리의 다른 글
| [dW] Practically Groovy: Reduce code noise with Groovy (0) | 2008/06/24 |
|---|---|
| [dW] Ajax에서 XML 처리하기 (2) | 2008/05/28 |
| [dW] Learn 10 good XML usage habits (2) | 2008/05/23 |
| [dW] XStream으로 자바 객체를 XML로 직렬화하기 (6) | 2008/05/22 |
| [dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외) (3) | 2008/04/28 |
| [dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) (4) | 2008/04/20 |
| [dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글) (4) | 2008/03/23 |
| [dW] 클래스 로딩 문제 분석하기 (4) | 2008/03/04 |
| [dW] IBM developerWorks 리뷰 블로거 2.0 선발과 Mylyn 2.0 통합된 태스크 관리 & 자동화된 콘텍스트 관리 (8) | 2008/02/23 |
-
2008/02/24 00:26 [Edit/Del] [Reply]오... 리뷰 블로거 축하드려요 ^^
Mylyn - 이슈관리 - 버전관리 연동은 확실히 강력한 모습인 것 같아요.(여기에 CI가 붙으면 금상첨화)
근데 잘 쓰려면 노력이 좀 필요해 보여요. ㅎㅎ;;
( JCO때 자바지기님이 Mylyn이랑 이슈관리 연동해서 쓰는거 보여주셨는데 집에 와서 따라해보려니 어버버;; )-
버리야2008/02/26 10:50 [Edit/Del]^^ Mylyn이랑 이슈관리는 그만큼 자료도 많으니
찾아보시구 천천히 따라해보세요
저도 하나도 모르는데 그나마 자료를 보니
좀 알듯해요~ㅎㅎ
설명만 들어선 역시 어려운것 같아요
-
-
-
2008/02/25 09:16 [Edit/Del] [Reply]축하해요........
나날이 발전해 가는 모습을 보니^^
이제 사부님으로 모셔야겠어요..
즐거운 한주 되세요. -


