'잘'에 해당되는 글 18건

허니몬에 관한 보고서/허니몬의 물병편지
  • 오늘은 가을비가 내릴 가능성이 높다고 하는군요. ^^ 여러분!! 힘내세요!! 소녀시대가 부릅니다~!! 힘내!!(아침인사, 오늘 일기예보, 오늘 하루 즐겁게 보내세요. ^^)2009-10-13 07:15:33
  • 이대통령, 카리스마적 - 단정적 어휘 즐겨 사용, 이라는 기사를 보는데… 전에 본 내용이 떠오른다. 말 속의 두 얼굴, 갈등과 소통. '카리스마적 - 단정적 어휘 사용이 늘어날수록 갈등은 커져간다.' 라는 내 개인 공식에 딱 부러지게 맞는걸.(내가 생각하는 리더는, 주변의 이야기에 귀를 기울이고, 그 이야기에 심사숙고하고, 최대한 자신의 말을 아끼는 것이다. 선심성 발언, 과시적 발언은 그 효과가 짧다.)2009-10-13 07:59:30
  • 조대협님의 4C(Connection, Communication, Collaboration, Contents) Model, Enterprise 2.0 에 대한 쉬운 설명. ^^ 역시!! ㅡ_-) 고수!!(북마크, Enterprise 2.0 에 대한 이해, 4C Model)2009-10-13 08:33:30
  • 아이폰의 가능성을 제로로 만드는 KT요금제라는 글을 보면, 아이폰이 출시되지 않을 가능성도 높다는 생각을 해봅니다. 차라리 윈도폰과 안드로이드폰이 더 매력적이기까지 하군요. ㅡ_-)> 다음폰은 상징적 의미를 가지며 사라져갈듯…. 우리나라 이통사의 폐쇄성 + 횡포2009-10-13 08:55:58
  • 인터넷에서 문자보내려고 VBox 에서 윈도우 7 실행시키고 익스플로러로 LGT 홈페이지 접속해서 보내야한다. ㅡ_-);; 파폭으로 해보려 했더니, 엉망이군!!(비IE 사용하는 사용자의 번거로움. 그래서 잘 안가게 된다. ㅡ0-);;)2009-10-13 09:31:29
  • 우분투에서 곧 우분투 9.10이 나오는군요. ^^ 우분투 판올림(업그레이드) 시 알아두면 좋은 점들. 확실히 우분투는 6개월마다 발전해가는 좋은 운영체제라고 생각을 합니다. ^^(북마크, 우분투, ubuntu, 9.10, 10월 말에 9.10 버전 출시 ^^)2009-10-13 10:47:17
  • 오라클이 언젠가는 IBM을 인수하려고 할까? 삼키고 나면 배터지는 아나콘다 꼴이 될지도 모른다. ㅡ_-);;(아직은 먼나라 이야기...일까? +_+) 오홍~ 오라클의 썬 인수로 인한 여파가 우리나라에 미치는 시기는?)2009-10-13 10:58:49
  • 폴리테이너, 소셜테이너. 김제동의 눈물, 그는 정말 소셜테이너가 되었다. 흠. 뭔가 울컥하는데? 스타골든벨이 시청률이 나쁘지 않은걸루 알고 있는데… ㅡ_-);; 일밤보다 낫잖아?(김제동 퇴출?, 가을개편? 그냥 그렇다고 해두지, 뭐. ㅡ_-)> 하지만 뭔가 찝찝함은 사라지지 않는다.)2009-10-13 11:17:49
  • 오늘은 일제고사가 있는 날, 일제고사 미참가 학생은 결석처리, 미참가 지도 교사에게는 처벌. ㅡ_-)> 부정부패 저지른 교사는 훈방처리 하고, 자신들의 교육정책에 반하는 자들에게는 철퇴를 휘두르는 교육부… 공교육을 강화한다는 핑계로 사교육을 조장하는 그들.(일제고사, 12년 개근에 빛나는 나지만, 초, 중학교 일제고사를 봤다면, 그냥 놀러갔을 듯. @_@);;)2009-10-13 13:30:22
  • 만약, 초등학교 때 일제고사를 봤다면… 여러분은 어떻게 했을까요?(미투지식인, 미투상상, Why~ 말고 If~!!!)2009-10-13 13:39:56
  • 만약 ~~라면 , 나는 ~~ 한다. 많은 미투인들 의 수만큼이나 다양한 미투상상을 만들어 볼 수 있을 것 같다… 라고 생각함. 후후후.(미투상상, 오늘 읽은 글을 보며, 새로운 유행 만들기. +_+)b IF ~ Then ~.)2009-10-13 13:53:14
  • 흠 결국 티맥스 윈도 개인용 출시일정은 2010년으로 연기되었군요. @_@)> 차근차근 준비해서 출시해보시길 바랍니다.(티맥스 윈도, 출시일 연기, 시도 자체는 나쁘지 않다고 생각함. 국산운영체제도 필요하다고 생각하니까.... 차근차근 준비하시길 ^^)2009-10-13 15:07:27
  • 울동네는 이제 비가 내릴 듯 하군요… +_+)b(공기는 이미 싸늘하군요. ^^;)2009-10-13 18:06:55
  • ㅡ_-) 어머님이 모아두신 시큼한 깍두기 국물에 국수를 말아먹어야겠군용. 훗훗… 국수 정도야 기본으로 끓이는 나는, 음식하는 남자!!(ㅡ_-)~ 다만... 양 조절은... 잘못하는 나는 음식하는 남자!!)2009-10-13 18:13:35
  • 리눅스 버전 크롬 설치중. ㅡ_-)~ 과연 기대에 부흥할 것인가!?(우분투, 리눅스 크롬, 불여우 3.5 보다 안정적일까나~?!)2009-10-13 22:47:26
  • 기대 이상의 속도… ㅡ_-)!! 메모리 잡아먹는 것도 비슷비슷!! 일단은 계속 써봐야겠음. ^^2009-10-13 22:57:11
  • Oracle OpenWorld 2009 - Day 2 Report, ㅡ_-);; 지금의 나로서는 봐도봐도 무슨 말인지 모르겠지만… 일단은 책갈피 표시!!(책갈피, Oracle, openworld, report.)2009-10-13 23:03:10
  • ㅡ_-)b 정말 빠르군요!! 우훗!!! 동감!!!2009-10-13 23:21:07
  • 세상에는 전문가들이 사용하는 전문용어와 줄인용어가 너무 많다. ㅠㅅ-)~ 오늘부터 하나씩 단어사전 이란 태그로 수집작업을 해야겠다.(단어사전 태그 사용하기)2009-10-13 23:32:57
  • 괜찮은 사이트 발견, Global_Sources, 전자엔지니어 RSS 서비스도 제공해줌. 흠… +_+) World Best Tech Portal IDG 요기도 괜찮군요.(북마크, 책갈피, ㅡ_-) 정보의 바다 속에서 이왕이면 선별해주면 더욱 좋지.)2009-10-13 23:36:43
  • 친환경 소프트웨어 수요 높아질것!? ㅡ_-);;; 요즘 과도하게 친환경, 그린IT를 붙이는 느낌이야…. IBM 의 Smart planet 캠페인도 그렇고… @_@);; 핵심대목은 원가절감 및 환경영향을 최소화 하는것!?(단어사전, 친환경 소프트웨어, 아직 정확히는 모르겠어~ >ㅅ<)/ ㅎㅎ)2009-10-13 23:44:59
  • 요즘… ㅡ_-);; 블로그에 글은 안쓰고… 미투데이에 글을 끄적거리면서 남긴 것으로 블로그를 도배하고 있음. OTL… 아직 정신 집중 및 긴장이 안되고 있음.(자기반성, 언능언능!! 출근하고 싶어요!! ㅠㅅ-))2009-10-13 23:48:09
  • 2009 한국전자산업대전이 2009.10.13. ~ 2009. 10.16. KINTEX 에서 열립니다. @_@)> '국제반도체대전(iSEDEX)', '국제정보디스플레이전(IMID)' 와 '국제IT융합전시회'가 함꼐 열린다고 함. 입장료 5000원.(미투뉴스, 가야하나, 말아야 하나. 사전등록은 진작에 끝났고... 일산까지 가기는 힘들고.)2009-10-14 00:02:09
  • CRM(Customer Relationship Management : 고객관계관리), 텀즈 - CRM, Wiki - CRM. 기업이 잘 정리된 방법으로 고객관계를 관리해 나가기 위한 방법론이나 소프트웨어 등 지칭. 간단히 정리하면 단골고객관리!!?(단어사전, CRM - Customer Relationship Management, 단골 고객 관리)2009-10-14 00:14:18
  • 이제 깨달았다. ㅡ_-)> 구글 검색어 입력부분들의 글씨가 커져있다는 사실을… 은근히 편한데!?(구글 검색, 키워드 입력 폰트 크기 조금 크게, 좋다. ^^)2009-10-14 00:18:01

