본문 바로가기

자바

Apache Shiro 소개하기 아파치 프로젝트에 보안 관련 프레임워크를 소개합니다. 최근 보안 솔루션이 주 업종인 회사에 파견을 나갔습니다. 보안일에 잔뼈가 굵은 차장님과 이런 대화를 나눴습니다. 나: "저도 나름 뱅킹 프로젝트 하면서 보안 솔루션을 많이 적용 했는데 정작 내부가 어떻게 돌아가는지 잘 모르겠더라고요" 차장님: "모르는게 당연해요. 보안관련 원리는 보안일을 하는 사람이 아니면 알기가 힘들죠. 그리고 보안일이 좀 돈벌기가 힘들고..일종의 사명감을 가지고....생략....뭐.그렇습니다..허허" 사실 내가 말한것처럼 나름 보안 솔루션 적용은 했지만 내부가 어떻게 돌아가는지 잘 모르겠더군요. 그래서 PKI니 몇권의 보안 책을 사봤지만, 두루뭉실하게만 이해가 되었습니다 그런데 혹시 이 아파치 보안 프레임워크를 쓰고 그 내부 소스.. 더보기
dW Live! 12월 세미나 '2011 IT 테크놀로지의 재발견' 12월 16일 오후에 dW Live! 세미나가 개최됩니다. '2011, IT 테크놀로지의 재발견'이 세미나 제목입니다. 주로 웹 분야에 적용되던 기술이, 이제 엔터프라이즈로 확대 적용되고 있다는 내용을 담고 있고, 모바일, REST, 애자일, HTML5 등의 엔터프라이즈 적용 방안, 사례 등이 주로 소개될 예정입니다. 저는 이 내용을 보니..모바일과 애자일이 엔터프라이즈에 어떻게 적용되는지 관심이 가는데....우와! 1등에게 맥북 에어를 준다고 합니다~ ㄷㄷㄷ ^ ^ www.ibm.com/developerWorks/kr | 1 December 2010 더보기
vi 팁 및 트릭: 친구에게 강렬한 인상을 남길 수 있는 10개의 유용한 명령 [IBMDW 201011] 저는 vi 에디터를 무척 좋아해서, vi에 대한 글도 종종 쓰곤 했습니다. 고수를 위한 고전 에디터 vim 초보자를 위한 정규 표현식 마침 IBM DW 기사에 vi에 대한 좋은 기사가 또 올라왔군요. vi 팁 및 트릭: 친구에게 강렬한 인상을 남길 수 있는 10개의 유용한 명령 사실 저도 vi를 공부하기 시작한것이 vi를 쓰면 뭔가 더 잘하는것 처럼 보여서 시작했습니다. 저는 이기사를 통해 '필터링' 이란 기법을 새로 알았습니다. 내일 옆에 직원이 내 모니터를 볼때 필터링 기법을 써서 그 직원을 놀래켜 줘야 겠습니다. ^ ^ 더보기
JVM의 명령행 플래그에 대해 모르고 있던 5가지 사항 [IBM DW 201011] 예전에도 몇번 똑같이 말하곤 했지만 진짜 자바의 높은 경지에 올랐다고 한다면, 스레드를 자유자재로 다루고 JVM 로그를 분석 할수 있어서 어떠한 에러나 병목현상도 쉽게 잡아내고 개선하는 개발자일 것입니다. 보통은 이런 고급수준의 일을 필요로 하진 않지만 대용량 세션을 견뎌야하는 서버라면 세밀한 자원관리가 필요할수도 있을것입니다. 이런 개발자가 될수 있다면 연봉이 그냥~ 억소리 비슷하게 높을수도 있겠죠~! 오늘 소개해드리는 기사는 어쩌면 억소리~나는 고급 개발자로 올라서는데 작은 보탬이 되는 기사입니다. JVM의 명령행 플래그에 대해 모르고 있던 5가지 사항 저는 예전 WAS 유지보수할때 '아웃오브메모리' 에러 가 종종 발생된적이 있습니다. 그러나 도저히 그 원인을 찾지 못해서, WAS를 리스타트 하는 땜.. 더보기
자바 애플리케이션에서 동적으로 PDF 파일 생성하기 [IBM DW 201011] 자바 관련 SI 프로젝트할때 숨겨진 것처럼 보이는 일들이 있습니다. 그중 하나가 웹페이지를 엑셀이나 PDF, 프린터 리포트로 생성하는 일 입니다. 이 숨겨진 일들은 꽤 번거롭고 짜증나는 일들입니다. 예전에 JSP만 하면 되는 줄 알았다가 업체가 엑셀작업과 프린터 리포트 작업도 해달라고 해서 급하게 밤샘작업한적도 생각나는군요. 이렇게 다른 방식으로 UI나 데이터를 뽑아내는 일은, 일반적인 JSP가 아니고 특정 솔루션을 쓰는 경우가 많아, 그 솔루션의 개발 생산성과 성능을 중요하게 따져봐야 합니다. 오늘 소개할 기사는 특정 UI를 PDF로 추출하는 오픈소스 자바라이브러리 iText 관련 기사입니다. 사실 iText는 PDF 뿐만 아니라, HTML, RTF, XML 형식으로도 문서를 생성한다고 합니다. 다양한.. 더보기
Java 성능 모니터링에 대해 모르고 있던 5가지 사항 [IBM DW 201010] 자바 경력이 쌓일수록 단순반복 웹노가다 작업보다는 서버쪽이나 프레임워크나 성능튜닝쪽을 공부해야 고급개발자가 되겠다는 생각으로, 관련 공부를 했지만 역시 어렵더군요. 특히 자바 가장 밑단 가비지 컬렉터나 스레드 현황을 분석하는 자바 성능 모니터링은 높은 장벽이었습니다. 저같이 고급 자바 개발자가 되고 싶지만 어려워 하시는 개발자 분들이 많으리라 생각합니다. 이 기사가 자바의 가장 밑단에 있는 신비로우면서 어려운 성능 모니터링을 이해하는데 도움이 될것 같아 소개합니다. Java 성능 모니터링에 대해 모르고 있던 5가지 사항, Part 2 더보기
iBATIS 3의 새로운 기능 [IBM DW 201010] 자바에서 DB를 다루는 방법을 제 자바 경력 동안 생각나는데로 써보면은요. - 처음 신입 사원때 일반적인 JDBC 로 try catch문으로 감싸고 꼭 close하는 식으로 짰었고, 좀더 발전한게 DB접근로직을 DAO로 분리했었죠. - 좀더 머리를 굴려서 SQL코드를 설정파일로 빼는것도 해봤습니다. - 그런데 JDBC문은 워낙 복잡스럽고 close문을 안쓰면 메모리가 '풀'차서 서버가 다운되는 현상이 종종 있었죠. 아무리 신경써서 close한다고 해도 사람이 하는일이라 실수가 있었습니다. 마치 지뢰를 매설하는 기분이었습니다. - 한 2년전부터 쓴 스프링 프레임워크의 jdbcTemplate는 close문등의 지저분한 DB코드 작업을 많이 줄여주었습니다. - 이때 하이버네이트, iBatis가 나왔었고요. -.. 더보기
DB2 기초: 재미있는 날짜와 시간 [IBMDW 201010] 우리 자바 개발자들은 여러가지 SI프로젝트 경험을 합니다. 보통 자바 웹 개발 환경구성은 각양각색이지만 서버나 데이터베이스 구성은 대개 비슷합니다. 서버는 대부분 리눅스나 Unix일것이고 데이터베이스는 오라클 이겠죠. 그런데 종종 어느 대형 프로젝트 가면 IBM 기반으로 전산환경이 구축된 곳을 보게 됩니다. IBM으로 구축된 곳의 WAS는 틀림없이 웹스피어 이고, 서버 머신은 AIX(Unix 기반)이고 데이버베이스는 DB2 입니다. 우리 자바 개발자는 WAR 배포하고 리스타트 하는 방법만 알면 크게 신경쓸 필요 없기 때문에 WAS가 웹스피어인것은 크게 불편한일 없을 것이고요. AIX는 Unix이기 때문에 익숙한 서버 환경입니다. 문제는 DB2입니다. 지금 옛날 모 은행에 이어서 오랜만에 IBM 환경으로 .. 더보기
Android 애플리케이션에서 인터넷 데이터 사용하기 [IBM DW 201009] 누군가 말씀하시기를, B투C시장은 아이폰이 장악했지만 B투B시장은 대기업과 우리나라가 워낙 안드로이드를 밀어주는 분위기라 안드로이드가 좀더 발전할것 같다라고 말씀하시더군요. 스마트폰 비투비 프로젝트라면 아마도 이렇게 구성될 것 같습니다. 스마트폰이 클라이언트고, 이 클라이언트 폰에서 약속한 규약(XML이던 스트링이던 HTTP던 TCP던)으로 서버에 던지면 서버에서는 이 요청 데이터를 분석하고 요청 데이터에서 원하는 내용을 처리하여 다시 스마트폰 클라이언트로 던져주겠죠~! 비투비 프로젝트의 대부분이 이런 모습일것 같네요. 스마트폰 서버 프레임웍 디비 또는 호스트 이 기사는 전형적인 스마트폰 비투비 프로젝트에 참여하신다면 참고로 읽어보고 활용할만한 기사입니다. XML, JSON, 구글 제공 프로토콜 버퍼등 .. 더보기
아파치 Commons Lang 유익한 기능 활용법 [IBM DW 201009] 무슨 프로그램이든 글이든 보고 듣기엔 참 좋은 프로그램 또는 글인것 같은데 막상 활용해보자니 뭔가 두루뭉실하고 현실에 맞지 않는 것들이 있습니다. 저는 물론 간결하면서 바로 써먹을수 있는 프로그램이나 글이 좋습니다. 그런 의미에서 제가 좋아하는 바로 써먹을수 있는 실용적인 기사를 발견했습니다. 잠깐의 활용법만 알면 아파치 Commons Lang에서 제공하는 유틸리티 기능을 바로 써먹을 수 있습니다. * equals * hashCode * toString 이 3개의 메소드는 자바의 Object 클래스에서 제공하는 자주쓰는 메소드입니다. 특히 equals와 toString은 많이 쓰는 메소드죠~! 근데 보통 이 메소드들 그냥 쓰지만 가끔은 예를 들어 이런 상황이 생깁니다. Account acct1 = new.. 더보기
Eclipse Helios 둘러보기 [IBM DW 201009] 몇개월전 집 컴퓨터에 자바 개발환경을 새로 셋팅하면서 이클립스 3.4로 셋팅하고 잠시 묵혀두고 있었습니다. 그러다가 최근에 다시 자바 환경 실습하려고 했더니 아 이런 이클립스 3.5 헬리우스가 새로 나왔답니다. 그냥 3.4쓸까 3.5 쓸까~ 고민하다가 이왕 하는거 최신버전 깔아야지~ 라는 생각으로 3.5를 새로 받았습니다. 그런데 제가 이클립스를 새버전이 나올때마다 되도록 바로 업데이트 하려는 이유는 이번에 업데이트하면 이클립스가 좀 가벼워지지 않을까라는 기대 때문이었습니다만.. 기존 버전에 비교해 덩치나 속도는 큰차이가 없는것 같습니다. 대신, 마켓플레이스라고 앱스토어처럼 플러그인 마켓이 있고, 개발자는 이 마켓에서 원하는 플러그인을 받을수 있군요. 예전 방식보다는 좀더 사용자 친화적으로 바뀐것 같습니.. 더보기
JAR에 대해 모르고 있던 5가지 사항 [IBM DW 201008] 자바 개발자는 jar를 친근하게 바라 볼 것입니다. 저는 jar파일의 기능을 좋아합니다. 그 복잡다단한 설정파일과 클래스로 얽히고 섥힌 파일들이 하나의 jar로 묶일때 그 모습이 무척 깔끔하거든요. 그리고 옛날에는 jar종속성을 따져가며 jar파일 추가하는것이 좀 복잡다단하고 힘들기도 했는데 요즘에 메이븐을 써보니 jar 의존성 관리도 편해졌고요. 좌우지간 jar는 자바 프로젝트를 깔끔하게 정리해주는 파일입니다. 그런데 제가 몰랐던 jar의 여러가지 특징이 있군요. 예를 들면 1. JAR은 실행 파일이다. 2. JAR은 종속성 정보를 포함할 수 있다. 3. JAR은 암묵적으로 참조될 수 있다. 4. Java 6에서는 클래스 경로 와일드카드를 사용할 수 있다. 5. JAR에는 코드 이상의 것이 담겨 있다... 더보기
Apache Click 알아보기 [IBM DW 201008] 제가 항상 많이 했던 생각이 그리고 블로그에도 종종 썼던 내용이 "프레임워크" 다 좋은데 오히려 기술 적응의 난이도와 복잡성 때문에 역효과가 있다는 것입니다. 자바가 정말 많이 쓰이고 오픈소스 환경이 발달했기 때문일까요. 초기 하나의 JSP에 모든 로직을 담아 생기는 유지보수의 불편함을 없애기 위해 스트럿츠등의 프레임워크가 발전하더니 지금은 오히려 복잡하고 어려운 프레임워크를 보완하는 '간단한 모델을 사용하여 신속하게 웹 애플리케이션 작성' 하는 Apache Click 프로젝트가 생겼습니다. 한마디로 틈새시장 공략이군요~! 정말이지 잠깐 관심을 두지 않아도 개발자를 위한 다양한 프로젝트가 생성되는것 같습니다. 아파치 클릭은 그 추구하는 목표답게 어느 프레임워크보다도 무척 가볍겠지만 유닛 테스트등의 개발자.. 더보기
루비의 비밀 (레일스 VS 자바) 제가 한창 프레임워크에 관심을 가질 때 였습니다. 그때 회사에서 운좋게 두어가지 프레임워크를 만들고 있었죠. 회사에서 몇개 개발할 웹사이트에 쓰일 가벼운 프레임워크도 만들었습니다. 그때의 웹프레임워크는 스프링MVC의 기능을 이용해 만들었고 그럭저럭 잘 쓰고 있었습니다. 그러나 왠지 모르게 쓰기 불편하기도 했습니다. 질질 끄는 느낌이라고 할까요. 뭘 하나 수정하면 JSP, 클래스, XML파일등 여러 파일을 고쳐야 하니 지겹기도 했고, 특히 기억에 남는 점은 클래스 고치면 리로딩, XML 고치면 리스타트를 했는데 이때가 참 번거럽고 귀찮더군요. 진짜 좋은 프레임워크 구성 방식은 없을까, 웹 개발은 항상 짜증만 나야 하나, 이런 고민을 많이 했습니다. 그때 귀가 솔깃한 수식어를 단 어느 언어가 등장하더군요. .. 더보기
조금 더 객체지향적인 개발단계 - 수필 객체지향 옛날 간단한 사다리 게임 짜면서 취미생활 삼아 프로그램을 짜곤 했다. 그때는 단순히 언어 문법에 대한 지식과 로직 구현 능력만 있으면 프로그램을 구현할 수 있다고 생각했다. 그래서 프로그래머를 하면, 내가 하고 재미있어 하는 일 편하게 하면서 일하겠구나 라고 생각하곤 했다. 하지만 막상 프로그래머가 되어 보니, 프로그램 짜는 일은, 정확하게 말해 하나의 프로젝트는, 인간의 사회 생활 갖가지 요소가 동원되어 뭉친 복잡한 실타래와 같았다. 고도의 업무분석 능력, 커뮤니케이션 능력, 일정 관리 능력, 인력 관리 능력이 요구되었다. 어느 고참 개발자의 얘기를 들어보면 고급 관리자가 되면 정치싸움에도 능숙해야 한다고 했다. 나도 실제로 프로젝트를 경험해보니 실제 프로그램 구현 능력도 중요했지만, 업무담당자와의 커.. 더보기
SVN 강좌 (개발자의 무료 보험) *. 제가 지금 일터에 처음 들어왔을때의 일입니다. 그때 우리팀은 VSS를 쓰고 있었지만 버전관리자체를 잘 활용하지 않았습니다. 특히 제가 맡은 업무에서는 소스 버전이 엉키고 소스가 예전 버전으로 원복되는 문제가 있었습니다. 그때 내가 이슈를 제기하여 SVN을 쓰자고 주장했습니다. 그때 우여곡절 끝에 설득했습니다. 그때 팀원들을 위해 만든 문서입니다. SVN(소스 버전 관리)은 애자일 관련 기술중에서도 비교적 쓰기 쉬우며 가장 대중적이고 가장 필요한 기술이며, 개발자를 위한 무료이면서 강력한 보험과 같다는 생각입니다. 1. SVN 개요 1.1 버전 관리 시스템의 필요성 # 개발 버전과 릴리즈 버전이 섞이지 않고 쉽게 관리 할 수 있다. # 소스를 잘못 수정 했더라도 기록이 남으며, 되돌리기가 쉽다. # .. 더보기
아키텍처와 아키텍트 - 수필 객체지향 아키텍처란 단어는 산처럼 웅장하게 느껴지지만, 산속의 구름처럼 애매모호하다. 다른 객체지향 관련 용어처럼 어려운 용어로 우리를 불편하게 한다. 아키텍처의 시야는 ‘신’과 같다는 단서로부터 출발한다. 신은 위에서 아래를 내려다 보며 사람과 사물을 관찰한다. 그럴듯한 용어로 top-down view 라고 부른다. 아키텍처는 신이 사람사는 세상을 정밀하게 관찰한 결과물과 비슷하다. 아키텍처는 top-down view 관점에서 시스템의 구성 요소와 구성 요소들 사이의 연결관계를 분석한 기술적인 명세서이며 공학적인 청사진이다. 나는 나중에 내가 만들 아키텍처를 훌륭하게 만들기 위해 신의 눈을 갖기를 바랐다. 아키텍트란 단어는 고도의 전문가라는 이미지를 풍기지만, 이름만 화려하지 않을까라는 느낌도 준적이 있다. 이.. 더보기
객체와 컴포넌트 - 수필 객체지향 객체란 실체로 존재하는 대상/개념이며 고유명사이다. 객체는 세상에 유일하게 존재하는 모든 것들~이라고 정의했다. 나는 객체만 알면 되는 줄 알았다. 그런데 컴포넌트란 용어와 기술에 대해서도 알아야 했다. ‘CBD(컴포넌트 기반 개발) 개발 방법론’을 공부할때 나는 컴포넌트와 객체의 차이에 대해 햇갈려 했다. 객체와 컴포넌트에는 비슷한 개념이 들어있다. 오히려 객체와 컴포넌트에 비슷한 개념이 녹아서 햇갈려 했던 것 같다. 하지만 이 둘의 차이점도 명확하다. 컴포넌트의 정의는 독립적으로 배포되는 단위로 조립/교환이 가능한 응집도가 높은 소프트웨어 산출물이라고 한다. 컴포넌트는 좀 더 명확한 물리적인 결과물이다. 컴포넌트가 사람이 눈으로 확인할 수 있는 결과물이라면 객체는 사람이 눈으로 확인할 수 없는 작은 .. 더보기
UML로 객체지향 세계를 그리다. - 수필 객체지향 사람은 소통한다. 살기위해 소통하고 얻기위해 소통한다. 사람들이 얼굴보고 소통할때는 말뿐만 아니라 손짓, 발짓, 표정 그리고 알수 없는 미묘한 감성까지 힙을 합쳐 소통 한다. 그래서 사람들이 얼굴보고 소통할때는 자신이 전하고자 하는 뜻을 대부분 누수없이 전달한다. 그러나 과학 기술 영역에서는 소통의 어긋남이 조금이라도 발생하면 전체가 어긋날 수 있다. 섬세한 기록이 요구되는 과학 기술 영역에서 사람의 언어는 불완전한 소통 수단으로 전락한다. 그래서 과학 기술 영역에서는 사람의 불완전한 언어를 보완할 간결하고 명확한 언어를 쓴다. 수학은 간결함과 명확함으로 상징되는 과학의 언어이다. 수학은 인류의 발전을 우주로 이끌어 올린 로켓 엔진과 같은 힘을 주었다. 사실 수학은 나에게 어려움의 상징이긴 하지만 결국 .. 더보기
상속과 구성 - 수필 객체지향 시골의 아이들은 어렸을때 물가에서 놀면서 형들이 약간만 알려주면, 저절로 헤엄치기를 배운다. 누가 정석으로 가르쳐 준것도 아닌데 잘도 헤엄친다. 상속은 시골 아이들의 야생 헤엄치기와 같다. 객체지향에 대해 약간의 지식만 익히고 사용할 줄 알면 상속을 습관처럼 저절로 쓰기 때문이다. 아이들의 야생 헤엄치기는 물가에서 놀기는 좋다. 그러나 수영 전문가가 볼때는 비효율적인 동작의 조합으로 조잡해 보인다. 만약 아이들이 물가에서 놀기위해 헤엄치기를 한다면 모르지만 좀더 전문적으로 수영을 하고 수영 대회도 나가고 짝사랑하는 영희에게 멋진 폼을 보여줄라면 지금의 헤엄치기는 문제가 있다. 상속은 복잡하지 않은 프로그램에서 대충 사용하기는 좋다. 그러나 객체지향 전문가가 볼때 상속을 무작정 사용하면 비효율적인 코딩이 .. 더보기
환상을 꿈꾸며, 아이폰과 안드로이드 헬로월드를 찍어보고 누구나 환상을 꿈꾸어 봅니다. 예쁜 여자와 데이트 하기를 바라고, 멋진 차를 모는 환상도 꾸고, 김연아처럼 우아하게 피겨하는 환상도 꾸지요. 환상은 마치 생각의 초콜릿입니다. 달콤하지만 곧 녹아버립니다. 저는 옛날부터 프로그래밍에 대한 바람이 있었습니다. 마치 레고 블럭을 쌓듯, 퍼즐 게임을 하듯 지적인 놀이로서의 프로그래밍과 고된 등산 끝에 성취감 같은 즐거움을 얻기를 바랐습니다. 처음 아마추어적인 개발을 할때는 이런 즐거움을 얻었습니다. 그러나 막상 현장에 투입되니 이런 즐거움은 사라지고 온갖 스트레스에 노출되지요. 군대에 비유하자면 멋진 군인을 동경해 고된 훈련을 마쳤더니 마치 라이언 일병 구하기 상륙작전 처럼 비피린내나는 현장이 기다리는 것과 비슷할 것 입니다. 그래서 옛날 블로그에 왜 그럴까 하.. 더보기
상속과 폴리모피즘 - 수필 객체지향 객체지향 대부분의 장점은 상속과 폴리모피즘으로부터 출발한다. C등의 절차지향 개념을 공부한 사람이 처음 상속과 폴리모피즘 개념을 배울때도, 난생 처음 프로그래밍을 배우는 사람도, 상속과 폴리모피즘 개념을 이해하는데 어려움을 표시한다. 그러다가 결국 나는 절차지향이 좋아~하며 다시 익숙한 방식의 프로그래밍으로 돌아가거나, 상속과 폴리모피즘 개념을 이해하지 않은체 객체지향 언어지만 절차지향적으로 프로그래밍을 하곤 한다. 그러나 상속과 폴리모피즘은 마치 대한민국 젊은 남자의 군대생활 처럼 반드시 거쳐야 하고 반드시 이해해야 하는 과정이다. 상속은, 스승과 제자사이와 비슷하다. 스승은 제자에게 자신의 모든 기술을 전수한다. 제자는 스승의 기술을 고스란히 체득한다. 또는 스승의 기술을 완전히 습득하기 전까지는 스.. 더보기
캡슐화와 정보은닉 - 수필 객체지향 캡슐화란 용어는 용어의 뜻을 이해하는것도 두루뭉실하지만 그 쓰임새도 애매모호하다. 나는 몇년 경력이 되어서도 캡슐화란, 객체의 속성을 private로 만들어 이것을 get/set 메소드로 호출하는 방법으로만 이해했다. 그런데 저 객체지향 캡슐화 이론과는 다르게 실제 프로그래밍에서는 객체의 속성을 public으로 만들어 직접 호출하는것과의 차이점을 느끼지 못했다. 오히려 private로 선언하면 클라이언트에서 저 속성을 가져올때 get/set을 쓰느라 코드 보기가 더 지저분해서 좋게 생각하지 않았다. [삽화] 캡슐화는 객체지향 개발의 중요한 장점중에 하나이지만, 나는 상속과 구성 폴리모피즘의 장점은 이해하면서 유독 캡슐화의 장점을 이해하지 못했다. 캡슐화의 정의와 캡슐화가 왜 좋은지 따로 공부해야 했다. .. 더보기
오버로딩과 오버라이딩 - 수필 객체지향 오버로딩은 마치 맥가이버칼의 부속품과 같다. 같은 몸통(메소드 이름)에서 꺼내는 위치만 바꾸면(인자값) 다양한 기능이 발견된다. 오버로딩은 같은 이름의 메소드의 인자값(=시그네처)를 다르게 주어 개별적으로 개발자 입맛에 맞게 호출할 수 있는 방법이다. 내 경험으로 오버로딩은 생성자 호출에서 특히 많이 쓰인다. 처음 객체를 생성할때 오버로딩된 다양한 생성자들의 용도를 파악하여, 써야 되는 상황에 알맞게 해당 객체를 사용할 수 있다. - 생성자 오버로딩 예제-병아리 부화 클래스 public static void main( String[] args ) throws Exception { ….. Chick chick1 = new Chick(); // 1 Chick chick2 = new Chick(“먹이”); /.. 더보기
인터페이스 - 수필 객체지향 인터페이스(Interface)는 산의 맑은 공기와 같다. 등산할때는 항상 맑은 공기를 마실 수 있지만, 맑은 공기의 고마움은 쉽게 인식하지 못한다. 등산을 마치고 도시속에 찌든 공기를 마시고 기침을 콜록일 때서야 그 고마움을 깨닫곤 한다. 인터페이스는 바다의 해삼과 같다. 해삼은 인간에게 가장 이로운 영양을 주는 해산물로, 해녀가 깊은 바닷속에 잠수해야 겨우 몇마리 건져올리는 해산물이다. 인터페이스는 산의 맑은 공기처럼 늘 객체지향 개발자와 함께 하는 존재이며, 무의식중에 쓰이는 존재이지만, 인터페이스의 고마움을 쉽게 인식하지 못한다. 개발을 마치고 어지럽기만한 코드를 디버깅 하다가 인터페이스 형식으로 리팩토링 해서야 그 고마움을 깨닫곤 한다. 인터페이스는 바다의 해삼처럼 객체지향 요소 중에서 개발자에게.. 더보기
객체지향을 이롭게 하는 5가지 특징, 수필 객체지향 + 객체지향 생태계 우리는 객체지향 자연 속에 있다. 객체는 나무이며 애플리케이션은 숲이다. 낮은 해충(결합도)과 높은 영양(응집도)으로 유명한 객체지향 지역에 나무를 심고 울창한 숲을 기대한다. 땅은 객체지향 그 자체이다. 클래스 씨앗을 땅에 심는다. 씨앗이 생성자 통해 발아되어 객체가 되었다. 나무의 형태가 갖춰졌다. 속성은 줄기와 같다. 속성은 나무를 지탱하고 그 존재를 지키고 세상에 알리는 나무의 중심이다. 메소드는 가지와 잎과 꽃과 열매와 같다. 울창한 가지와 잎으로서 나무 자신과 산과 지구와 생물을 지켜주면서 자신의 존재를 뽐낸다. 이 나무들이 모이고 커져서 모든 생물을 이롭게 하는 거대하고 우람한 숲이 될 것이었다. 객체는 나무와 같아야하고 어플리케이션은 숲과 같아야 한다. + 객체지향을 이.. 더보기
속성, 메소드, 생성자 - 수필객체지향 + 속성 속성을 찾는 일은, 보이지는 않지만 생물이 생존하는데 꼭 필요한 적혈구등의 요소를 현미경으로 관찰하는 생물학자와 같아야 한다. 속성은 객체 고유의 특징을 정의 할 수 있는 단어로 드러낸 것이다. 예를 들어 자동차에는 ‘움직일때의 빠르기’라는 속성을 속에 품고 있다. 만약 자동차를 객체로 모델링 한다면 기본적으로 ‘움직일때의 빠르기’라는 속성이 스며들어 있기 때문에 이 속성을 정의 할 수 있는 단어로 밖으로 드러내야 할 것이다. ‘움직일때의 빠르기’는 ‘속도’ 라는 단어로 정의 된다. 그래서 자동차 객체 모델링을 통해 ‘속도’라는 속성이 문서나 프로그램을 통해 드러나게 될 것이다. 객체의 속성을 찾는 일은 객체 안에 숨겨진 고유 특징을 찾아내는 일이기 때문에, 그 객체에 대해 잘 알고 있어야 한다.. 더보기
dW Live 세미나 ‘웹 개발 다반사’, 여러 발표주제들 최근 소개해 드린대로대로 12월 5일 (토) 오후 1:30 ~ 6:00 도곡동 군인공제회관 23층 온디맨드홀에서 페챠쿠차(Pecha Kucha)란 발표형식으로 '웹 개발 다반사' 란 주제로 세미나가 열립니다. http://www.ibm.com//developerworks/kr/event/seminar/dwlive_1205/index.html 페챠쿠차란 발표형식을 다시 설명 드리면 15장의 슬라이드를 장당 30초씩 발표하는 방식입니다. 최근 최종 발표 주제가 확정되었다고 하네요. Pecha Kucha 최종 선정 결과 * 괜찮은 오픈 API 제공하기 + VLAAH API 소개 - 홍민희 * 봄싹 싸이트(http://springsprout.org) 개발 협업 방법 및 사용 기술 - 백기선 * 코드 품질 포탈 .. 더보기
웹 개발 다반사, 웹 개발도 즐겁게 할수 있다~ 어떤 사물을 생각하면 그 사물과 연관된 이미지가 즉각 생각나곤 합니다. 예를들어 애플사~ 하면 진취적 창의적 이미지가 떠오르고, 우리나라 통신사나 모자동차 회사를 생각하면 독과점 횡포 기업이란 이미지가 떠오릅니다. 이효리하면 섹시한 이미지가 떠오르고 박지성 하면 성실한 이미지가 떠오르죠. 하얀 눈의 이미지는 어떤가요. 깨끗하고 낭만적이고 순수한 이미지가 떠오르실 겁니다. 그러나 나에게 눈은 지독한 삽질, 지독한 노가다라는 강렬한 이미지로 남아 있습니다. 저는 산에서 군복무를 했고 지독하게 눈을 치워댔습니다. 눈이 무섭고 싫었습니다. 그 순수한 눈에게서 이런 나쁜 이미지를 느끼다니 삭막하고 안타깝죠. 근데 군 제대한 후에는 눈 치울 걱정은 할 필요 없더군요. 이제 더 이상은 삽질은 없을 것 같았습니다. 그.. 더보기
올드스쿨 또는 뉴스쿨 프로그래밍 금요일 퇴근하는길에 직장 동료와 1층으로 내려갔다. 동료가 묻는다. "김대리님은 주말에 뭐하세요." "저는 주말에 수영하고 뒷산타서 집에와서는 그냥 쭈욱 쉬어요~ 수영이 유일한 낙이에요~" 라고 말했다. 그야말로 수영이 근 1년간 유일한 큰 즐거움이다. 나는 20대 초반 4년을 부사관으로 입대하느라 군대 촌구석에서 몽땅 보냈다. 그때도 지금의 수영만큼 고되고 외로운 생활을 잊게 해주는 나의 유일한 낙이 하나 있었다. 그것은 바로 '힙합' 이란 음악장르로 힙합 음악을 듣거나 어설프게 랩을 읇조리면 나름대로 고단함을 잊을 수 있었다. 여기까지는 괜찮은데 어느날 내가 아주 고약하게 빠져든 힙합 분야가 있었다. 그것은 바로 '비보이' 라는 힙합 장르중 하나다. 비보이 배틀 영상을 TV로 본적이 있는데, 하늘을 .. 더보기