Limvik

객체지향개발 연습2-3 - 사용자 객체 구현

Intro 어디부터 구현을 시작하는게 좋을 것인가 고민하다가, 프로그램의 시작 지점인 학습하라 메시지를 받는 사용자 객체 그리고 사용자 객체와 협력하는 객체의 일부분 부터 구현하기 시작하였습니다. 결국엔 원형이 남아있지를 않은데, 그 과정을 의식의 흐름대로 작성했습니다. 글의 목적이 1차적으로는 미래의 제가 과거의 제 생각을 참고하는데 있기 때문에 ...

객체지향개발 연습2-2 - 인터페이스 설계

Intro 처음 객체지향개발 도전(링크)한 것이 망한 이후에, 플래시 카드 학습에 대한 도메인 모델만 그려봤었습니다(링크). 그런데 마음만 앞서서 도메인 모델을 그린 후에야 기능적 요구사항을 생각 안했다는걸 깨달았습니다. 그래서 도메인 모델을 만들 때 어떤 기능을 생각했었는지 역으로 다시 추적하고, 인터페이스 설계까지 해봤습니다. 요구사항 ...

『객체지향의 사실과 오해』 독서 후기

한줄 후기 클래스(Class)만 사용하면 객체 지향이라고 생각했던 오해를 풀 수 있었습니다. 긴 후기 먼 과거에 코딩 학원에 잠깐 다닌적이 있었는데, 객체에 대해 설명한다면서 클래스만 주구장창 설명했던 기억이 납니다. 그래서 클래스를 사용하면 객체 지향이구나 하고 이해했습니다. 그런데 최근 개발자로 취업을 준비하면서 기본서를 다시 보다보니 제가 이...

객체지향개발 연습2-1 - 도메인 모델 그리기

Intro 지난 주말에 객체 지향 개발 연습삼아 도전했던 작은 프로젝트가 이전 글에 적었던 대로 아쉬운 점이 참 많았습니다. 그래서 도메인 모델부터 다시 고민해보기로 했습니다. 저번에는 어떻게든 작게 만들어보는 것을 목표로 잡고, 도메인 모델 그리고 객체 설계도 최소화 하다보니 필요한 객체들 마저도 빠져버렸습니다. 그래서 객체 간의 관계도 무너지고 ...

작은 프로젝트로 객체 지향 연습하기

Intro 이번주에 2주짜리 Java 수업도 끝났고, 객체지향의 사실과 오해도 거의 다 읽어갑니다. 그래서 객체 지향을 연습해 볼겸 자주 사용하는 플래시카드 프로그램 기능 중 일부를 아주 작게나마 만들어보기로 했습니다. 플래시카드는 앞 면에는 문제, 뒷 면에는 답을 적어 학습에 사용하는 도구입니다. 요구사항 공부를 시작하면 제공된 파...

Java의 final keyword가 객체(object)의 불변성(immutability)을 보장하지 않는 다는 것의 의미

요약 Java의 final keyword가 객체의 불변성을 보장하지 않는다는 것은 객체의 내부 상태는 변경될 수 있음을 의미합니다. Intro Java 기본서를 보다보면, final keyword는 초보자에게는 설명하기 힘든지 갑자기 어영부영 넘어갑니다. 그래서 저도 제대로 이해 못하고 어영부영 넘어갔던 것 같습니다. 그런데 오늘 ‘final key...