'분류 전체보기'에 해당되는 글 265건

  1. 2010.04.22 클린코드
  2. 2010.04.22 하드코드
  3. 2010.04.04 봄이온다
  4. 2010.03.11 능률적인 프로그래머
  5. 2010.03.11 아이폰 자체 제공앱
  6. 2010.03.11 내가쓰는아이폰앱
  7. 2010.03.11 허드슨에서 SCM LOG 가져오기
  8. 2009.12.09 weblogic jsp compile 에러
  9. 2009.11.25 links for 2009-11-24
  10. 2009.11.22 links for 2009-11-21
2010. 4. 22. 10:28 1300K

클린코드

 

코드를 읽으며 짐작했던 기능을 각 루틴이 그대로 수행한다면 클린코드라 불러도 되겠다. 코드가 그 문제를 풀기위한 언어처럼 보인다면 아름다운 코드라 불러도 되겠다. - 워드 커닝엄 p47

코드를 읽는 시간 대 코드를 짜는 시간 비율이 10:1을 훌쩍넘는다. 새코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다. p50

 

함수선언부를 찾아보는 행위는 코드를 보다 주춤하는 행위와 동급이다. 인지적으로 거슬린다는 뜻이므로 피해야 한다 p87

 

일반적으로 출력인수는 피해야 한다. 함수에서 뭔가의 상태를 변경해야한다면 함수가 속한 객체의 상태를 변경하는 방법을 택한다. p87

 

오류코드보다 예외를 사용하라

... 오류코드를 반환하면 호출자는 오류코드를 곧바로 처리해야 한다는 문제에 부딪힌다. ... 반면 오류코드 대신 예외를 사용하면 오류처리코드가 원래 코드에서 분리되어 코드가 깔끔해진다. p89

 

try/catch 블록은 원래 추하다 코드구조에 혼란을 일으키며 정상적인 동작과 오류처리 동작을 섞는다. 그러므로 try. catch 블럭을 별도 함수로 뽑아내는 편이 낫다. p89

 

좋은주석 :

의도를 표현하라

결과를 경고하는 주석 // 실행이 오래걸린다, 스레드에 안전하지 못하다, todo 등

하지만 팀은 지저분한 테스트코드를 내놓으나 테스트를 안하나 오십보백보라는 아니 오히려 더 못하다는 사실을 깨닫지 못했다. 문제는 실제 코드가 진화하면 테스트 코드도 변해야 한다는 데 있다. 그런데 테스트코드가 지저분할 수록 변경하기 어려워진다. 테스트 코드가 복잡할수록 실제 코드를 짜는 시간보다 테스트 케이스를 추가하는 시간이 더 걸리기 십상이다. 실제 코드를 변경해 기존 테스트 케이스를 점점 더 통과하기 어려워진다. 그래서 테스트 코드는 계속해서 늘어나는 부담이 되어버린다. p186

 

... 테스트 코드는 실제 코드 못지않게 중요하다. 테스트 코드는 이류시민이 아니다. 테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지않게 깨끗하게 짜야한다. p186

 

클린 테스트코드를 만들려면? 세가지가 필요하다. 가독성, 가독성, 가독성 p187

 

build-operate-check pattern p190 ( acceptance test pattern)

가장 좋은 규칙은 개념당 assert 문수를 최소한 줄여라. 와 테스트함수 하나는 개념 하나만 테스트하라 라고 하겠다. p196

 

클린테스트의 다섯가지 규칙

fast : 테스트는 빨라야한다

independent : 각테스트는 서로 의존하면 안됨다

repeatable : 어떤환경에서도 반복가능해야한다

self-validating : 테스트가 스스로 결과를 판단해야한다

timely : 테스트는 적시에 작성해야한다. 실제 코드를 구현하기 직전에 작성한다.

 

단일책임원칙 : 클래스나 모듈을 변경할 이유가 단하나뿐이어야 한다 srp p203

 

