Clean Code that Works.

음..

원래 하고 싶었던 건은(화면에 권한에 따라 보여질 뷰를 달리 하기 위해서)
<sec:authorize access="hasRole('ROLE_ADMIN') or ( '${bbs.username}' == principal.username)" />
이것을 적용하고 싶었지만
두껍게 한 부분을 .. 아마도
spEL 과 jstl EL 차이때문에 인식하지 못하고 에러를 뿜어 낸다.

그리하여,
Iterator iter = ((SecurityContext)session.getAttribute( "SPRING_SECURITY_CONTEXT")).getAuthentication().getAuthorities().iterator();
            while ( iter.hasNext()) {
                String role = ((GrantedAuthority) iter.next()).getAuthority();
                if ( role.equals( "ROLE_ADMIN") || sessionUsername.equals( username)) {
                    returnFlag = true;
                    break;
                }
            }

위와 같은 코드가 탄생 -_-..
세션에 있는 authorities 정보에서 권한을 직접 비교하도록 하였다.
비교해서 있으면 true 없으면 false..

값에 따라서 화면에 보여질 것도 제어 할 수 있도록 하고,
스프링 시큐리티 보면서 도메인 ACL은 아직 손을 못대고 있는데..
이번달에는 꼭 할 수 있도록 해야겠다.

disk init
name = ‘existingDevice’,
size = ‘additionalM’
Please note, this is to add space to exisiting device. i.e the device is 100M, the following command will make the device 500M

disk resize name = testDev, size = “400M”

올해의 목표인
스프링 공부에 집중하고, UX 와 인포메이션 아키텍쳐 공부에도 집중을 하자!!

영어공부도 해서 토익도 800점 넘기고!!!!!!(10월까지 목표)
11월이면 이년차 넘으니.. 후반기에는 이력서도 정비하고,
조금 더 좋은데로, 내가 하고 싶은것들 할 수 있는 곳으로 이동하자.

으헤헤헤헤.
공부합시다..

자바스크립트 완벽 가이드 산지 1년만에 보는것 같은데..
요고 잼있네 ㅋㅋ.


스프링 시큐리티 샘플 url.


두번째 URL에 있는 이미지를 보면 대충 감이 온다.

아 역시 security는 어려와 =_=;;


윈도우 세븐은 하드디스크가 두개일 때 설치가 되지 않는다.

시게이트(250), 삼성(500)이렇게 두개였는데
기존에 시게이트가 100 150으로 나누어져 있었고..
100에 깔려있었던 영문판 윈도우 7을 밀고
다시 한글로 옴겨타는데.. 이쪽 하드에는 설치가 안된다고 난리..
그런데 홧김에 150 부분도 지워 버리고(코딩 자료들 -,.-)
해봐도 안됬다.

근대 다른 하드(삼성)걸 제거 하고 나니깐 그냥 설치..
헉 ..
생각해보니 영문판 설치할때도 하드 한개만 설치한 상태에서 한 것 같았다..
이게 뭥미. -,.-..

여튼...
토렌트 사용법도 알았다.
이거.. 생각보다 완전 좋은데 -ㅅ-;;

이제 svn에서 프로젝트 다운로드~ ~_~


윈도우 7 영문판 -> 한글판으로 바꾸기.

뭐 어차피 최종 테스트 버전이어서 라이센스도 한 6개월 밖에 안남았으니..
한글판으로 갈아 타고 ~_~

또.. STS 설치!!!
스프링 개발을 위한..

작업 폴더 정리..
노트북하고 좀 맞추어서 개발 환경도 구성 할 겸..

컴퓨터가 이제 산지 3달 되서 가끔 달달 거리긴 하지만 아직도 쓸만 하다능...
영웅전도 잘 돌아가고.. ㅋㅋ

업그레이드는 나중에 블레이드소울 나오면.
아 커뮤니티 좀 잘 지원되는 게임 나왔으면 좋겠다.
C9 이나 영웅전이나 액션만 추구해서 질려 -_-;;

아하하..

홈플러스가서 디비디 씨디 좀 사와야징 ㅋ

see this site 
http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors


10가지 jQuery와 jQuery가 아닌 자바스크립트 rich text editor.
간단한 게시판이나 방명록에 활용해도 좋다.

오랜만에 jQuery 사이트에 들어가보니 1.4버전의 출시가 임박했다고 한다.
1.4버전에 맞추어 14일 단위로 1.4버전에 관한 내용을 설명하는 컬럼이 게시되고 있는 중.

몇가지 메서드가 추가되고, 변경 되었다고 한다.

전체 용량도 약간 상승 하였다.

