INTROPermalink
뒤에서 나올 모델링에 대한 내용을 알기 위해 필요한 객체지향.
공통 구조와 동작을 추상화 시키는게 정적 모델링인데, 그걸 하나의 클래스로 표현하기 때문에 이 개념이 중요하다고 한다.
객체가 무엇인지, 어떤 연관관계 집합, 상속 다양성 관계가 있는지에 대한 이해가 필요하다.
교수님 말씀대로라면 그걸 왜 하는지에 대한 이해가 특히 필요하며 여태까지 객체지향에서 배운 것은 그런걸 할 수 있다는 것이지 어느 상황에서 어떻게 효과적으로 쓸지에 대해 잘 모른다고 하셨다.
이제 알아보자.
객체지향Permalink
객체, 클래스Permalink
객체를 인스턴스라고 생각하면 된다.
클래스라는 설계도로 만들어진 (실존하는) 객체.
캡슐화Permalink
정보 은닉은 보안이 핵심이라기 보다는 알 필요가 없는 정보를 감추는 것.
즉 상호작용을 하기 위한 기본 개념이다.
연관Permalink
객체가 서로 상호작용하는 관계애 대해 설명하는 것.
private, public, protected에 대한 접근제어를 가시성으로 표현한다.
상속Permalink
상속과 관련해서 많은 디자인 패턴이 발생한다.
방향 기억보다는 화살표 방향 주의 -> 가 적절한 필기였을 것 같다.
영어로 extends로 생각하면 안헷갈린다.
다형성Permalink
Polygon(다각형)은 이름부터 추상적이다.
영역을 뜻하는 area 변수와 getArea 메서드가 있지만
몇각형인지 정의를 안했기 때문에 실제로 구현된 메서드는 아닐 것이다.
하지만 Circle, Rectangle은 Polygon을 상속받아 (구현한다는 표현이 맞지 않나)
getArea 메서드를 구현한다.
왜 이런 상황이 발생하냐?
Circle, Rectangle을 언제 사용하는지 모르기 때문에
코드상으로 생각하면 new Circle()이 아니라 new Polygon()으로 객체를 생성하고 사용자가 특정 다각형을 사용하려 할때 바인딩해서 사용하는 것이다.
Spring에서 많이 했으니 간단하게 넘어가자. 생성자 주입을 생각하면 된당
'CS > Software Engineering' 카테고리의 다른 글
[소프트웨어 공학] 6. 설계 원리 (0) | 2025.06.06 |
---|---|
[소프트웨어 공학] 5-2. 요구 모델링 (0) | 2025.06.06 |
[소프트웨어 공학] 4. 요구 분석 (0) | 2025.06.06 |
[소프트웨어 공학] 3. 프로젝트 계획과 관리 (0) | 2025.06.06 |
[소프트웨어 공학] 2. 프로세스와 방법론 (0) | 2025.06.06 |