2011년 4월 10일 일요일

상속을 어떻게 적용하면 좋을까? 문제입니다.

패스트 푸드(맥도널드나 버거킹)에 가보면 많은 메뉴가 있습니다.

예를 들어 맥도널드 메뉴를 몇 개만 가정해 봅니다.

빅맥, 불고기버거, 새우버거

이 모든 메뉴들은 세트메뉴를 지원하고 있습니다.

그리고 이 메뉴들은 특별히 활인이나 적립이 허락됩니다.

보통의 통신사 카드들은 10%의 할인율을 가지고,


적립카드는 5%의 금액을 적립해 줍니다.

그렇다면 위의 데이터들을 기초로 해서 클래스로 만들려면 어떻게 해야 할까요?

상속인가? 조합인가?

2011년 3월 24일 목요일

자바는 구현하는 언어가 아닌 설계의 언어

흔히들 Java는 메모리 관리를 하지 않아도 되기 때문에 프로그래밍이 참 쉽다고 생각한다.

음.. 뭐 굳이 비유를 들자면 '오토'자동차가 점점 좋아지니 '수동'기어의 운전을 하는 사람들이
점점 드물어 진다고 할까?

그럼 반대로 생각해보자.

'오토'는 나쁘고 '수동'은 좋은가?

여기에 무작정 '그렇다'고 자신있게 대답할 사람은 드물것이다.

만일 여러분이 스포츠 카의 매니아라면 SUV같은 차는 쓰레기 같은 차라고 생각할 지도 모른다.
만일 여러분이 음악에 문외한이라면 세계적인 거장이 지하철에서 연주해도 그냥 지나칠지도 모른다.

즉 모든 판단은 그때 자신이 가진 정보와 상황에 맞출수 밖에 없다고 생각해 볼 수 있다.

Java역시 마찬가지다.

프로그램의 속도와 깊이를 따지는 사람에게 Java는 그냥 오토매틱 자동차이겠지만,

모든 사람들이 프로그램을 모시고 사는 것은 아니지 않은가?


요즘 나오는 언어들을 보면 Java보다 훨씬 더 간단하고 우아하게 코드를 작성한다.
짧은 코드와 간단한 실행..

그렇다면 Java라는 언어는 '빠르지도 않고, 간편하지도 않은' 언어가 되고 만다.


그런 언어가 아직까지 세계에서 가장 많이 쓰이는 언어가 되었을까?



내가 생각하는 것은
Java라는 언어가 설계에 아주 적합한 언어이기 때문이 아닐까 싶다.

즉 Java는 뼈대를 세우고, 여러 명이 협업해야 하는 상황에서 거의 공통적인 코드를 만들어 낼 수 있는 정형화된 방법을 아주 많이 제공하고 있다.

'인터페이스'나 '추상클래스'와 같은 구조의 뼈대에
다른 개발자들이 만들어도 큰 뼈대를 벗어나지 않는 느낌..

Java를 처음 공부하는 사람들은 반드시 생각해 봐야 하는 사실이 바로 이런 점이다.

'내가 왜 Java를 선택했지?'
'그냥 유행따라서?'

제발 대학에서 이런 생각을 좀 가르쳐주면 좋겠다.
뭘 만들기 전에 어떻게 언어를 공부해야 하는지..
어떤 언어가 어떤 특징이 있는지..

가끔은 '뭐 언어가 다 똑같지... '
라고 말하는 개발자들을 본다.
겉으로 그들에게 뭐라고 반기를 들지 않지만..

속으로는 이렇게 말한다.

'람보가 불어로 중얼거리면 얼마나 웃길까?'

적어도 언어를 공부하면 그 언어에 맞게 만들어 내기는 해야 하지 않을까?

2011년 3월 23일 수요일

노력도 재능이다..

예전에 명계남씨가 '노력도 재능이다'라고 하시던 말씀이 생각나네요.

요즘들어 왠지 뭔가 막혀있고, 잘 안풀리는 일들이 많아서
나름 슬럼프에 빠진듯 합니다.

음.. 제네릭 원고도 완성을 못 시키고 있고, 앞으로 강의 쉬는 동안 무얼 할지 고민도
많이 되고..

새로운 분야에 대한 걱정도 됩니다.

그래서 요즘 소원은요..

정말 노력도 재능이면 좋겠다


