Agile Java Network 스터디 회원 모집

2006. 12. 28. 10:21
영회님이 참여하고 계시는 모임에서 스터디 회원을 모집한다고 합니다.
Agile Java Network 회원모집

종종 참여 조건을 물으시는데... 회비(월3만) 이외에 특별한 조건은 없구요.
다음과 같은 분들께 추천합니다.

1. 프로그래밍 언어를 불문하고 여성 개발자 혹은 개발자에 관심 있는 여성님들 (49% 농담)
2. 개발/프로그래밍을 오래 하고 싶은데 주위에서 어릴 때 하다 관둬야 한다기에 불안한 분들
3. 일요일에 술이나 늦잠을 좀 줄이고 싶은데 안되는 개발자
4. 일단 어디든 가입하면 대충 일년은 참여하는 개발자
영회님 블로그에 언급된 스터디 참여 조건은 위와 같습니다. 일요일에 스터디 모임을 갖는 것 같습니다. 스프링프레임웍의 대가이신 영회님과 함께 2007년을 알차게 보내실 분들에게 강추~~



,

기본이 중요하다.

2006. 12. 26. 11:32
드왈라 타프의 책 "천재들의 창조적습관" (번역제목이 맘에안들지만) 에서도 항상 강조하는 것이  기본에 대한 것이다. 기본, 왜 기본을 연습해야 하는지 나름대로 무용을 예를들어서 설명해놓은 것이 맘에 와닿는다. 기본에 충실하지 않고 기본에 충실하게 연습이 안되어있다면, 창조적인 행위를 할 수 없다. 즉, 창조적인 행위는 기본의 실천과 습관화에 달려 있다고 봐도 과언이 아니다.

개발자로서의 기본이 안되어있다는 생각을 주말내 해보게 되었다. 쩝 창피하다 ㅋ. 기본 내공 쌓기를 매일 실천하지 않은 티를 내고 다니다보니 역시나 맘에 또 찔린다. 에궁 기본에 더욱 충실해져야겠다.

맨날 쓰는 접근제한자 정리

클래스 접근 제한자
  • public : 어느 클래스에서라도 접근할 수 있다.
  • abstract : 불완전한 클래스로 직접 객체를 생성할 수 없는 클래스이다.
  • final : 상속을 할 수 없는 클래스이다.
  • default : 접근제한자를 생략할 수 있으며 같은 패키지에서만 접근할 수 있다.

맴버변수 접근 제한자
  • public : 모든 클래스 및 패키지에서 접근이 가능하다.
  • private : 해당 클래스내에서만 접근이 가능하다.
  • protected : 같은 패키지 내에서는 접근이 가능하며 상속을 받았을 경우 다른 패키지에서도 접근이 가능하다.
  • default : 같은 패키지 내에서는 접근이 가능하다.
  • static : 클래스 단위로 존재하는 변수로 모든 객체가 공동으로 사용한다.
  • final : 값을 변경할 수 없다.

메소드 접근 제한자
  • public : 모든 클래스 및 패키지에서 접근이 가능하다.
  • private : 해당 클래스내에서만 접근이 가능한다. 가장 제한적인 방법이다.
  • protected : 같은 패키지 내에서는 접근이 가능하며 상속을 받았을 경우 다른 패키지에서도 접근이 가능하다.
  • default : 같은 패키지 내에서는 접근이 가능하다.
  • static : 클래스 단위로 존재하는 메소드로 모든 객체가 공동으로 사용한다.
  • final : 상속할 수 없다.
  • synchronized : 하나의 스레드만을 접근할 수 있도록 허용
  • abstract : 추상메소드로 중요한 역할을 한다. 불완전한 메소드를 body가 없이 선언부만 있다. 상속을 받은 클래스는 반드시 재 정의해서 사용해야 한다.
위에는 없는 내용: 파라미터 시그너쳐에 접근 제한자가 들어간 경우 (특이하다 - 이렇게 쓰는 경우가 어떤 경우일까?)도 별다른 고민 없이 로컬 스코프에서는 동일하게 적용된다. (주의!! 쩝 초기화 정도는 가능할 줄 알았다고 착각했었음 ㅡㅡ;;;)


OOP 기본중의 하나인 상속의 두가지 종류 정리 :
  • Class inheritance: 상위 클래스에 정의된 속성과 동작을 하위 클래스로 복사한다. 새로운 속성과 동작을 하위 클래스에 추가하려는 경우에 사용한다. 하위 클래스는 상위 클래스에 정의된 속성과 동작 이름을 그대로 사용함으로써 상위 클래스를 오버라이딩 한다.
  • Interface inheritance: 추상화된 동작의 시그너쳐만 상속받는다. 즉, 각각의 하위 클래스에서 다른 구현을 준비하기 위해서 상위 클래스와 동일한 시그너쳐로 invoke 한다.


,