스프링 SPRING/[SPRING] 스프링 핵심원리

    [SPRING 기본] 스프링 공부 시작 전 자바의 확실한 이해는 필수...

    [SPRING 기본] 스프링 공부 시작 전 자바의 확실한 이해는 필수...

    이번 방학동안 로드맵 강의의 절반정도는 완강하고 개강하겠다 다짐했다. 그러나 C언어와 파이썬에대한 언어 지식밖에 없었던 나는 자바를 가볍게 공부하고 냅다 스프링 강의를 들었다. 응...이해가 되지 않는 부분이 많고 내가 모르는 문법이 너무너무너무너무 많이 나왔다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그래서 자바를 입문서와 프로그래머스 강의로 전반적인 내용을 2회독 한 후 자바의 정석 교재를 구매하여 강의를 들으며 꼼꼼히 복습하고 있다! 오늘부로 CHAPTER 8까지 끝마쳤고, 객체지향 핵심파트인 6-7은 지속해서 복습해나가려고함! 이제야 자바가 내것이되어가는 기분이다 ㅎㅎ 자바 기본기를 탄탄하게 다지기 전까지 스프링은 잠시 스탑하는걸로...!!!!!!

    [SPRING] 스프링 컨테이너에 등록된 빈을 조회해보자! | Bean 조회 및 출력하기

    [SPRING] 스프링 컨테이너에 등록된 빈을 조회해보자! | Bean 조회 및 출력하기

    스프링 빈 출력 모든 빈 출력하기 실행하면 스프링에 등록된 모든 빈 정보를 출력할 수 있다. ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈 이름을 조회한다. -> 28번 라인 ac.getBean(빈이름, 타입) or ac.getBean(타입) : 빈 이름으로 빈 객체(인스턴스)를 조회한다. -> 35번 라인 애플리케이션 빈 출력하기 스프링이 내부에서 사용하는 빈은 제외하고, 내가 등록한 빈만 출력해보자. 스프링이 내부에서 사용하는 빈은 getRole()로 구분할 수 있다. -> 34번 라인 ROLE_APPLICATION : 일반적으로 사용자가 정의한 빈 ROLE_INFRASTRUCTURE : 스프링이 내부에서 사용하는 빈 스프링 빈 조회 - 기본적인 조회방법 ac.getB..

    [Spring] 스프링 컨테이너 생성과정

    스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정을 알아보자. //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext 는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig 를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 자바 설정 클래스를 기반으로 스프링 컨테이너( ApplicationContext )를 만들어보자. new Ann..

    [Spring] 스프링 컨테이너 ApplicationContext

    스프링 컨테이너 ApplicationContext 스프링 컨테이너 ApplicationContext 를 스프링 컨테이너라 한다. 기존에는 개발자가 AppConfig 를 사용해서 직접 객체를 생성하고 DI를 했지만, 이제부터는 스프링 컨테이너를 통해서 사용한다. 스프링 컨테이너는 @Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용한다. 여기서 @Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다. 스프링 빈은 @Bean 이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다. ( memberService , orderService ) 이전에는 개발자가 필요한 객체를 AppConfig 를..

    [Spring] IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control)

    [Spring] IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control)

    **영한님의 스프링 기본 강의를 수강하며 정리하는 글 IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스러운 흐름이다. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 프로그램의 제어 흐름은 이제 AppConfig가 가져간다. 예를 들어서 OrderServiceImpl 은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행될지 모른다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 Or..

    [SPRING] 스프링 핵심원리 | 객체지향과 스프링

    [SPRING] 스프링 핵심원리 | 객체지향과 스프링

    지난번에 배웠던 수업 내용에 대해 정리하며 상기시키고자 기록한다. 스프링의 핵심 스프링은 자바 언어 기반의 프레임워크이다 - 자바 언어의 큰 특징은? = 객체 지향 언어 스프링은 객체 지향 언어가 가진 강력한 특징을 잘 반영하는 프레임워크임 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크임 그렇다면 좋은 객체 지향 프로그래밍이란 뭔데? 우선, 객체 지향의 특징에 대해 알아보자. 1. 추상화 2. 캡슐화 3. 상속 4. 다형성 객체 지향 프로그래밍은 컴퓨터 프로그램을 목록으로 보는 시각에서 벗어나서 여러개의 독립적인 단위, 즉 "객체" 들의 모임으로 파악하고자하는 것. 각각의 객체는 메세지를 주고받고 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경을 용..

    [SPRING 기본] 비즈니스 요구사항을 설계하며 스프링 핵심 원리를 이해해보자!

    [SPRING 기본] 비즈니스 요구사항을 설계하며 스프링 핵심 원리를 이해해보자!

    1. 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1,000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 도민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수도 있다. (미확정) 참고: 프로젝트 환경설정을 편리하게 하려고 스프링 부트를 사용한 것이다. 지금은 스프링 없는 순수한 자바로만 개발을 진행한다는..

    [SPRING 기본] 객체 지향 설계와 스프링 강의 내용을 복기해보자!

    [SPRING 기본] 객체 지향 설계와 스프링 강의 내용을 복기해보자!

    1. 스프링의 역사 로드 존슨이 2002년 라는 저서를 EJB의 문제점을 지적하며 출간하였는데, 이때 선보인 코드가 기초가 되었으면 이게 바로 스프링이 되었다. EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주고, 30,000라인 이상의 기반 기술을 예제 코드로 선보였다. 여기에 지금의 스프링 핵심 개념과 기반 코드가 들어가 있다. ( BeanFactory, ApplicationContext, POJO, 제어의 역전, 의존관계 주입 등 ) 책 출간 직후 유겐 휠러, 얀 카로프가 로드 존슨에게 오픈소스 프로젝트를 제안했고, 스프링의 핵심 코드의 상당수는 유겐 휠러가 지금도 개발하고 있다...

    [SPRING 기본] 좋은 객체 지향 설계의 다섯 가지 원칙

    [SPRING 기본] 좋은 객체 지향 설계의 다섯 가지 원칙

    영한님의 스프링 강의를 공부하다가 객체 지향 설계 원칙의 중요성에 대해 거듭 강조하셔서, 이를 블로그와 머릿속에 기록해두려고 한다. 어렴풋이 들어왔지만 정확히 무엇인지는 몰랐던 객체 지향 설계의 다섯 가지 원칙에 대해 알아보자! 좋은 객체 지향 설계의 5가지 원칙 SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향의 원칙을 다섯 가지로 정리했다. SRP(Single Responsibility Principle) 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. - 클 수도, 작을 수도 있다. - 문맥과 상황에따라 다르다. 중요한 기준은 변경이다. - 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다. - 예를들면 객체의 생성과 사용을 분..