이 글은 허니몬님의 2009년 10월 13일에서 2009년 10월 14일까지의 미투데이 내용입니다.

허니몬에 관한 보고서/허니몬의 물병편지
  • 눈이 시릴만큼 푸르른 하늘..!! 어젯밤에는 그렇게 비가 내리더니!!(me2mobile 변덕쟁이 가을 하늘!!)2009-10-04 11:35:16
  • 영화 써로게이트를 봤다. 개인이 써로게이트를 통해 자신의 인형을 조종하는 시대.. 곁에 있지만 멀게만 느껴지는 사람들. 보고듣고느끼는 것들을 기계에 맡긴 채 살아가는 삶이 인간다운 삶일까??(me2mobile me2movie 또다른 디스토피아적인 세상, 마초맨 브루스 윌리스의 또다른 모습^^)2009-10-04 13:01:14
    써로게이트
    써로게이트
  • 문득 스카이라이프 안테나들을 보며 드는 생각. ㅡ_-);; 건물마다 안테나 하나씩만 설치한 다음에 거기서 분배기로 하면 안되나? 뭐하러 저렇게 설치비를 들이고 보기 좋지도 않은데 가구마다 안테나를 달고 그러지?(@_@);; 낭비는 낭비대로 하고, 외관은 외관대로 망치고....)2009-10-04 14:27:41
  • 연휴가 이렇게 끝나가고 있군요. ㅡㅅ-)~ 이제 마지막 남은 연휴는 크리스마스 뿐인가요!?(연휴의 끝, 내일은 출근을 위한 업무 협의, 새로운 낯선 장소에 대한 긴장감이 슬금슬금 커져간다.)2009-10-04 21:24:22
  • ㅡ_-)> 이제… 운동을 시작해야겠다. 쉬는 동안, 추석연휴동안 너무 많은 에너지들을 내 안에 담아두었다. 무겁게 느껴질만큼….(다이어트 시작, 야식도 그만~ 음주는 적당히~ 운동은 열심히!!)2009-10-04 21:26:29
  • 내일부터가 본격적인 10월의 시작…!! 이라고 말하고 싶군요. ^^ 모두모두!! 힘내세요. 나는 드디어 드디어!! 일을 하게 되는 걸까요!? 의욕만 앞세우다가 너무 설치지 않도록~ 릴렉스~ ^^(모두모두 굿나잇!! ^^)2009-10-05 00:04:45
  • ㅡ_-)> 단지 미친수를 증가시키기 위한 친구 신청은 거절합니다. 난 누군가의 미친수를 채워주기 위해 미투데이를 하는 게 아니니까요. 미친 000 명 달성… 그런 거 별루에요.(미투데이, 미친수로 자신을 자랑해봐야 당신이 빛나지 않습니다. 자기 자신을 솔직하게 표현하면 미친은 자연스럽게 찾아오니까요.)2009-10-05 00:07:31
  • '서울 디자인 올림피아드 2009(Seoul Design Olympiad 2009)' 2009.10.09. ~ 2009.10.29. 장소 : 잠실종합운동장 + 서울도심 + 한강공원(SDO, 서울 다지안 올림피아드, 홈페이지, 다른 건 괜찮은데, 플래쉬와 이미지로만 꾸며서는 검색엔진에 잘 안뜬다!? 국내용 행사로 그칠거야!?)2009-10-05 00:23:10