지난 수십년동안 쌓아온 경험에서 얻은 교훈이라면,프로그램은 과학보다는 공예에 가깝다는 사실이다. 클린 코드를 짜려면 먼저 지저분한 코드를 짠뒤에 정리해야 한다는 의미다. p274

 

상수 인터페이스 대신 static import를 사용하라 p412

 

상수 대 enum 메소드와 필드도 사용가능하다

p 413

www.qualitytree.com

 

가끔 전자제품을 구입할때 설치기사의 행동에 관심을 가지게 된다. 가능한 주위환경이 손상가지않게 하면서 효율적인 도구를 사용한다.
그리고 설치결과를 설명하고 연락가능한 명함을 남기고 주변을 정리한 다음 자리를 뜬다.

우리도 이왕이면 돈받고 일하는 프로답게 일을 처리하면 좋겠다는 생각이 든다. 

 

이 글은 스프링노트에서 작성되었습니다.

posted by smplnote
2010. 4. 22. 10:28 1300K

하드코드

 

결정,공유, 아이디어

목적이 뒤섞인 회의는 비효율적이고 소모적이다.

왜 모였는지 그리고 목적이 무엇인지 밝혀야 한다 p119

 

협상기법 ACBD always consult before deciding

결정하기 전에 항상 상의하라. 즉 상대방에게 영향을 미치는 결정을 내리기 전에 반드시 먼저 의논하라는 뜻이다 p263

 

면접

과거 18개월동안 팀이 부딪힌 실전 문제중에서 고른다. 답이 화이트보드 한면에 들어가게...

각문제에서 핵심개념을 뽑아서 첫질문을 던진다 지원자가 자신을 얻으면 난이도를 조금씩 높인다.

지원자가 내놓은 분석에서 불분명한 부분을 지적한다. 계속 질문을 던져서 지원자가 자신이 잘모르는 문제에 대응하는 방식을 살핀다.

답하나만을 고집하지않으며 실전문제에서 핵심개념을 뽑아서 활용한다 p311

 

업무평가와 관련해 가장 큰 문제는 의사소통 부족이다. 팀원이 기대치에 못미치면 관리자는 이유와 개선방법을 정확히 알려주어야한다 p318

 

당장 인사담당자와 의논한다... 괜시리 심리학자 의사 변호사 역할을 자청하지마라. 인사담당자에게 맡겨라. 필요하다면 그들이 전문가를 추천한다. p318

 

명심하라 팀원들은 관리자가 고참을 어떻게 다루는지 지켜본다. 언젠가 자신이 직면할 운명이기 때문이다 ... 메세지는 분명하다. 우리팀에 있으면 멋지게 보상받는다. p328

 

좋은 관리자

팀원이 일하기 좋은 환경을 만든다

팀원을 존중한다 p330

 

팀원을 비교하지 않는 방법

좋아하는 측면을 설명하라 -> 누가가아닌

팀원들에게 신뢰를 보여라 -> 다른 팀원을 깎아내리지마라

공평하려고 애쓰기보다 요구를 충족시켜라

사람이아니라 행동을 논하라 p339

 

스스로에게 물어보라. 나 자신과 우리그룹은 문제의 일부인가? 자신이 한 조직에 너무오래 머물렀다면 그래서 여러모로 업무가 편안하다면 변화를 시도할 시간이다 ...

이번 개편이 가져올 새로운 기회가 매우 기대됩니다 p347

 

문제의 직원이 개선하려는 의지를 보인다면 관리자는 그들의 성공을 지지해야 한다. 상황을 뒤바꿀 가능성이 전혀 없다 싶어도 그들이 어떻게든 장애물을 극복하리라고 믿어야 한다.

왜일까? 그들이 성공하는 편이 낫기 때문이다. 관리자가 품는 의심이 전달되기 때문이다.

사람들은 상대가 날 믿는지 아닌지 금방 안다 ...

명심하라. 팀원이 나아지리라는 사실을 관리자가 의심한다면 차라리 실패하라고 멍석깔고 굿하는 편이 낫다. 비극적인 결과는 당연하다. 320p

 

