본문 바로가기

반응형

기초이론/Spring

(13)
[인프런]스프링 핵심원리 기본편_스프링으로 전환하기 스프링 적용 드디어 본격적으로 스프링을 적용해볼 것이다. 먼저 이전에 작성했던 소스 중 AppConfig에 어노테이션을 추가한다. @Configuration : 스프링 컨테이너가 이 어노테이션이 붙어있는 클래스는 빈(Bean)을 구성하기 위한 클래스임을 알려준다. 이를 사용하면 자동으로 빈으로 등록하고 @Bean이 있는메소드를 찾아서 빈(Bean)을 생성한다. @Bean : 개발자가 직접 작성한 메소드를 통해 반환되는 객체를 Bean으로 만든다. @Component : 개발자가 직접 작성한 클래스를 빈으로 만든다. 먼저 AppConfig에 어노테이션을 추가한다. import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscoun..
[인프런]스프링 핵심원리 기본편_IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control) 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)라고 한다. 1. 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 2. 즉 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 3. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 4. 이를 통해 프로그램의 제어 흐름은 AppConfig가 가져가게 된다. 5. 예를 들어 ~ServiceImpl 들은 필요한 인터페이스를 호출하지만 그에 대해 어떤 구현 객체들이 실행될지는 모른다. AppConfig로 분리하기 이전 코드 : private final Test..
[인프런]스프링 핵심원리 기본편_좋은 객체 지향 설계의 5가지 원칙(SOLID) 좋은 객체 지향 설계의 5가지 원칙(SOLID) SOLID란, 클린 코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것을 말한다. 1. SRP(Single Responsibility Principle) : 단일 책임 원칙 2. OCP(Open-Closed Principle) : 개방-폐쇄 원칙 3. LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 4. ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 5. DIP(Dependency Inversion Principle) : 의존관계 역전 원칙 SRP(Single Responsibility Principle) : 단일 책임 원칙 한 클래스는 하나의 책임만..
[인프런]스프링 핵심원리 기본편_좋은 객체 지향 프로그램이란? 객체 지향 특징 추상화 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것으로, 객체 지향 관점에서 클래스를 정의하는 것을 말한다. 캡슐화 : 객체가 맡은 역할을 수행하기 위한 하나의 목적을 묶는 것으로, 특정 기능을 위한 함수를 작성하는 것을 말한다. 상속성 : 상위 개념의 특징을 하위 개념이 물려받는 것이다. 다형성 : 객체 지향에서 가장 핵심적인 부분으로, 오버라이딩을 예시로 들 수 있다. 객체 지향 프로그래밍이란 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 "객체"들의 모임 으로 파악하려 하는 것 이다. 각각의 객체는 메시지를 주고받고 데이터를 처리할 수 있다. 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. (= 다형..
[인프런]스프링 핵심원리 기본편_스프링이란? 스프링이란 스프링이란 여러 기술들의 모음을 말한다. 여기서 여러 기술들이란 필수적인 기술과 선택적인 기술로 나뉘는데, 몇개의 예시를 가져오자면 다음과 같다. 필수 : 스프링 프레임워크, 스프링 부트 선택 : 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드 이에 대해 간략하게 정리했다. 스프링 데이터 : CRUD를 좀 더 편하게 할 수 있도록 도와주는 것이다. ex) spring Data JPA 스프링 세션 : 세션 기능을 더 편하게 쓸 수 있도록 도와주는 것이다. 스프링 시큐리티 : 보안과 관련된 기술이다. 스프링 Rest Docs : API 문서화를 편리하게 해 주는 것이다. 스프링 배치 : 배치 처리에 특화된 기술이다. (배치 처리란, 데이터가..