이 글은 허니몬님의 2009년 10월 4일에서 2009년 10월 5일까지의 미투데이 내용입니다.

허니몬에 관한 보고서/허니몬의 물병편지
  • 이제 카메라를 들고 사진 찍으러~~ +_+)/2009-09-25 05:40:27
  • 이제 새벽에도 많이 쌀쌀하군요…^^; 다들감기조심!!하세요(me2mobile 난 여유로운 백수!!)2009-09-25 05:52:40
  • 가는날이 흐린날!! 오늘은 행운이 따르지 않는 날!!(me2mobile 잇힝!!)2009-09-25 06:05:16
  • 가을 코스모스가 활짝 피었군요..^^(me2mobile 이뻐요!!)2009-09-25 08:22:59
  • 오늘 좀 일찍일어났다고.. 졸립다.(me2mobile ㅡㅅ-)>그렇다고 잘 수는 없는 일!!)2009-09-25 08:28:40
  • 잘 다녀왔습니다. ^-^)>… 나는 이상하게 날을 잡으면 왜 그리 날이 흐리거나 비가 내리는지… OTL… 알수 없는 이 불운한 기운. // 여러분은 즐거운 하루 보내세요.(아침 출근하는 이들과의 역주행은 조금 부끄러운 느낌을 준다. *^^*)2009-09-25 08:45:33
  • 그러게요… ㅡㅅ-)> 세금 적게 내고, 기름 덜 먹고, 주차공간 덜 차지하고 유지비 적은 경차이거늘… 경차사랑 나라사랑 세계사랑 자연사랑이거늘!!(경차 좋아하는 남자, 이렇게 지껄여봐야 똥.덩.어.리.들께서는 찌질한 것들이 돈이 없으니 그러겠지... 하겠죠?)2009-09-25 10:40:44
  • 코스모스 핀 풍경 : #1 / #2 / #3 / #4 / #5 / #6 / #7 / #8 / #9 / #10 / #11 / #12 / #13 / #14 / #15 / #16 / #17 / #18 / #19 / #20 / 요건 보너스(금요일, 구리시, 코스모스, 구리시민한강공원, 가을은 그렇게 성큼 곁으로 다가와 있었다.)2009-09-25 10:57:40
  • 방금 슬픈 광경을 목격했다. ㅡ_-)> 면접보자고 한 회사의 로고가 오리온 제과의 그것을 그대로~ 하나도 바꾸지 않고 사용하는 광경…. 갑자기 슬퍼지는데….(로고는 그걸 보는 순간 그 회사를 떠올릴 수 있는 상징과 같은 것인데... 조금 더 욕심을 부려서라도 기억하기 쉽고 이해하기 쉬운 로고를 가지려는 노력을 아끼지 말아줘....)2009-09-25 18:22:02
  • 이시간이 되니 배가 고프다. ㅡ_-)>(흠... 잡채밥을 해먹을까?)2009-09-25 21:46:21
  • 페이스북 <-> 미투데이 <-> 트위터, twi2me를 어느 분이 개발했더라… @_@)> 흠… 어차피 트위터를 많이 쓰지를 않아서 나에게는 크게 상관없는 부분이기는 하지만… 이런 단점도 있기는 있군요. 역시 많이 사용을 해봐야 알 수 있을 듯…(페이스북, 트위터 모두 나에게는 낯설군요. 잇힝~!! 페이스북, 미투의 트위터화라.... @_@))2009-09-25 23:21:39
  • 여러분, 모두 굿나잇. ㅡ_-)> 배부르니까 슬슬 졸리네요~~(아름다운 밤이에요!! ㅡ_-)~ 우훗....)2009-09-25 23:55:19