팀원을 성공으로 유도하려면 관리자가 기대하는 수준을 분명히 알려주어야 한다. 오해와 오역을 줄이려면 글로 기술하는 편이 가장 좋다. 매주 기대치를 검토하라. 매주 직접만나고 이메일을 보내 개선된 부분과 아직 개선할 부분을 의논하라. p320

 

격려도 중요하지만 항상 성공을 강조한다.

팀을 호수가 아닌 강으로 여겨라 ...

건전한 흐름을 격려하고 유지하려면

새로운 인재를 꾸준히 확보한다.

정보공유가 살길이라고 가르친다.

조직과 역할을 다듬어서 성장기회를 창출한다.

고참에게 새로운 기회를 찾아준다.

인턴에게는 다음 리드가 될 훌륭한 멘토를 붙여주고 흥미진진한 프로젝트를 맡긴다. 이과정에서 정식직원으로 고용할 인재인지 가늠하고 여기보다 더 멋진 직장은 없다고 확신시킨다.

 

www.microsoft.com/mspress/companion/9780735624351

이 글은 스프링노트에서 작성되었습니다.

posted by smplnote
2010. 4. 4. 19:31 구름이야기
봄이오나보다
간만에 바깥 놀이터에서 놀았다.예전보다 더 잘 뛰어 다니고 활발하다
얼른 놀러다녔으면 좋겠다



iPhone 에서 작성된 글입니다.
posted by smplnote
2010. 3. 11. 15:37 1300K

 

 

window용 tip

 

keymacro : http://www.autohotkey.com 

배경어둡게 : http://gyrolabs.com/index.php?s=jediconcentrate

 

커맨드창 속성조정

  • 빠른편집모드는 프로세스,쓰레드 동작을 멈추게 하는 단점이 있다.
  • 수평스크롤없이 화면지원 최대넓이로 지정
  • 시작위치를 특수 목적에 맞게 고정
  • 색상도 고유업무별로 

 

로그 예외합계수집 쉘

#!/bin/bash

for X in $(egrep -o "[A-Z]\w*Exception" log_week.txt | sort | uniq)

do

   echo -n -e "processing $X\t"

   grep -c "$X" log_week.txt

done 

 

자동화 관련 질문 p70

  • 장기적으로 시간을 아껴주는가?
  • 업무 성격상 오류를 내기 쉬워(너무 복잡해) 자칫하면 시간을 뺏기는가?
  • 수동으로 처리하면 집중이 흩어질까(주의를 빼앗는 거의 모든 일은 집중을 방해한다)?
  • 잘못 처리시 위험은 뭘까?


dbDeploy : 오픈소스 F/W java. SQL 스냅샷을 찍음 (DDL + data) 

 

p107

카나리아 테스트

첫 테스트를 계속 보관할 필요가 있을까? 물론이다.

탄광에서 카나리아로 독가스 여부를 알아챘듯 위험 여부 판단에 한결같은 지표가 된다.

 만에 하나 실패시, 코드 인프라에 심각한 문제가 있다고 생각하면 된다. 

 

 

 

http://www.panopticode.org
측정지표 산출 인프라.

emma, checkstyle, jdepend, javancss, simian, panopticode agregator 

 

Joda library http://joda-time.sourceforge.net

Calendar 클래스의 문제를 해결한 라이브러리 (나쁜 시민 클래스)

 

SLAP 메서드 내의 모든 코드가 같은 추상화 수준을 가져야 함을 뜻한다. => 구현상세는 모두 캡슐화 할것을 권장함

 

p193

큰 건물에 문제가 있어 배관공을 불렀다.

주머니에 손 꽂고 설비만 며칠 보고 다니더니 사흘 째 되어서야 어슬렁어슬렁 밸브 하나를 돌리고는 말했다.

"2000달러 되겠습니다. " 기가 차서 뭍는다.

"2000달러요? 겨우 밸브 하나 돌리던데!" "네." 그가 답한다.

"돌리는 데 1달러, 어떤 밸브를 돌릴지 찾는 데 1999달러, 맞습니다."

