본문 바로가기

Java, Spring/스프링 핵심 원리 기본

1-2. 좋은 객체 지향 프로그래밍이란?

핵심 :

1. 객체들의 모임, 객체는 메시지를 주고 받고 데이터를 처리할 수 있다. ( 객체끼리 협력할 수 있다. )

2. 유연하고 변경이 용이하다. ( 레고 블럭을 조립하듯이, 키보드 마우스를 갈아끼우듯이 ) 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법.

 

 

 

# 다형성

 

- 운전자는 차가 바뀌어도 운전을 할 수 있다. ( 구현만 바뀌었을 뿐 )

- 각각 자동차들은 자동차역할의 인터페이스를 따라서 만들었기 때문에.

- 왜 자동차 인터페이스와 구현체를 분리 했을까? ( 결국엔 운전자를 위해서 )

- 차가 내부적으로 바뀌어도( 새로운 기능을 추가해도 ) 운전자에게 영향X

- 역할과 구현으로 세상을 구분했기 때문에

 

역할을 누가 할지는 상관이 없다. ( 다른 대상으로 대체 가능 )

 

구현보다 인터페이스 설계가 더 중요하다.  ( 더 먼저 함 )

 

혼자 있는 객체는 없다.

 

서버가 클라이언트가 되어 다른 서버에게 요청을 할 수도 있다.

 

 

 

자바 복습

MemberService는 MemberRepository 를 의존한다. ( 의존한다= 내가 쟤를 알고 있다. )

이렇게 넣을 수 있다. ( 순수 자바 )

 

 

클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다. 

진짜 중요한 말이다..

 

 

 

# 정리

인터페이스를 안정적으로 설계하는 것이 아주아주아주아주 중요

 

인터페이스를 안정적으로 설계 = 변화가 없는 방식 ( 변화가 최소화 되게 )

잘 안흔들리게 인터페이스를 설계하는 것이 잘하는 개발자

 

 

 

 

 

 

# 스프링과 객체 지향

 

사실 스프링이 제공하는 것은 다형성을 편리하게 사용할 수있게하는 기능

 

 

 

 

 

객체지향은 역할 과 구현의 구분

 

SOLID는 걍 말도 안되게 중요함. 면접에도 자주나옴.

 

 

 

 

 

 

 

 

 

# 인프런 김영한님의 강의를 수강한 후 작성한 글입니다.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

Recent Posts
Popular Posts
Recent Comments