회사에서 Spring을 사용하기에 인프런의 김영한 선생님의 강의를 들으며 공부를 차차해나가며 기록을 해나가기로 했다. Spring에 대해서 무지한 나이기에 열심히 공부를 해나가야겠다.spring initializr이 사이트는 스프링 부트기반으로 프로젝트를 만들어주는 사
external library는 땡겨온 라이브러리들이다.하지만 나는 2가지 라이브러리밖에 땡겨오지 않았는데...?요즘, 웹 어플리케이션을 만들려면 이정도는 자동으로 땡겨와야 한다.gradle, maven과 같은 build tool들은 의존관계를 다 관리를 해준다.그러므
src -> main -> resources -> static > 우측버튼 -> new Fileindex.html을 만든다.이것이 이제 welcome page가 된다.그리고 localhost:8080에 들어가면page 생성!이 전에 spring.io라는 사이트에 들어가
서버에서 하는 것 없이 파일을 웹 브라우저에 내려주는 것정적 컨텐츠 : 파일을 단지 전달해 주는 것MVC와 템플릿 엔진 : 서버에서 HTML을 변형하여 내려주는 방식MVC : Model, View, Controller이렇게 controller에 @Getmapping을
데이터 : 회원ID, 이름기능 : 회원 등록, 조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오)컨트롤러 : 웹 MVC의 컨트롤러 역할서비스 : 핵심 비즈니스 로직 구현 예) 회원중복 관리 불가리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
서비스는 실제 비즈니스 로직을 작성하는 구간이다.java -> hello.hellospring -> service 패키지 작성 -> MemberService class 작성테스트케이스도 작성해야하는데 요즘 크로스핏 하고 오면 기진맥진이라서 인강을 많이 못본다... 열심
MemberController class를만든다.위의 코드처럼만 작성을 하더라도 스프링 컨테이너라는 통이 생기는데 controller annotation이 있으면 컨트롤러 객체를 생성해서 스프링에 넣어두고 관리를 한다. \-> spring container에서 spri
MemberController를 통해서 회원을 등록하고 조회하는 것을 만들어 보겠다.main -> Java -> hello.hellospring -> controller -> HomeControllertemplates -> home.html전에 만들어놓았떤 index.
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.(협력)객체 지향 프로그래밍은 프로그램을 유연하고 변경이
SOLID : 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리SRP : 단일 책임 원칙(single responsibility principle)OCP : 개방-폐쇄 원칙 (Open/closed principle)LSP : 리스코프 치환 원칙
스프링은 다음 기술로 다형성 + OCP, DIP를 가능하게 지원 \- DI(Dependency Injection) : 의존 관계, 의존성 주입DI 컨테이너 제공(자바 객체들을 컨테이너에 넣어놓고 이 안에서 의존관계를 서로 연결해주고 주입해주는 기능들을 제공 - 클라이
Artifact - 프로젝트 빌드명Dependencies는 아무것도 설정하지 않는다. -> 스프링 부트가 스프링 코어쪽 라이브러리만 간단하게 구성하고 의존관계를 설정하지 않는다.그리고 generateimplementation을 보면 의존관계가 spring-boot-st
회원을 가입하고 조회할 수 있다.회원은 일반과 VIP 두 가지 등급이 있다.회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다.(미확정)회원 서비스 : MemberServiceImpl
주문과 할인 정책 \- 회원은 상품을 주문할 수 있다.회원 등급에 따라 할인 정책을 적용할 수 있다.할인 정책의 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라.(나중에 변경될 수 있다.)할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책으 아
어플리케이션을 하나의 공연이라 생각해보자. 각각의 인터페이스를 배역(배우 역할)이라 생각하자. 그런데! 실제 배역 맞는 배우를 선택하는 것은 누가하는가?로미오와 줄리엣 공연을 하면 로미오 역할을 누가 할지 줄리엣 역할을 누가 할지는 배우들이 정하는게 아니다. 이전 코드
내가 호출하는것이 아니라 framework가 대신 호출해 주는 것이다.제어권이 뒤바뀐다고 해서 제어의 역전이라고 한다.기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스
Application이 어떻게 담당되는지 설정정보를 나타내는 것이다.Spring에서는 설정정보에 Configuration을 적어주게 되어있다.각 메서드에 Bean이라고 적는다.그러면 각 메서드들이 Spring container에 등록이 된다.ApplicationCont
스프링 컨테이너의 최상위 인터페이스다.스프링 빈을 관리하고 조회하는 역할을 담당한다.getBean()을 제공한다.지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능이다.BeanFactory 기능을 모두 상속받아서 제공한다.빈을 관리하고 검색하
스프링은 어떻게 이런 다양한 설정 형식을 지원하는 것일까? 그 중심에는 BeanDefinition이라는 추상화가 있다.쉽게 이야기해서 역할과 구현을 개념적으로 나눈 것이다. \- XML을 읽어서 BeanDefinition을 만들면 된다.자바 코드를 읽어서 BeanDe
스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다.대부분의 스프링 어플리케이션은 웹 어플리케이션이다. 물론 웹이 아닌 어플리케이션 개발도 얼마든지 개발할 수 있다.웹 어플리케이션은 보통 여러 고객이 동시에 요청을 한다.우리가 만들었던 스프링 없는 순수