분류 전체보기

JAVA/Spring

[Spring] Bean Validation이란? / 사용해보기

[본 포스팅은 스프링 MVC 2편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 사용자에게 서비스를 제공할 때 검증은 굉장히 중요한 부분이다. 클라이언트에서 값에 대한 검증이 이루어져야 하고 서버에서도 마찬가지로 검증이 이루어져야 한다. (이유는 클라이언트에서 값을 조작하여 보낼 수 있기 때문이다.) 기존의 검증의 로직은 다음과 같다. //검증 로직 if (!StringUtils.hasText(i..

JAVA/Spring

[Spring] MVC 패턴의 개요 (feat. 사용 예시)

[본 포스팅은 스프링 MVC 1편 백엔드 웹 개발 핵심 기술 편을 기반으로 작성하였습니다.] 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com MVC 패턴을 알아보기 전에 왜 MVC가 나왔는지 알아보자. - MVC 패턴 이전 - 너무 많은 역할 기존의 서블릿이나 JSP로 비즈니스 로직과 뷰 렌더링까지 처리하게 되면 너무 많은 역할을 하게 되고 유지보수가 어려워진다. (하나의 기능을 수정하려면 여러 부분에서 수정이 필요함 심지어 코드도 너무 길어 가독성이 어려움) ..

JAVA/Spring

[Spring] Bean 스코프의 종류와 사용법 (싱글톤, 프로토타입)

[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 빈 스코프란? 지금까지 우리는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때까지 유지된다고 학습했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다. 빈 스코프 종류 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로..

JAVA/Spring

[Spring] 롬복(Lombok) 설치 및 간단하게 사용 (feat. 최신 트렌드)

[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 롬복(Lombok)이란? 코딩을 할 때 getter/setter, 생성자 등 반복되는 코드들이 많을 것이다. 그때 롬복을 사용하면 반복 코드가 없이 getter/setter, 생성자 등을 롬복에서 지원해준다. (코드가 눈에 안 보여 직관적이지 않아 개발자에 따라 호불호가 갈릴 수 있다.) 설치 방법 1) 스프링 Initializr로 프로젝트 생성 시 디펜던시에 Lombok을 추가해서 생성하기만 하면 된다. ..

JAVA/Spring

[Spring] 스프링 컨테이너가 싱글톤을 보장해주는 이유

[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 강의를 듣다 보니 스프링 컨테이너에 등록된 Bean들이 싱글톤일 수밖에 없는지 알게 됐다. 먼저 스프링 컨테이너에 Bean들을 등록하여 사용해보고 출력해보면 이것과 같이 클래스 명에 ~CGLIB이 붙게 되어 출력이 된다. 이것은 내가 만든 클래스가 아닌 스프링이 CGLIB이라는 바이트코드 조작 라이브러리를 사용해서 AppConfig 클래스를 상속받아 임의의 다른 클래스를 만들고 그 다른 클래스를 스프링 빈으..

JAVA/Spring

[Spring] 스프링 컨테이너를 사용해야 하는 이유 (싱글톤 패턴의 문제점 해결) 그리고 주의점

[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 스프링 컨테이너를 사용하지 않았고 싱글톤 패턴마저 사용하지 않았더라면 AppConfig는 이러했을 것이고 AppConfig.java public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepositor..

JAVA/Spring

[Spring] 기존 코드를 Spring으로 바꾸는 방법 (Configuration, Bean으로 찍먹)

[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 기존 코드 AppConfig.java public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository() { return new MemoryMemberRepository(); } public O..

JAVA/Spring

[Spring] AppConfig의 역할과 왜 사용되는지 정리

[본 포스팅은 인프런 스프링 핵심 원리 - 기본 편을 기반으로 작성하였습니다.] 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 객체 지향 프로그래밍을 할 때에는 SOLID를 잘 지키면서 코딩해야 좋은 프로그램이 된다. 하지만 기존 코드를 보면 public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy..

공부일지/메모

[메모] 윈도우 IntelliJ 단축키 정리

(계속 수정할 것임) 테스트 함수 바로 생성: Ctrl + Shift + T Generate 띄우기(생성자, 게터세터): Alt + Insert 과거 열어본 파일 보기: Ctrl + E Extract Method(refactoring): Ctrl + Alt + M 변수 자동 생성하기: Ctrl + Alt + V 배열이나 리스트를 for문으로 생성: "iter" + Tab 오버라이드: Ctrl + O 문자열을 상수로 만들기: Ctrl + Alt + C

공부일지/메모

[메모] 스프링 개발하는 순서

[인프런 스프링 핵심 원리 이해1 - 예제 만들기] 1. 클래스를 먼저 만든다. (생성자, 게터&세터) 2. (Repository)구현할 기능의 인터페이스를 생성 3. (Repository)구현 클래스를 생성해서 인터페이스를 implements를 한다. 4. 기능을 구현한다. (먼저 Repository 쪽부터 구현함) 5. 서비스 기능의 인터페이스 생성 6. 서비스 기능의 구현 클래스 생성, 상속 (인터페이스와 구현 클래스가 하나일 경우 구현 클래스의 이름을 ~~~Impl이라고 많이 쓴다.) 클래스 순서 (ENUM)Grade - (Class)Member - (Interface)MemberRepository - (Class) MemoryMemberRepository - (Interface)MemberSer..

혁키
'분류 전체보기' 카테고리의 글 목록 (10 Page)