입니다.

2011년 3월 7일 월요일

Generic에 대해서 정리하려고 합니다.

가능하면 이번주(3월 12일이전까지)까지 정리하려 합니다.

정리할 내용은 다음과 같습니다.


Generic 문법

Generic문법 이전의 기법

다형성의 한계 - java.lang.Object의 사용

Generic문법은 결국은 컴파일러가 체크하는 정확한 타입

컴파일러가 인식하는 Generic문법

Bound/ Unbound  표기법

Wildcard 문자 사용법

Mac에서 Pages로 작성하고 있으니 출판의 형태는  eBook (.epub)의 형태가 될 듯 합니다.

2011년 2월 20일 일요일

새로운 방식의 강의가 업데이트 되고 있습니다.

안녕하세요. 강요천입니다.

예전에 공지해 드린 대로 강의장에서 녹화되는 강좌를 추가하고 있습니다.

강의 작업은 매주 토요일에 녹화가 되고 있습니다.


chap12 이후의 모든 강의는
강의장에서 녹화되는 방식으로 우선 진행 됩니다.

상속과 인터페이스는 워낙 중요하고
어렵기 때문에
한 번이라도 다시 정리해 드리는 것이 좋다고 생각하여
다시 녹화를 하여서 강의실에 업데이트 됩니다.

2월 20일 현재 새로 갱신된 강의는 다음과 같습니다.

chap 7. 객체지향 패러다임
chap 10. 상속
chap 11. 인터페이스
chap 12. 문자열

강의가 고르지 못한 점 죄송합니다.
하지만 지난번 공지해 드린 것처럼 항상 여러분들이 더 좋은 자료를 얻으실 수 있도록
노력하고 있으니
많은 시행착오가 있더라도 너그러이 양해해 주시면 감사하겠습니다.

이제 또 저는 다음 약속처럼
추가적인 원고를 제작하려고 합니다.

객체중심Java 원고를 만들면서 몇 가지 제 스스로 약속한 것이 있습니다.
* 하나의 평가라도 공정한 평가를 받겠다.
* 공부하는 사람들이 계속해서 도움을 받을 수 있는 책을 만들겠다.
* 공부하고 싶은데 현실적으로 제약이 많은 사람들에게 도움이 되겠다.

앞으로도 많은 시행착오와 변경이 있겠지만
위의 세 가지 사항은 제 스스로의 자존심입니다.

부디 고르지 못한 강의에 언짢아 하지 마시고..
앞으로 더 노력하겠습니다.
감사합니다.

2011년 2월 19일 토요일

안드로이드 지도 프로그래밍 자료 올립니다.

안드로이드를 이용하는 지도 프로그램 만드는 부분

추가 원고로 제공용으로 만든 것입니다.

주요 내용은 다음과 같습니다.

- Activity에 지도 보이는 설정 및 예제 만드는 요령
- Location Manager를 이용해서 자신의 위치를 파악하는 방법
- 지도 상에서 원하는 좌표로 이동하기

- Overlay를 이용해서 지도위에 마커 표시하기
- 일반 Overlay와 ItemizedOverlay의 차이 및 사용법
- 지도 상의 주소 데이터 얻기, 주소 데이터 변환하기

안드로이드지도프로그래밍자료얻기


- 파일 용량이 4M정도인데 Google 문서로 열면 조금 로딩 속도가 걸리네요..

- 다운로드 받으실 분들은 Freelec 출판사의 강의실에서 다운로드 받으실 수 있습니다.

2011년 2월 18일 금요일

헥...헥

보통 겨울이 끝날때 쯤이면 한번씩
몸이 쳐지곤 하는데..

이번 겨울은 유난히 춥고, 바빠서 그랬는지..
좀 심하네요,,

게다가 치아도 망가져 있고. 귀도 망가져 있고..

이거 완전히 사고난 중고차 같네요..

2월말까지 해야하 일들이 많네요..

우선 PPT자료 완성해서 출판사에 보내줘야 하고..

공개 강의 녹화해야 하고..

지금 운영하는 고급반도 신경써야 하고.. 지난 기수 프로젝트도 봐야하고...

이래저래 하는 거 없이 치여서 사네요..

2월 지나면 좀 많이 블로깅 할 예정이구요..

현재 강의하는 내용들도 많이 정리해서 올리도록 하겠습니다.