본문 바로가기

DeveloperWorks

팀원에게 객제지향 개발을 유도하기 (3/3) 팀원에게 객제지향 개발을 유도하기 (1/3), 팀원에게 객제지향 개발을 유도하기 (2/3)에 이어서 포스팅 합니다. + 2008년 초 레거시 코드를 스프링 프레임워크 IoC로 이식하며 > 잠깐, 왜 인터페이스와 인터페이스를 상속하는 구현 클래스를 만드는 방식으로 프로그래밍 해야 하는 거죠? 팀원에게 객제지향 개발을 유도하기 (1/3)에 객체지향스럽게 짠다는 의미를 대상 요소를 잘 추상화 하여 추상화의 장점을 잘 살리는 것이라고 했습니다. 인터페이스와 인터페이스를 상속하는 구현 클래스를 만드는 것이야 말로 바로 객체지향 추상화의 기본이 되는 프로그래밍 방식입니다. 그리고 스프링의 IoC(Inversion Of Control)기능이 바로 인터페이스와 인터페이스를 상속하는 구현 클래스 방식의 객체지향 개발을 .. 더보기
팀원에게 객제지향 개발을 유도하기 (2/3) 팀원에게 객제지향 개발을 유도하기 (1/3) 에 이어서 포스팅 합니다. > 왜 JUnit등의 테스팅 프레임워크를 이용하여 테스트 클래스를 만들어야 되는거죠? 보통 버그를 어떻게 잡으시나요. 1. 대충 테스트 하고 '이 정도면 되겠지 아마 에러 안날꺼야~' 라고 낙관하거나 2. 에러나면 그때 처리하자고.. 라고 낙관하거나 3. 그래도 이부분은 에러 없어야 되니 100가지 경우를 몽땅 '수작업'으로 테스트 하는거야.. 대개 이러지 않을까요. 그런데 이런 경우는 생각만 해도 아찔합니다. 보호망 없이 외줄타기 하는것과 같고, 망망대해에서 손으로 물고기 잡는것과 마찬가지이고, 로봇으로 자동 제작하던 공장 제품을 갑자기 수작업으로 제작하는 것과 마찬가지입니다. JUnit은 외줄타기 하는 개발자를 추락으로부터 보호해.. 더보기
팀원에게 객제지향 개발을 유도하기 (1/3) 우리회사 팀원들은 각 분야에 일가를 이룬 분들입니다. 특히 금융 전산 분야에서 우리의 능력은 탁월하죠. 다만 오래전부터 경력쌓던 분이라 그런지 절자지향적인 개발에 익숙하고 객체지향 개발은 다소 멀게 느끼시는 그런 모습이 있었습니다. 잠깐, 내가 생각하는 절차지향, 객체지향 프로그래밍 절차지향은, 모든 프로그래밍을 처리, 분기, 반복으로 처리할수 있다는 관점에서 절차적으로 처리하는 방식 객체지향은, 세상의 모든 요소를 객체와 객체간의 관계로 추상화하여, 추상화시 얻을 수 있는 확장성과 유지보수 편리함을 지향하는 개발 방법론 예전에 우리 회사 솔루션 개발에 객체지향 솔루션을 가져다 쓰면서 동료들이 몇가지 의문을 제기한 부분이 있었는데요. 그 의문들은 대부분 원론적인 질문들이라 제가 제대로 답변을 못한 부분이.. 더보기
사람을 위한 자동화, 코드 자동화 관련 이클립스 플러그인 (IBM developerWorks) 예전 몇번의 글로 제가 개발자를 편하게 하는 기술, 나를 행복하게 하는 기술, 정확하게 말해 JUnit, Ant, SVN 등의 여러 자동화 툴을 이용하여 개발자는 프로그래밍만 집중하고 나머지 테스트, 배포, 소스관리, 개발자간 의사소통등의 여러 잡다한 노가다성 일은 자동화 하는 기술에 관심이 있다고 쓴적이 있습니다. 최근에 이런 자동화 기술과 관련된 좋은 세미나가 있었습니다. kenu님 등과 함께 자바 진영에 유명하신 박재성님과 KSUG이 주최한 세미니가 있었어요. 그런데 제가 부상당한 부위(엉덩이 근육통 이라는 엉뚱한 부상입니다.) 가 있어서 가지 못했습니다. 무료로 제가 원하는 바를 골고루 습득할 수 있는 절호의 기회였는데 놓쳐서 땅을 치고 아쉬워하며 서점으로 달려갔습니다. 그래서 서점에서 열이아빠님.. 더보기
자바 NIO 네트워크 프로그래밍 공부 “반전을 조심해야 한다. 겪어보면 기분이 착잡하면서 쓴 약이 되는 반전이 있다. 어제까지만 해도 ‘이 정도면 이 분야 잘아는 것 아닌가~’ 라는 생각을 가지고 있었는데 ‘기초도 모르는구나~’ 라는 착잡한 반전을 경험했다. 어느정도 안다고 생각한 분야의 프로그램에 에러가 발생했는데 하루종일 매달려도 잡히지가 않았다. 그 분야에 정통한 아는 형에게 전화했는데 형이 조언해줘도 내가 못 알아들으니깐 형이 참다가 한마디 던진다. ‘너 기초도 몰라서 얘기가 안 된다. 책좀 읽고 다시 물어봐~!’ 형다운 충고였는데 틀린말이 아니었다. 내가 해결해야될 에러는 까마득한 바다속에 빠진 소중한 물건과 같은데, 까마득한 바다속 길은 깜깜하여 알 수가 없었다. 그래도 해결해야 되니 방법을 찾아보자” 지금 문제가 터진 분야가 ‘.. 더보기
IBM developerWorks 리뷰 블로거들과의 만남 저는 블로그 통한 오프라인 모임이 있을때마다 되도록 후기로 남기려고 합니다. 오프라인 모임에 참석했다는 것이 내가 골방에 앉아 글만 쓰지 않고 특정 이슈에 대해 적극적인 참여를 했다는 것을 말 해주기 때문입니다. 어제는 특히 멋지고 유익한 모임을 다녀왔습니다. IBM developerWorks 리뷰 블로거 모임이었는데요. 쟁쟁한 개발자 분들과 멋지고 세련된 IBM, 기묘 관계자 분들을 만날수 있었습니다. IBM developerWorks 리뷰 블로거(줄여서 DW 블로거)를 설명하면 IBM developerWorks란 개발자를 위한 다양한 칼럼을 제공하는 사이트가 있는데, 이 사이트의 기사를 DW 블로거들이 자신의 블로그에 소개글과 함께 링크를 걸어주면 블로거들에게 고정적으로 일정 수익을 지급하는 일종의 .. 더보기
개발자와 프로그래밍의 가치을 높여주는 JUnit 오늘은 정장을 입었습니다. 자유롭게 입다가 정장을 입었더니 불편합니다. 정장이란 옷 자체는 비싼 만큼 기능적으로 불편하진 않을 텐대 마음이 불편한가 봅니다. 그러나 정장을 입었더니 말과 행동이 조심스러워 지면서 나도 모르게 어른스럽게 행동하는 것 같습니다. 그리고 정장을 입으니 인물이 달라보인다(?) 라는 '이것은 칭찬한것도~ 안한것도 아녀~' 식의 덕담도 들었습니다. 정장을 입으면 마음이 불편하여 왠지 입기는 싫지만, 일단 입으면 나를 품위있게 바꿔 나의 가치를 높여주는 효과를 가지고 있습니다. 제가 좋아하는.. 사실은 좋아하려고 노력하는 JUnit가 정장과 같은 효과를 가지고 있습니다. JUnit란 단위 테스트를 도와주는 자바 테스트 프레임워크 입니다. 자세히 설명하면 우리는 보통 프로그램을 개발할 .. 더보기
Grails 마스터하기 (IBM developerWorks) 여러분이 투덜이 프로그래머라면 자주 투덜거리실 말 중에 하나가 ‘이놈의 프로그래밍 세상은 새로 배울게 쏟아져 나온단 말야.. 공부할게 너무 많아’ 일 것입니다. 저도 특히 그랬습니다. 이것 좀 알았다 싶으면 저게 나와서 새로 배워야 된다고 압박을 줍니다. 그러나 요즈음에는 바꿔 생각해서 ‘우리(프로그래머)의 고민을 해결해줄 신기술이 등장했다. 그래서 나의(프로그래머의) 고민을 해결해줄 신기술을 언능 익히자~’ 라는 긍정적인 생각을 가지게 되었습니다. 신기술이 왜 탄생되는가 곰곰히 생각해보니 '기존 기술의 불편함을 개선하기 위해 탄생되는 것' 이라는 당연한 진리를 생각하게 되었습니다. 그래서 내가 불편했던 것을 해소해주는 신기술이라 생각하고 부단히 익히기로 하였습니다..만 귀차니즘은 항상 작동되고 있습니다.. 더보기
PHP로 RSS 피드 수집기를 직접 만들어보자. (IBM developerWorks) 블로그 하면 머릿속에 어떤 용어들이 스쳐 지나 가십니까? 블로그를 아는 대부분의 사람들이 RSS란 용어를 얘기할 것입니다. ‘블로그가 RSS를 키웠는가, RSS가 블로그를 키웠는가’ 라는 질문이 생각났습니다. 하나만 선택하라면 대답하기 쉽지 않을 것입니다. 둘다 맞는 말이기 때문입니다. 정보를 구독하는 입장에서의 RSS의 효과는, 하나 하나 원하는 사이트를 방문하지 않고도 자동으로 정보가 갱신될 때마다 RSS 리더기에서 편하게 원하는 정보만을 골라서 구독할 수 있습니다. 정보를 제공하는 입장에서의 RSS효과는, 자신의 정보가 많은 사람들에게 읽힐 수 있는 새롭고 편리한 유통 경로를 제공하여 자신의 정보가 많은 사람들에게 읽힐 수 있게 도와줍니다. 여기까지가 블로그 좀 한다는 분 들이라면 당연히 아는 얘기.. 더보기
자동 빌드 툴 개미의 체질 개선(Ant 리팩토링) 신입사원 시절에 조금이라도 좋다는 자바 기술이 있으면 이것저것 맛을 봤던 기억이 떠올랐습니다. 문제는 대형 할인 매장 시식 코너의 좁쌀만한 음식 먹은 것처럼 맛을 봤다는 것이 문제였습니다. 그래도 당시 유독 나에게 와 닿은 자바기술이 있었으니 바로 ‘리팩토링’ 이라는 객체지향 프로그래밍 기법이었습니다. > 리팩토링(Refactoring) ‘리팩토링’을 내 나름대로 정리하면 ‘구현된 기능은 그대로인 상태에서 내부 소스를 이해하기 쉽게, 객체지향스럽게 개선한다.’ 로 이해하고 있습니다. 요즘 널리 쓰이는 개발자 격언으로 ‘훌륭한 개발자는 남이 알아보기 쉬운 프로그램을 짠다.’ 라는 비슷한 격언이 널리 쓰이고 있습니다. 리팩토링은 개발자의 소중한 미덕인 ‘남이 봐도 이해하기 쉬운 코드 만들기’를 도와 주면서,.. 더보기
사람(개발자)을 위한 자동화 기술에 눈을 뜨다. 블로그에 종종 쓰긴 했지만 현업에서 평범한 자바 개발자에게 요구하는 일은 단순 노가다 작업이 많습니다. 하나의 샘플 업무가 완성되면 나머지 화면을 반복하여 찍어내는 작업~이 SI에서는 많습니다. 친구가 최근에 초대형 금융 SI 프로젝트에 설계부터 참여하게 됐습니다. 친구는 큰 프로젝트에서 많이 배울 것 같다며 기분 좋아했습니다. 저도 “네가 만약 그 프로젝트를 성공적으로 완수 한다면 지금의 너와 그때의 너는 하늘과 땅 차이가 될 것이다.” 며 용기를 북돋아 줬습니다. 그런데 친구가 요즘 하는 말이 초대형 프로젝트는 무엇인가 틀릴 줄 알았는데 역시 단순 노가다 작업인 것 같다며 푸념합니다. 저는 친구가 이해됐습니다. (그래도 친구는 프로 개발자이기 때문에 주어진 임무는 성실히 완수 할 것이고 저도 그렇게 .. 더보기