사진과삶2008/07/30 23:22
일산 꽃축제에 다녀와서... 봄날에...


Posted by 종이비행기
책을읽자2008/07/29 00:42
그동안 가려웠던 부분을 벅벅 긁어 주는 아주 고마운 책이다.
막연하게 이렇게 하면 성능이 좋을거야라고 개발을 했었는데,
증명 또는 지식의 체계화(?)를 시켜준 책이다.
나초보라는 가상의 인물의 이야기를 바탕으로 유저에게 쉽게 접근을 한 책이라
비교적 전문적인 내용은 있으나 가벼운 마음으로 읽을 수 있겠다.

Posted by 종이비행기
개발과삶2008/07/28 00:48
우분투 리눅스 로그인 화면. 이걸로 잠시 개발을 했었는데, 은행과 쇼핑외에는 불편한 게 없었다.
아, 파워포인트 때문에 잠시 원래의 OS인 비스타로 돌아왔는데,
집에서 사용하는 맥을 회사에서도 사용할 것인가? 아니면 우분투를 사용할 것인가 좀 생각해봐야겠다.

윈도우즈 친화적인 개발이 싫어서 윈도우즈에서 개발하고 싶지는 않다.
그 외에는 특별한 이유는 없다. 물론 우분투는 무료~~
맥 OSX 1카피를 구입해서 회사에서 사용할까보다.

Posted by 종이비행기
개발과삶2008/07/27 02:05
맥을 사용하면서 iCon, iCeo 책을 접하게 되었고, 스티븐 잡스에 대해 많은 것을 알게 되었다.

고등학교 시절이었던 것 같다.
그당시 NeXT라는 온통 검정색 PC가 지금도 기억에 생생하다. 바로 스티븐 잡스가 애플에서 나와서 설립한 회사의 제품이다. 비록 실패는 하였지만 거기에 사용된 OS가 현재 맥OSX의 시발점이라고 한다.

맥OS를 사용한지는 6개월 정도 밖에 되지 않았지만, 사용하면 할수록 유저 편의성을 고려한 흔적이 보인다.
처음에는 윈도우에서 전향하기가 너무도 힘들었지만 지금은 불편한 점 별로 못느끼며 편리하게 사용하고 있다. 또한 킬러 애플리케이션인 키노트가 있지 않은가... 아직은 ppt에서 전환을 못하고 있지만 조만간 나의 모든 프레젠테이션은 키노트로 하지 않을까 생각해본다.

Posted by 종이비행기
개발과삶2008/07/27 01:52
정리를 한 번 하고 넘어가야겠다. 정리하지 않으니 그 때 그 때 기분(?)에 따라 방법이 달라지니...

1. DAO 대부분이 일정한 패턴을 가진다. 결국 CRUD를 벗어나지 못한다. 그렇다면, Exception도 CRUD에 맞게 정리하면 되겠다. 여기서 발생하는 예외는 모두 데이터 처리와 관련이 있다.
C: createXxx, insertXxx를 쓰는데, insertXxx가 메소드명으로 적당할 듯하다. 예외사항은 DB 접속문제, 입력실패(키 중복, 필수값 누락, 구문에러) 모두 Checked Exception을 Service layer로 그대로 넘긴다.
R: 메소드명으로 findXxx를 쓰자. C와 동일하게 Checked Exception을 반환한다.
U: 메소드명으로 updateXxx를 쓰자. 역시 Checked Exception을 반환한다.
D: 메소드명으로 deleteXxx를 쓰자. 또한 Checked Exception을 반환한다.
정리하고 보니 전부 checked exception이군. SQLException정도 되겠으니 이를 DAOException으로 래핑해서 던지는 게 좋을 듯 하다. 데이터소스가 파일이 될 수 있으니...

2. Service Layer에서는 DAO의 메소드(들)을 실행하여 실제 business action을 하는 곳이다. 일반적으로는 process flow에 따라 몇가지 DAO의 메소드들을 실행하게 되는데, 비즈니스 로직이 아닌 예외는 Unchecked Exception으로 처리하고 JSP등에서 에러페이지에서 유저에게 알려주고, 관리자에게 메일등으로 메시지 푸싱을 한다. 비즈니스 로직의 경우 민감하게 예외 결과를 구분해야할 경우에는 그 상황에 따라 별도의 Exception 클래스를 만들어서 사용하되 단순하게 성공 아니면 실패 정도로만 넘겨주면 될 경우에는 Exception은 처리하지 않고 false(boolean type), null(Object type)을 반환할 수도 있겠으나 이건 어디까지나 예외적인 처리 방법이라고 하자.

3. 서블릿 또는 JSP단에서 예외 처리
비즈니스 로직이 담긴 Service단이 실행이 되면 결과로 값이 나오던가 아니면 Exception이 나올 것이다. Exception중 Unchecked Exception은 에러 처리 페이지로 이동시켜 메시지를 유저에게 전달하게 할 것이고, Checked Exception이 나타나면 try ~ catch 처리를 해서 유저에게 javascript의 alert창 등으로 알리고 처리를 중단하며 이전 페이지로 돌아갈 수 있도록 한다(물론, 웹 프로그램에서...).



Posted by 종이비행기
책을읽자2008/07/25 23:40

책읽기 붐을 잘 일으킨 것 같다.
회사 개발 직원 모두 손에 책을 놓지 않고 있다. 그 부산물(?)로 읽고 싶었던 이 책도 책 주인도 아닌데,
먼저 읽게 되었다. 최근 보고 있는 SW아키텍처와 함께 보면 좋겠다.
Posted by 종이비행기
사진과삶2008/07/14 00:18
Nikkor 70-300VR
인간은 창조적인 활동을 할 때에 비로소 존재감을 느끼고 삶의 활력소가 생기는 것 같다.
사진 촬영을 나가서 집에 돌아오면서 갖게 되는 기대감...
생각지도 못한 사진이 심혈을 기울여 찍은 사진 보다 더 마음에 들 때...
이러한 기대감과 성취감이 삶의 활력소가 되는 것이 아닐까 생각해본다.

내가 개발자인 이유도 이와 같을 것이다.

Posted by 종이비행기
개발과삶2008/07/14 00:15
벼르고 벼르던 시험을 잘 보기는 했으나 미비한 준비로 결과는 장담할 수 없었다.
단, 문제지를 모두 풀고 간 건 잘 했던 것 같다.

결과는 다음달에 나오고 이제 한동안은 시험에서 해방되겠지.
오늘부터는 지난 번 구입해두고 못 읽었던 SW아키텍처를 공부해야겠다.

자~ 열심히~~
Posted by 종이비행기