인프런/스프링핵심원리(기본)

1)스프링이란?, 좋은 객체 지향 프로그래밍?

backend dev 2022. 11. 30.

스프링 생태계

스프링은 어떤 특정한 하나가 아니라 여러가지 기술들의 모음이라고 볼수 있다.

먼저 스프링의 핵심인 스프링 프레임워크

여러 스프링 기술들을 편리하게 사용할 수 있게끔해주는 스프링부트

그리고 나머지 선택사항들

https://moolgogiheart.tistory.com/87

 

프레임워크(Framework)란? 개념, 장단점, 종류

프레임워크라는 개념을 접하기 전에 '부트스트랩(Bootstrap)'이란 용어를 먼저 알게 되었습니다. 웹 프로젝트를 개발하기 위한 좋은 툴이라는 것을 듣게 되었죠.그래서 부트스트랩이 무엇인지 자

moolgogiheart.tistory.com

스프링 프레임워크

스프링 프레임워크 세부내용

스프링프레임워크만 쓰는게 아니고

 

스프링 프레임워크를 편리하게 사용할 수 있는

 

스프링 부트

라는것을 통해서 스프링 프레임워크를 사용한다.

객체 지향 프로그래밍

다형성 예시

운전자는 운전을 하는 역할이다.

자동차의 역할이있고 자동차를 구현한 k3,아반떼,테슬라 모델3가있다.

운전자는 자동차가 바뀌어도, 운전을 하는데 영향이 없다.

 

여기서 역할은 인터페이스이고 구현은 인터페이스 객체 (구현체)를 의미한다.

 

운전자는 자동차의 역할에 대해서만 의존하고있다.

어떤 자동차가 나와도 기존 자동차의 역할을 구현한다면 운전자는 바뀔필요가없다 (운전가능)

 

멤버서비스가 save를 호출하면 구현체에서 구현된(오버라이딩) save가 실행된다.

    @Bean 
    public MemberService memberService() {
        return new MemberService(memberRepository);
    }



	  @Bean
      public MemberRepository memberRepository() {
          return new MemoryMemberRepository();
//        return new JdbcTemplateMemberRepository(dataSource);
//        return new jpaMemberRepository(em);
//
      }

이런식으로 멤버리포지토리는 어떤 구현체든 받을 수 있다.

 

인터페이스를 안정적으로 변화가없게끔 설계하는게 가장 중요하다.

이전 스프링 입문에서

리포지토리를 바꿔가는데 다른코드에 영향이없었다 -> why?  : 스프링의 di 컨테이너, 의존관계주입이 다형성과 합쳐져서 가능했던것이다.

 

 

 

오버로딩과 오버라이딩 차이와 예제

자바에서 다형성을 지원하는 방법으로 메서드 오버로딩과 오버라이딩이 있습니다. 오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

private.tistory.com

댓글