이 글은 허니몬님의 2009년 9월 25일의 미투데이 내용입니다.

허니몬에 관한 보고서/허니몬의 물병편지
  • 좋은 아침입니다. 오늘하루도 활기차게 보내시면 즐거운 주말이 여러분을 가디라고 있습니다!! 흠… 오늘 오후에는 예비군 훈련이 저를 기다리고 있군요.(4시간 짜리 교육 받기도 귀찮네... 잇힝.... ㅡ_-)> 전투모 빌리는 것도 깜빡했고... 마지막 훈련에 하나 사게 되는군.)2009-09-18 08:44:23
  • 있지도 않은 국민은행 카드 사용료 연체는 뭥미… -_-);; ㅎㅎ…전화번호 062-9436-016744 이 번호는 어디인가!! 중국인가!?(이런 어설픈 보이스 피싱에 당할리가 없잖아.... 흠...)2009-09-18 11:49:30
  • 차산리 가는 길은 언제나 짜증 만빵..(me2mobile 교통비 지원도 없을 거고... 짜증이 밀려온다..!!)2009-09-18 13:00:29
  • 예비군 끝나고 나서 맥콜을 한잔마시고 집으로 가는 버스에 올랐습니닷!!(me2mobile 이로서 예비군졸업!! 2년간의 여유!!)2009-09-18 16:21:06
  • 오라클에서 OCP 자격증이 드디어 도착했다. 시험 합격하고, hands-on 패스하고 근 한달만에 도착한 자격증. 훗…(ㅡ_-);; 하지만 여전히 오라클 DB에 대해서는 문외한에 가깝다. 차근차근 공부하기보다는 덤프에 의존했을 뿐이니까... 앞으로 차근차근 준비해야지.)2009-09-18 17:16:55
  • 군복만 입으면 기운빠지는 이 알수없는 기운은 무엇인가…. OTL… 피곤해….(졸립기도 졸립구나... 잇힝!!!)2009-09-18 20:10:21
  • 많은 사람들이 Windows7의 출시를 기다리고 있다. 하지만, 내가 기다리는 건 Ubuntu 9.10버전. CD 한장으로 오피스, 이미지 편집, 네트워크, 프로그래밍이 한큐에 처리 가능함. 점점 편리함이 늘어나고 있음… +_+)>(나는 남들과는 조금 다른 길을 걸어가고 싶다는 삐딱선!! 설치/삭제, 시탭틱 꾸러미 관리자, 설정 내용등의 모든 설정을 통합하는 '우분투 소프트웨어 스토어'도 선보일 예정. 앱스토어와는 다름.)2009-09-18 22:49:12
  • 밤이 깊어가는군요. ^^; 내일은 봄싹의 스터디가 있어서 일찍 자야할텐데… 이러고 있네요. 오랜만에 보는 슈퍼내츄럴은 이해가 안가고… ㅡㅅ-);; 흐음…(갑자기 밴드 오브 브라더스가 다시 보고 싶어졌음. ㅎㅎ...)2009-09-19 01:05:23
  • 흠… 역시 노트북에서 이클립스를 실행하려고 하면… 메모리 1GB 이상은 유지를 해야하는가보군요…. @_@)> 당분간은 이름모를 내 노트북으로 버텨보려 했는데… 약간의 업데이트가 필요해지는군요.(CPU : Core2Duo T5650(1.6GHz), Mem : 1GB, HDD : 120GB, Inter 965G, 한번 떨궈서 백스페이스가 잘 안먹지만 그래도 쓸만한 13인치 와이드,)2009-09-19 01:19:44
  • 뒤늦게… 노트북의 윈도우 업데이트를 진행중입니다…. 이녀석 때문에 쉽게 잠들 수가 없군요…. ㅡ_-);; 우분투에서는 관리자 권한 부여하고 업데이트 명령 내리면, 의존성 확인해서 자기가 다 알아서 업데이트 해주는데… 윈도우는 툭하면 권한 설정 및 확인 요청…(우분투, 지원하는 드라이버만 늘어난다면, 충분히 운영체제로서의 재미가 생긴다. 비스타에서나 지원하던 Aero 기능은, 이미 예전에 우분투와 다른 리눅스 운영체제에서 beryl 이라는 3D 가상데스크탑으로 구현되었던 기능. 더 화려함.)2009-09-19 01:28:21
  • 미친, 여러분. 모두모두 굿나잇!! ^^ 저는 노트북… 하드 트레이닝도 시킬겸해서 ㅎㅎ 켜놓고 잠자리에 들어야겠습니다. 어차피 알아서 절전모드로 돌아가지만….(우분투, 설치지 스왑 영역은 컴퓨터가 가지고 있는 물리적 메모리의 4배로 설정해주면 절전모드, 최대절전모드 사용시에 정상적으로 시스템 복귀가 됩니닷.)2009-09-19 01:29:55