이 글은 스프링노트에서 작성되었습니다.

posted by smplnote
2010. 3. 11. 15:36 1300K

 

 

  • 설정
    wifi on
    밝기 : 중간보다 낮게(절약..) , 자동밝기 on
    블루투스(끔), 위치(on), 자동잠금(1분), 암호잠금(켬)
    키보드 자동수정, 자동대문자, caps lock (off), . 단축키(on)
    프로파일 : disabled-EDGE-3G
    계정 pop.gmail.com -> mail , lepffm 캘린더 
    Mail : push (on), 매시간, 보기(25개), 미리보기(2줄), 꼬리표(on), 원격이미지로드(on), 숨은참조(on), 서명 : "핸드폰에서 전달함"
    Calendar : 초대알림(off), 동기화(지난1개월), 
    safari : 자동완성, 위조경고, javascript, plugin, block popup (on), cookie : 방문한곳
    메시지 : 미리보기, 알림반복(off), MMS(off), 제목필드보기(on)
  • 사진
    local에서 폴더만들어 동기화 했더니... 새로 폴더는 만들어지는데 사진 찍을때 바로 해당 폴더로 보내지는 못하네요.. 
    카메라 롤에만 생기고 나머지 폴더는 단순 저장용. 사진 보관함 이란 게 생기는데 이건 저장함 all 개념.
  • 캘린더
    일정관리를 수행. 기존 구글캘린더와 연동하여 사용중. 제일 활발하게 쓰고 유용하게 사용하는 것인듯.. 
    lepffm, company, 구름, 대한민국기념일, 음력, 주소록 친구의 생일 및 일정 
  • Mail
    gmail과 연동. exchange 액티브싱크로 하면 영어로 나와서 일부러 smtp를 쓰고 있음. 
  • 연락처
    아웃룩 데이터와 핸드폰 데이터를 가져왔음
  • 카메라
    자체 줌기능, 플래쉬 기능이 없는게 아쉽.. 그래도 가끔씩 유용하게 사용 
  • 지도
  • 사파리 : 아이폰사파리즐겨찾기
  • 전화
  • 메시지
  • iPod
  • 날씨
  • 음성메모
  • App Store
  • 메모
  • 시계
  • iTunes

이 글은 스프링노트에서 작성되었습니다.

posted by smplnote
2010. 3. 11. 15:35 1300K

아이폰 자체 제공앱

  • RSS 관련

  • MobileRSS : 구글리더와 동기됨. 안정성이 좀 떨어짐 읽지않고도 별표,추가기능사용가능

  • feedPot free : 조금은 빠른 실행속도, 즐겨찾기 기능

  • Free RSS : 웹페이지에서 알아서 rss 정보를 검색하는 기능이 있음. 최대 5개까지 동시 로딩 기능. 느린속도

  • 교통

  • Seoul Bus : 버스교통안내. 아주 유용. 정류장+버스까지 즐겨찾기해서 볼수 있어 유용. 노선정보도 제공.

  • 유틸

  • clips : 텍스트 복사유틸. 심플 텍스트 선택시 복사와 동시에 프로그램 종료 기능 제공. 주로 wifi 암호 넣을때랑, 메시지 텍스트 쓸때

  • eWIFI : wifi 찾기 도구. 심리적인건진 모르겠지만 주변의 wifi 를 잘 찾아준다.

  • Mirror Mirror : 플래쉬 라이트 용도. 옛날 폰에선 잘 썼는데, 아이폰은 별로 밝지가 않아서 그럭저럭

  • Groupy : 주소록을 그룹핑해주는 기능. 처음 만들때 유용했음

  • 메시지

  • iFreeSMSlite : SHOW 무료sms 를 이용해서 쓰고 있음. 이전에 쓰던 것에 비해 안정적이라서 무난하게 쓰고 있음

  • fring :

  • 멀티미디어

  • FStream : 라디오 방송

