싸게 팔아서 샀는데 원제가 6 Habits of Highly Effective Bosses. 이렇게 배끼면 왠지 인기에 영합해 돈 벌려고 급조한 책이 아닌지 의심이 된다. (너무 한국적 관점인가? 오히려 7 Habits를 높이 산다는 의미가 되나? -_-)a
08.12.03 02:42
남은 필름 서너 컷 소진하러 정동길에 갔습니다. 아~ 역시 분위기 최고. 한 컷, 두 컷, 셋, 넷, 다섯, 여섯, - 오호 뽀나스! - 일곱, 여덟 - 응? - 와인더는 계속 돌아갔습니다. 힘없이 부드럽게… 한 달 전에 물린 필름인데… 필름도 못 물리는 초보.
08.12.03 01:43
별일 아니야. 그냥 한 시간 동안 작성한 문서가 날아갔을 뿐이야. 닫힘 버튼을 누르면 저장하지 않는다는 경고도 안하고 창을 닫아버릴 것을 예상 못한 내가 잘못이지. 지금보니 저장 버튼이 저 위쪽 구석에 있구만. 잘 봤어야지. 시간도 새벽 2시 30분밖에 안 됐고.
08.11.30 02:35
(필요 이상으로) 논란이 되었던 글의 답글이군요. ^^ 개인적으로 프레임워크에서 재사용을 다루어야 하는 것인지는 의문입니다. 예를 들어 스트럿츠는 action의 재사용성을 고려하고 만들었습니다. 하지만 action의 재사용성이 프레임워크에서 지원해야 할 문제일까요? 저는 언어 차원에서 OOP적인 기법으로 충분히 재사용을 할 수 있다고 봅니다.
^^; 링크하신 글에 대해 별다른 이견은 없고요. 재사용성에 관해서는 조금 이견이 있습니다. 논점을 나눠야할듯한데, 1.서서히 만들어지는 것이 더 낫다 2. 실무자가 만드는것이좋다. 에서 제가 애초 말하고자 했던 부분은 1에 관한 이야기였습니다. framework의 정책은 개발중 수시로 변경될수 있는 부분이 아니기 때문에, top down의 접근도 필요하다는 생각입니다.
자바가 다중 상속을 못하게 한 것은 동의하는 편이지만
인터페이스를 확장 불가능하게 만든 것은
이해가 안 된다. "인터페이스를 많이 쓰도록 해. 그런데 인터페이스는 변경하면 안 되는 것 알지?" 사람 놀리냐? - 계약 때문이라면 별도 지시어를 만들 수도 있었다.
08.11.26 11:36
전 반대로 생각했습니다. 정의된 interface를 변경하지 않는 것은 사용하는 측을 배려하기 위함으로 보입니다. 제가 해석하기로 본문 중 2,3 으로 숫자가 붙은 것은 원래 interface 쓰는 client module이 안심하고 사용하기 위함이지, 언어적 한계때문에 우회한 방법이라고 보이진 않네요.
일단 publish 된 interface 의 경우 변경하지 않는 것이 cilent 의 상호 연동을 보장하기 위한 방안이라고 생각합니다. 확장이야 모르겠지만, interface가 변경되어 버리면 그에 의존하던 기존 코드들은 다 동작을 못하겠죠. 감마옹도 그래서 일부러 2,3을 붙이더라도 기존것을 유지하려고 애쓴 것이 아닐까요
오리대마왕
: 그게 메소를 변경하는 문제라면 말씀이 맞는데요. 단순히 몇가지 메소드를 추가하는 것 조차 안되니 말이죠. 저 글에서도 이런 특성 때문에 interface 대신 추상 클래스가 유용한 경우도 있다고 하네요. 켄트백의 구현패턴에서도 같은 얘기가 있고요. 하지만 추상 클래스는 다중 상속 문제 때문에 한계가...;;;
자바의 경우 프레임워크 클래스에 메소드가 추가 되었다고 해도 그 클래스를 가져다 쓰는 놈은 다시 컴파일 할 필요 없이 그냥 바이너리 상태에서 돌릴 수 있는데 인터페이스의 경우는 인터페이스에 어떤 변형(단순한 확장)만 있어도 다시 컴파일 해야만 하거든요. 어떤 특별한 기술 문제가 아니라 언어의 특성일 뿐이에요. (물론 제가 이해 못하는 언어학적인 이유가 있을지도 모르겠지만... -_-);'
대규모로 설계해 본적은 없지만.. 결국 변화를 줄때 변하지는 않는 축을 결정하고 그 축 중심으로 변화하라.라는 객채마법사들의 주문들이니까. 명시적으로 프로토콜을 만들든지. 덕타입으로 각각 책임을 할당하듯. 또 다형성 확득의 차원에서 계약 자체의 변화에 너무 많은 기능도 좀 아니지 않을까. .
내가 문제 삼는 것은 너무 '많은 변화'가 아닌 어떤 변화(단순한 메소드 추가)도 허용하지 않는 경직성이고 만약 계약 때문이었다면 interface 선언할 때에 final 같은 지시자를 두도록 하는 방법을 쓸 수 있었다고 생각해. 그리고 설계를 뒤로 미루는 Agile과 자바가 친해지기 어렵게 만드는 이유가 되기도 하고...
아 항! DByC가 그거…(바보 아냐. -_-) 솔직히 Duck Type의 단점을 DByC(바로 써먹..)로 해결하는 것은 너무 무거운 느낌이고 dynamic type, static type, DByC 모두를 제공하는 것이 좋지 않을까? Scala의 compund type도 실용적인 것 같고…
잘 모르니까 이렇게 말이 많은거죠. 구현하다보면 길을 잃고 뱅뱅 도는 일이 일상다반사에요. -_-
08.11.27 00:31
말처럼 우리가 다시 모이는 것
은 어려울지도 몰라. 그래도 난 우리가 같이 일했던 것이 너무 자랑스럽고 행복했어. 내가 최고가 아닌 것처럼 우리 중 누구도 최고는 아니었지만, 같이 있으면 든든했고 서로 생각을 나누며 함께 성장할 수 있었던 그것이 좋았어.
08.11.26 00:47
저주받을 gen128의 개발팀은 진주였고 우리는 영원한 동무 고마웠어 지켜주지 못해서 미안할 뿐 오늘 밤도 잠 못 들겠다
예전부터 궁금했는데, ,슈퍼돔을 하나사서 가상화로 여러 대 서버를 돌리는게, 경제적인거 맞나요? 하기야. 여러가시 시스템많으면 한서버에 때려넣으면 문제가 많기는 하겠쥐만, 전체적인 성능은 이건 뭐 좀 아니다 싶고, 이거 뭐 내가 장기하도 아니고 싶네요--;(전기세는 좀 덜나갈려나)
예전에는 ibm 360 같이 폐쇄적인 시스템에서 타 시스템을 예외적으로 지원하는데 가상화가 사용되었었는데 요즘은 유지보수성과 유연성 때문에 이것을 사용하는 듯 하더라고... Unix를 사고 싶은데 가끔 NT도 돌릴일이 있을 것 같은 고객에게 "저희 것은 가상 머쉰으로 NT도 돌릴 수 있습니다. 걱정말고 사세요. "라고 말하는 것 아닐까?
저두요
08.12.06 16:03그래서 전 KSUG 술마실때만 쑉쑉 가지요 ㅎㅎㅎㅎ
08.12.06 17:03off도 중요하지만 on-line에서도 인간미를 잃지 않았으면 해요. ^^
08.12.06 18:59네~ 공감합니다.... T.T
08.12.06 19:25