공부 시작 시각 인증
수강 인증 사진
객체 지향의 사실과 오해
객체 지향의 오해
현실을 그대로 반영한다? → 결론은 아니다. 왜냐하면, 상세하게 반영하려면 필드가 많이 들어가게 되고, 생성자도 커지게 되어, 유지 보수하기가 힘들어 지기 때문
객체 = 클래스? / 중요한 것은 상속? → 객체 ≠ 클래스 → 자바스크립트에서는 클래스는 커녕, 상속도 지원하지 않는다.
데이터베이스 테이블 형태로 그대로 생성? → 결론은 아니다. 왜냐하면, 클래스 하나가 커져 버리기 때문에 변경에 유연하지 않는다는 단점이 있기 때문
객체 지향 프로그래밍을 하는 이유
- 구조적 설계로 역활과 책임을 기반으로 안정적인 구조를 만들어 줌. → 재사용과 변경에 유연함. → 핵심은 작은 단위로 나누기!
- 객체: 자율적이며, 책임과 역활을 바탕으로 다른 객체와의 메시지를 통해 협력하는 것 → 객체들 간의 역활, 책임을 적절하게 나누고 협력하게 만든다.
객체의 구성 요소
- 상태: 객체가 가지고 있는 상태
- 행동: 객체의 상태를 변경, 행동을 통해 다른 객체와 협업
- 식별자: 각 객체를 구분할 수 있는 유니크한 값
객체 지향 설계의 첫 걸음 - 행동이 상태를 정의
- 객체 지향의 의의는 협력을 통한 목적 달성 → 객체의 구성 요소들 중 행동을 기반으로 협력 → 즉, 객체 지향의 설계는 상태가 아닌, 행동으로부터 정의
- 그럼, 행동을 어떻게 정의? → 책임과 역활을 기반으로 먼저 정의한다. → 유즈케이스 이용하여 책임 주도 설계를 진행
책임 주도 설계 - 과외 수강생 관리 프로그램
정보 입력 받기, 수강생 정보 전달(StudentController) => 유효성 검증(Student), 데이터 저장, 정보 전달(StudentService) => 데이터 저장(StudentRepository)
후기
아주 오래만에 자바를 다시 공부하게 되었다...
비록, 전공과를 졸업하였지만, 자바를 손 놓은 지가 몇 년이었다...
그 동안 직장일에만 쫒기는 나머지, 자바를 기초부터 다시 공부해야 하는 처지가 되었다...
강사님께서 알려 주시는 대로, 실습 소스 파일들을 다운로드 하였고, 소스들을 보았지만...
머리가 어쩔어찔하다...
공부를 너무나도 소홀히 했던 나 자신이 후회스럽다...
아직, 더 젊은 시절이 끝나가기 전에, 이 강의라도 끝내야 하는 게 내 목적이다.