성능 향상을 위하여 자주 쓰이는 메서드들을 점검(Overhaul) 했다고 한다.

메서드 성능

차트만 보면 엄청난 성능 향상.



사이트 가기 ( http://jquery14.com/)

동영상 강좌도 올라왔으니 보면 좋을듯. 



하드코드에 "죽음의 행진, 관리층이 문제야!"에 있는 내용.

죽음의 행진.. 우리나라로 따지면 무한 야근 막 이런거 -ㅅ-;;
다행히 입사한지 1년이 넘었지만 야근은 한번도 안했다.
되도록 일찍 퇴근하려고 노력하고, 집에 가면 기술 서적이나 방법론 개념 책들을 조금씩 읽는다.
많이 읽으면 한달에 2~3권, 아니면 1권.. 출퇴근할때나 잠잘때는 소설 들도 읽고.

아무튼 아래 컬럼은 개발자나 PM등 관리층에게도 도움이 되는 글이다.
야근을 피하고 윤택하고 아름다운 개발자 생활을 만끽하자 :-)

실패하는 이유.
멍청하고 무지한 관리층에게 고하노라, 죽음의 행진은 다음과 같은 이유로 실패하느니...

* 실패를 목표로 삼는다 - 처음부터 할 일은 너무 많고 시간이 너무 없는 프로젝트다. 당연히 실패한다.
* 편법을 부추긴다 - 일정에 쫓기면 당연히 편법이 난무한다. 그런데 안타깝게도 편법은 품질을 낮추고 위험을 높인다. 단기간에 작은 업무라면 무사히 넘어갈지도 모르겠다. 그러나 프로젝트가 지연되면 품질은 낮아지고 위험은 커져 결국은 문제를 일으킨다.
* 생각할 시간이 없다 - 효과적으로 일하려면 여유 시간이 필요하다. 읽고, 생각하고, 토론할 시간이 있어야 한다. 이런 시간이 없으면 맨 처음 떠오르는 추측을 적용한다. 맨 처음 생각이 옳을 확률은 낮으므로 당연히 설계와 계획이 엉성해지고 품질이 떨어진다. 결국 치명적인 결함이 드러나거나 완전히 뒤엎어야 하는 사태가 발생한다.
* 대화할 시간이 없다 - 모든 문제는 대화 단절과 오해에서 비롯된다고 주장해도 과언은 아니다. 심지어 우수한 팀도 대화 부족으로 실패하는 경우가 흔하다. 업무량이 과도하고 여유가 없는 환경에서는 대화가 줄어들고 대화의 효율성도 떨어진다. 대화 단절이 심할수록 프로젝트는 성공하기 어렵다.
* 긴장, 스트레스, 기능 장애가 발생한다 - 일정에 쫓겨 마음이 급하면 가장 먼저 너그러움이 사라진다. 업무에 사적인 감정이 개입된다. 다른 팀원의 실수를 부풀리고 곡해한다. 목소리가 높아지고 급기야는 대화가 끊긴다.
* 사기가 떨어지고 팀이 와해된다 - 가족과 친구들에게 소홀하면서 긴장과 스트레스 속에서 장시간 이하면 팀이 신체적으로나 정신적으로 지친다. 프로젝트가(당연히) 일정과 품질 목표를 못 맞추면 팀원들은 한순간 인내심을 잃는다. 운이 좋으면 프로젝트가 끝날 즈음 그룹을 옮기느 정도로 그친다. 운이 나쁘면 회사를 뜨거나, 이혼을 당하거나, 건강을 해치거나, 위험한 뭔가에 중독되는 지경에 이른다.
참고로, 팀원이 자발적으로 늦게 남아 일하는 경우를 죽음의 행진으로 오해하는 관리자도 많다. 죽음의 행진은 역학이 전혀 다르다. 죽음의 행진에 내몰리는 팀원은 어쩌 수 없이 늦게까지 일한다. 반면, 스스로 늦게까지 일하는 팀원은 대개 일이 좋아서다. 필요하면 여유 시간도 충분히 갖는다. 일정에 쫓기지 않으므로 편법으로 땜질할 이유도 없다.
* 회사를 불신하게 된다 - '죽음의 행진 = 뭔가 잘못되어 나타나는 현상'이라는 공식은 두말하면 잔소리다. 죽음의 행진을 지켜보는 직원과 고객과 협력업체는 팀에게서 헌신이 아니라 무능함을 느낀다. 진짜 문제는 덮어두고 죽어라 일해 봤자 회사 위신과 이미지만 구겨진다.
* 문제를 해결하지 못한다 - 컴퓨터 앞에 오래 앉아 있다고 근본적인 문제, 즉 '할 일은 많은데 시간이 부족하다' 라는 문제가 사라지지 않는다. 근본적인 문제를 해결하지 않는 한 상황은 나아지지 않는다.
* 선택의 여지가 줄어든다 - 시간을 들여서 제대로 설계하고 계획하지 않으면 제품에 치명적인 결함이 생기고 대다수 작업을 다시 해야 한다. 팀은 대화가 끊기고, 오해가 난무하며, 서로 잡아먹으려고 으르렁거린다. 사기는 떨어지고, 출시 능력을 의심받으며, 그러고도 일정과 품질 목표를 놓친다. 물론 원래 문제는 그대로 남아 있따. 이런 지경에 이르면 프로젝트는 선택의 여지가 줄어든다. 결국 품질을 낮추고, 일정을 늦추고, 죽음의 행진을 계속 하는 수밖에 없다. 멋지지 않은가?

