[본 포스팅은 스프링 MVC 1편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com MVC 패턴을 알아보기 전에 왜 MVC가 나왔는지 알아보자. - MVC 패턴 이전 - 너무 많은 역할 기존의 서블릿이나 JSP로 비즈니스 로직과 뷰 렌더링까지 처리하게 되면 너무 많은 역할을 하게 되고 유지보수가 어려워진다. (하나의 기능을 수정하려면 여러 부분에서 수정이 필요함 심지어 코드도 너무 길어 가독성이 어려움) ..
[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 빈 스코프란? 지금까지 우리는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때까지 유지된다고 학습했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다. 빈 스코프 종류 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로..
[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 롬복(Lombok)이란? 코딩을 할 때 getter/setter, 생성자 등 반복되는 코드들이 많을 것이다. 그때 롬복을 사용하면 반복 코드가 없이 getter/setter, 생성자 등을 롬복에서 지원해준다. (코드가 눈에 안 보여 직관적이지 않아 개발자에 따라 호불호가 갈릴 수 있다.) 설치 방법 1) 스프링 Initializr로 프로젝트 생성 시 디펜던시에 Lombok을 추가해서 생성하기만 하면 된다. ..
[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 강의를 듣다 보니 스프링 컨테이너에 등록된 Bean들이 싱글톤일 수밖에 없는지 알게 됐다. 먼저 스프링 컨테이너에 Bean들을 등록하여 사용해보고 출력해보면 이것과 같이 클래스 명에 ~CGLIB이 붙게 되어 출력이 된다. 이것은 내가 만든 클래스가 아닌 스프링이 CGLIB이라는 바이트코드 조작 라이브러리를 사용해서 AppConfig 클래스를 상속받아 임의의 다른 클래스를 만들고 그 다른 클래스를 스프링 빈으..
[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 스프링 컨테이너를 사용하지 않았고 싱글톤 패턴마저 사용하지 않았더라면 AppConfig는 이러했을 것이고 AppConfig.java public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepositor..
[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 기존 코드 AppConfig.java public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository() { return new MemoryMemberRepository(); } public O..
[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 객체 지향 프로그래밍을 할 때에는 SOLID를 잘 지키면서 코딩해야 좋은 프로그램이 된다. 하지만 기존 코드를 보면 public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy..
스프링 부트 프로젝트를 쉽게 생성하는 방법은 https://start.spring.io/ 위 사이트가 있다. 사이트를 들어가게 되면 이러한 웹페이지가 보여지는데 이때 설정해줘야 할 것은 Project, 버전, 메타데이터, 의존관계(Dependencies)가 있다. 먼저 Project는 나의 경우 Gradle을 많이 사용하고 전에 들었던 강의에서도 Gradle로 점점 바뀌는 추세라고 들었던 것 같다. Spring Boot의 버전은 가장 안정적인 버전을 사용하는 편이라 버전 뒤에 아무것도 붙지 않은 버전을 사용한다. 메타데이터, 자바 버전은 사용자가 원하는 대로 설정해주면 된다. 다음으론 의존관계인데 창을 열게 되면 다양하고 선택 가능한 라이브러리가 나온다. 그래서 사용자가 필요로 하는 것을 선택하여 넣어주..