SPRING 핵심 원리 [ 기본편 ] 23

[스프링 핵심 원리] 섹션 1.3 객체 지향 설계와 스프링 (좋은 객체 지향 프로그래밍)

1.3.1 다형성의 실세계 예시 좋은 객체 지향의 핵심은 다형성에 있다. 먼저, 다형성을 실세계에 비유하여 이해하기 위해, 세상을 역할 과 구현으로 구분해보자. 운전자를 클라이언트라고 하고, 자동차라는 역할이 있다고 가정하자. 자동차 역할은 K3, 아반떼, 테슬라 모델3 각각의 자동차 구현을 통해 수행될 수 있다. 이때, 운전자는 자동차 모델이 바뀌더라도, 운전자의 역할은 동일하게 수행가능하다. 즉, 운전자는 자동차 역할(인터페이스) 에 대해서만 의존하게 된다. 여기서 중요한 핵심은, 자동차 역할이라는 인터페이스를 만드는 이유는, 운전자라는 클라이언트의 편의성을 높이기 위함이다. 즉, 클라이언트에 영향을 주지 않고, 구현의 변경이 유연하고 용이하도록 하는 것을 다형성 이라고 한다. 1.3.2 Java 에..

[스프링 핵심 원리] 섹션 1.2 객체 지향 설계와 스프링 (스프링이란?)

1.2.1 스프링 생태계 스프링은 여러 기술들의 집합으로 볼 수 있다. 스프링 기술들을 하나씩 살펴보자. 필수 스프링 기술 - 스프링 프레임 워크 : 스프링의 핵심 기술이다. - 스프링 부트 : 다른 여러 기술들을 편리하게 사용할 수 있도록 도와준다. 선택 스프링 기술 - 스프링 데이터 : DB의 기본적인 CRUD (등록, 수정, 삭제) 는 유사하므로, 이를 편리하게 사용할 수 있도록 도와준다. - 스프링 세션 : 세션 기능을 편리하게 사용할 수 있도록 도와준다. - 스프링 시큐리티 : 보안과 관련된 기술이다. - 스프링 Rest Docs : API 문서화를 편리하게 도와준다. - 스프링 배치 : 배치 처리에 특화된 기술이다. - 스프링 클라우드 : 클라우드와 관련된 기술이다. 이 외에도, 다양한 스프링..

[스프링 핵심 원리] 섹션 1.1 객체 지향 설계와 스프링 (스프링의 탄생)

1.0.1 강의 소개 스프링의 핵심 원리를 제대로 학습하기 위해서는, 단순히 스프링이 제공하는 기능을 배우고 사용하는 것을 넘어, 스프링이 제공하는 객체지향을 이해할 필요가 있다. 즉, 스프링의 핵심 가치는 '객체 지향 프로그래밍' 에 있다. 앞선 스프링 입문 강의에서, 스프링의 전반적인 작동 원리는 이해하였지만, 스프링이 왜 객체 지향을 제공하는지, 또 스프링의 핵심 원리는 무엇인지에 대해서는 아직 모호한 점이 많았다. 따라서 이번 강의를 통해, 스프링이 제공하는 기능을 학습할 뿐만 아니라, 스프링에 대한 본질적인 이해를 하기 위해 노력해보고자 한다. 1.1.1 이야기 - 자바 진영의 추운 겨울과 스프링의 탄생 (스프링의 역사) 먼저, 스프링의 탄생 배경에 대해 가볍게 알아보자. 2000년대 초반에는,..