전환점
자, 할 일은 너무 많은데 시간이 너무 없다. 어떻게 해야 할까? 현실적인 측면에서 답은 대단히 쉽다. 할 일이 너무 많은 이유와 시간이 너무 없는 이유를 찾아내면 된다.
"일정와 요구사항이 위에서 내려왔거든요"는 답이 아니다. 왜 그런 일정과 요구사항이 내려왔을까? 일정과 요구사항을 지키지 못하면 관리층은 어떻게 대응할까? 일정을 늦춰줄까? 얼마나? 요구사항을 쳐낼까? 어떤 기능을? 프로젝트 역학을 근본적으로 바꿀 방법은 없을까? 일단 위에다가는 주어진 날짜와 요구사항을 목표로 삼겠다고 말한 후 자체적으로 최악의 상황을 계획한다.
즉, 최악의 상황을 고려해 계획을 세운다. 반드시 지킬 최후 일정과 반드시 넣을 최소 기능을 계획으로 세워본다. 그래도 시간이 부족하다면 관리층에게 경고한다. 이런 프로젝트는 애당초 가망이 없다. 최악의 시나리오가 충분히 달성 가능하다면 여기에 총력을 기울인다. 팀원들에게 목표를 초과하면 3.5점 이상을 목표에 못 미치면 3.0점 미만을 주겠다고 말한다.(마이크로 소프트에선 4.5점 만점)

남들이 가지 않은 길
이로써 팀은 죽음의 행진에서 벗어나고, 상황을 개선할 여유 시간이 생긴다. 십중팔구 목표도 초과 달성한다. 그러면서도 편법을 쓰거나, 미숙한 결정을 내리거나, 서로 잡아먹는 일도 없다. 필요한 기능을 기한 내에 완료하면서 동시에 협력업체와 고객에게서 신뢰도 얻는다.
그럴 듯하게 들리지만 감정적으로 쉽지 않은 일이다. 최악의 상황을 계획하려니 프로젝트를 포기하는 느낌이 든다. 유약한 겁쟁이가 되는 듯하다. 난관을 극복할 능력이 없다고 자인하는 꼴이 아닌가? 역설적이게도 실제는 정반대다.
위험을 회피하는 행동이 오히려 유약하고 비겁하다. 최악의 가능성을 무시하는 태도가 오히려 기만적이고 무책임하다. 용기를 보여라. 진신을 인정하라. 영리한 태도로 협력업체와 고객과 직원을 고통에서 구하라. 팀과 삶과 자신감을 보호하면서 프로젝트를 성공으로 이끌어라.

요즘 한창 떠오르고 있는 클라우드 컴퓨팅.

사용자는 어느 기기로든지 웹 브라우저를 통해 구름 저 편에 있는 서비스를 이용 한다면 된다는 이론.

이걸 생각해 보면 점점 공각기동대에서 나왔던 세계가 펼쳐져 가고 있는 것 같다.

지금의 모습과 공각기동대 상의 세계의 중간 단계가 섬머 워즈에 표현 되었던 오즈 라는 네트웍 세계가 될 것 이라는 생각이 된다.
오즈에서는 컴퓨터와 핸드폰을 이용해서 오즈에 접속하게 되는데, 이들 기기간의 장벽이 무너지고, 웹 브라우저에 제한 하지 않고 어떤 기기를 통해서든지 인터넷이 아니라 네트웍(공각기동대에섯 NET의 일본어 발음이 나름 맘에 들었다.)에 접속 할 수 있는 세상이 곧 올 것이라 생각된다.

물론 공각기동대에서 나왔던 전뇌 및 AI 에 대해서도 점점 더 발전이 되어 가겠지만.
나 죽기전에 다 나올 것 같다. -_-;;

부디 넘처나는 정보 속에서 내 자아를 잃지 말자.
STAND ALONE COMPLEX.