이 글은 허니몬님의 2009년 9월 18일에서 2009년 9월 19일까지의 미투데이 내용입니다.

허니몬의 IT 이야기/프로그래머, '코드 엔지니어'

  잘 만들어진 코드란 요구사항을 정확히 만족하는 코드이다. 그런데 현실에선 요구사항들이 끊임없이 변하기 때문에 만족시키기란 쉽지 않다. 결론적으로 변화하는 요구사항을 안정적으로 잘 동작시키는 코드가 잘 짠 코드라고 말 할 수 있다. 그런 의미에서 객체지향이 관심의 대상이 되고 각광받는 이유는 구조적 프로그래밍으로 대변되는 기존의 방식들에 비해 요구사항을 보다 유연하고 안정적으로 만족시키기 때문이다.


개발하기에 가장 좋은 방법은 수준 높은 개발자들 여럿이서 서로 원하는 수준에서 활발히 커뮤니케이션을 하면서 일하는 것이다. 하지만 우리가 일하는 현실을 돌아보자. 회사 내에서 모든 개발자가 같은 수준에서 개발할 수는 없다. 중급 개발자와 초급 개발자가 똑같은 수준에서 개발을 할 수는 없을 것이다.


통일성이나 수정의 용이성 같은 말은 사실 아주 쉬운 의미이다. 함수들의 공통점을 묶고 나아가 클래스간의 공통점을 묶고 컴포넌트간의 공통점을 묶고 이렇게 잘 묶어서 정리하다보면 그게 바로 객체지향 프로그래밍이고 컴포넌트 프로그래밍이다. 물론 프로그램의 크기가 커질수록 묶는 개념도 커지고 요구사항이나 제품의 방향에 따라 고려해야할 것도 많아지지만 언제나 기본에 충실하라. 공통점 묶기가 객체지향의 초석임을 잊지 말자.