sbs : http://heisice.com/radio/redirectto/sbspowerfm/

  • Life

  • 오마이셰프 : 요리 레시피.. 그럭저럭

  • CardStar : 여러 멤버쉽 카드를 관리하는 의외로 유용한 프로그램 (쇼멤버쉽, 농협하나로, 홈플러스, 동네마트)

  • Project 365 : 매일을 사진으로 남기는 프로젝트. 근데 매일 찍기가 생각보다 쉽지 않다.,.

  • Study

  • iStarDict : 사전 . 공개된 자료가 많아서 유용.

    American Heritage Dictionary, Concise Oxford Thesaurus, 한글위키백과-10.01.25, STARDICT 국어사전

이 글은 스프링노트에서 작성되었습니다.

posted by smplnote
2010. 3. 11. 15:35 IT

 

오늘 솔루션 업체쪽에서 SCM에서 변경된 정보만 로그로 받아 처리하고 싶다는 요청을 받았다.

 

업체쪽에서 효율화를 위해 전체를 대상으로 하지 않고

형상에서 변경된 정보만을 취하여 해당 로그를 토대로 추가작업을 진행하려고 하는데,

그 정보를 제공해달라는 요구였다.

 

일반적으로 허드슨에서 생성되는 각 JOB의 빌드 로그는 

$HUDSON_HOME/jobs/$JOB_NAME/builds/YYYY-MM-DD_HH-MM-SI 형태의 폴더에 log 파일로 생성되고,

형상에서 얻어오는 변경정보는 동일한 경로에 changelog.xml 로 생성된다. 

 

이게 작업때마다 바뀌니까 고정된 경로로 제공해달라는 요구였다. 

 

이걸 바로 받아올수 있는 설정이 있는지 찾아보았으나... 없음.

 

그럼 뭔가 다른 플러그인이 있나... 찾아보았지만 좀 귀찮고... 

 

그러다 생각난것이 웹URL로는 고정뙨 정보를 제공한다는 사실.

 

이리저리 유추해본 결과 http://허드슨URL/job/작업명/lastBuild/consoleText 로 접근이 가능하다.

 

그래서 만든 추가 ant task 는...

<get src="http://허드슨URL/job/작업명/lastBuild/consoleText"

dest="/a/b/c/작업명-changes.txt"

/>

파일 처리 task가 있으니 더 할 수도 있지만... 귀찮아서 나머지는 솔루션 업체에게 패스~~~ 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

posted by smplnote
2009. 12. 9. 11:14 IT

 

javelin NullpointerException javelin.jsp.JspTagLibraryFeature.findTLDs 1106

 

* 환경

weblogic

 

 

* 현상

jsp 파일을 웹에서 호출할 경우 500에러 페이지가 뜨며

서버 로그상에는 NullPointerException 이 발생한 것으로 나옴.

 

 

* 원인

WEB-INF 경로 하단에 was 실행유저가 접근할 수 없는 경로가 있을 경우 발생

-> JSP컴파일러는 초기화 과정에서 WebApplication의 tld 정보를 미리 로드함. WEB-INF 하위의 모든 경로를 순회하여 tld를 인식하는 작업을 진행하는데,

이때 현재 실행중인 계정에서 접근 권한이 막힌(ex. root) 경로가 있을 경우 접근에 실패하면서 NullPointerException을 반환하게됩니다.

 

* 조치

해당 경로의 접근권한을 변경, 또는 불필요한 경로일 경우 삭제함.

ex) chown -R ibwas.?? can_not_access_directory

 

 

* 예방책

FTP 접근 권한을 강화하고, 해당 이슈를 공지하여 추가적인 오류를 막습니다.  

 

P.S. 구글링도 그닥 도움이 되지 않아, 오류메세지를 따라 디컴파일한후 알아냈다. 더 엉큼했던건, jar 이름도 전혀 생뚱맞았다. 

javelinx.jar 일줄 알았지? server\lib\wlw-lang.jar 였다.. 

이 글은 스프링노트에서 작성되었습니다.

posted by smplnote
2009. 11. 25. 10:01 SocialLinks
posted by smplnote
2009. 11. 22. 10:01 SocialLinks
posted by smplnote