공통점 묶기와 조금만 알기는 객체지향 언어에서 상속, 다형성, 캡슐화보다 더 중요한 개념이다. 공통점을 묶고 조금만 알기 위해 노력하다 보니 상속, 다형성, 캡슐화가 필요하게 되고 더불어 추상화(Abstaction), 일반화(Generalization)라고 세분화(Specialization)도 이루어지는 것이다.

  모든 이론이나 개념은 경험적 발전과 필요에 의해 탄생한 것이고 왜 필요하게 된 것인지를 이해하는 것이 단순히 그 정의와 내용을 공부하는 것보다 훨씬 중요하다. 객체지향의 결정판이라고 알려진 디자인 패턴을 어렵게 느끼는 이유 중 하나는 경험의 산물로 보지 않고 공부해서 익혀야 되는 것으로 인식하기 때문이다. 또 캡슐화에 관해 모든 변수를 반드시 private으로 선언해야 한다는 법이 있는 것은 아니다. 모든 개발자가 어떤 변수는 직접 접근하고 어떤 변수는 접근하면 안된다는 것을 안다면 왜 안되겠는가? 하지만 현실적으로 모두가 똑같은 지식과 레벨에서 개발할 수 없으므로 언어가 이런 점들을 지원해주는 것이다.

  언어는 개발자의 실수를 언어가 최대한 막아주어 생산성을 높이는 방향으로 발전한다는 점을 기억하자.


  모든 클래스는 하나의 책임만을 가진다.


  "이 클래스가 무슨 일을 하는 클래스입니까?" 라는 질문에 "이 클래스는 A라는 일을 합니다." 라고 간단히 대답할 수 있어야 한다. "이 클래스는 맑은 날엔 A라는 일을 하고 비오는 날엔 B라는 일을 하고 안개 낀 날에는 C라는 일을 합니다."라고 대답한다면 클래스의 의미를 정확히 파악할 수 없다. 우리가 클래스를 만드는 이유가 관련된 데이터를 하나로 묶어서 이해하기 쉽도록 하는 것인데 클레스가 너무 많은 책임을 가지면 이해하기가 쉽지 않다. 만약 이렇게 여러가지 책임을 가져야 한다면 클래스를 나눌 것을 강력 추천한다. 객체지향에서 제일 어려운 일 중 하나는 관련된 정보로만 클래스를 구성하는 일이다. 변수 하나, 함수 하나를 넣을 때 "과연 이 기능이 이 클래스에 들어가는 것이 맞을까?"에 대해 고민해야 한다. 클래스 하나가 이일 저일 다하게 되는 신(GOD) 클래스가 된다면 그건 그냥 거대한 코드 덩어리일 뿐 어떠한 방법론의 코드도 아니다.

  클래스는 하나의 책임만을 가진다라는 대명제를 중심에 놓는다면 상속으로 이루어진 클래스 트리 전체는 하나의 책임으로 묶인다고 볼 수 있다. 이런 이유로 Java는 단일 상속만을 지원하지만 부족함이 없는 것이다(Java의 상속은 extends 키워드를 사용한다).


  인터페이스 상속(Java에서는 implements)에 대해 알아보자. 앞서 클래스는 하나의 책임을 가짐과 동시에 상속받는 클래스 트리는 하나의 책임으로 묶여진다고 이야기 했다. 하지만 C++의 다중 상속이나 Java의 인터페이스 구현은 필요하기 때문에 존재하는 것이다. 여기서 혼란이 올 수 있다. 두 클래스에서 상속을 받으면 상속받은 자식 클래스는 두 개의 책임을 지는 것이 되니 하나의 책임을 지는 룰에 위배된다고 생각할 수 있다. 하지만 클래스 상속과 인터페이스 상속은 그 의미가 분명히 다르다. 클래스 상속은 분명 부모와 자식간에 같은 책임을 가지지만 작동하는 형태가 다른 것을 의미한다. 반면 인터페이스 상속기능을 추가하거나 클래스 간의 통신을 하기 위한 방법을 제공한다는 의미이다.

  모든 클래스는 하나의 책임만을 가지고 이런 클래스들이 서로 통신하면서 동작하는 것이 객체지향 프로그래밍이다. 이 때 클래스들이 만나는 방법(사전에서 경계면, 접점으로 표현한 부분)을 인터페이스라고 부른다.   Java에서는 모든 함수가 가상 함수(Virtual Function)로 동작하므로 virtual 키워드를 붙이지 않아도 된다. 어쨌든 Java에서는 class 키워드 대신에 더 의미가 분명한 interface 키워드를 제공한다.


  객체지향에서는 클래스 하나를 작성하는 것보다 클래스 사이의 관계를 작성하는 것이 더 중요하다. 클래스 자체가 문제라면 문제 범위를 클래스로 좁힐 수 있지만 클래스 사이의 관계가 문제가 되면 관련된 모든 클래스의 동작 방식이 문제가 되기 때문이다.


  완전한 클래스와 인터페이스 사이에 있는 개념이 추상 클래스이다. 추상 클래스는 인터페이스 개념을 잘 이해하였다면 쉽게 이해할 수 있다. 추상 클래스는 그 이름에서 알 수 있듯이 클래스의 한 종류이다. 하지만 클래스 전체를 다 구현하지 않고 자식 클래스에서 구현의 일부를 위임하기 때문에 실제(Concrete) 클래스라고 부르지 않고 추상(Abstract) 클래스라고 부르는 것이다. Java에서는 추상 클래스를 위한 키워드로 abstract라는 키워드를 지원하여 의미를 더욱 분명히 하였다. 엄밀히 따지면 인터페이스를 작성할 때 구현을 하지 않는 것을 원칙으로 한다. 하지만 인터페이스를 잘 정의하지 못한 상황에서 인터페이스 구현을 하다 보면 자식 클래스들에서 중복으로 구현되는 기능들이 있다. 이런 기능들의 공통점 묶기를 써서 부모 클래스, 즉 인터페이스에 일부 구현하는 경우가 있다. 이 때 java에서는 명백히 인터페이스를 추상 클래스로 변경하도록 컴파일러가 요구한다. 정석대로라면 추상 클래스는 상속 계층에서 책임을 지는 부모 클래스로만 만드는 것이 좋고 인터페이스는 다른 클래스와의 관계만을 기술하므로 구현이 없는 것이 좋다. 하지만 개발을 하다 보면 편의상 인터페이스에 일부 구현을 할 수 있으며 이때는 구현이 있다고 추상 클래스로 보는 것보다는 원래 목적대로 인터페이스로 보는 것이 타당하다.

 

정리

  객체지향 프로그래밍의 기본 단위는 클래스이다. 모든 클래스는 단 하나의 책임을 가지는 것이 좋다. 레고 부품을 조립하는 것처럼 각자의 책임을 가지는 클래스를 우리가 어떻게 조립하는가에 따라 결과물이 달라진다. 객체지향을 통한 재사용의 강력함은 이 분해와 조립에 있다고 할 수 있다. 클래스를 조립할 때 서로 다른 책임의 클래스를 연결하는 방법은 클래스들을 직접적으로 연관시켜서 할 수 있지만 이 방법은 결합도와 복잡도를 증가시키므로 좋은 방법이 아니다. 결합도와 복잡도는 클래스를 연결시켜주는 인터페이스 사용을 통해 낮출 수 있다. 한편 결합도와 복잡도를 낮춘다는 의미는 확장성을 높인다는 의미로 해석할 수 있다. 인터페이스도 클래스 사이를 연결시켜 주는 책임을 가지는 또 다른 클래스의 형태라고 할 수 있다.

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

1 2 3 4
블로그 이미지

Email : ihoneymon@gmail.com 안녕하세요, 꿀괴물 입니다. ^^ 멋진 비행을 준비 하는 블로그 입니다. 만능형 인간이 되어 많은 이들에게 인정받고, 즐겁고 행복하게 살기를 간절히 원합니다!! 달콤살벌한 꿀괴물의 좌충우돌 파란만장한 여정을 지켜봐주세요!! ^^

허니몬