- ORM
- springboot
- sql
- Django
- DI
- spring boot
- static
- spring
- Docker
- 프로그래머스
- hibernate
- SSL
- select
- PYTHON
- 자바
- 1차원 배열
- java
- 데이터베이스
- 문자열
- 스프링부트
- nginx
- 스프링
- @transactional
- jpa
- spring security 6
- mysql
- AWS
- string
- spring mvc
- join
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
목록Java & Kotlin/Spring (58)
개발하는 자몽
프록시는 어떤 객체를 사용하려고 할 때 해당 객체에 직접 요청하는 것이 아닌 중간에 가짜 프록시 객체(대리인)를 둔다. 이 프록시 객체가 대신 요청을 받고 실제 객체를 호출한다. 프록시 모드를 설정하면 의존성 주입을 통해 주입되는 빈은 실제 빈이 아닌 해당 빈을 상속받은 프록시 객체이다. 스프링은 CGLIB 라이브러리(Byte Code Generation Library)를 사용하여 프록시 객체를 주입한다. 프록시 객체 내부에는 실제 빈을 요청하는 로직이 들어있다. 클라이언트의 요청이 들어오는 시점에 실제 빈을 호출한다. → 실제 빈의 조회를 필요 시점까지 지연 프록시 객체는 실제 객체를 상속받아서 만들어지므로 클라이언트 입장에서는 실제 빈을 사용하는 것과 동일한 방법으로 사용하면 된다. @Scope의 p..
빈을 찾기 위한 다양한 의존성 검색 방법 스프링 빈 스코프를 공부하다가 의존성 주입(DI)뿐만 아니라 의존성을 갖는 빈을 검색 (DL, Depndency Lookup)할 때도 있다는 것을 알게 되었다. 스코프가 prototype이거나 request인 경우가 대표적이다. Spring은 빈을 검색하기 위한 다양한 방법들을 제공한다. @Scope("prototype") //또는 @Scope("request") public class UserRequest { ... } 1. ApplicationContext 스프링은 DI 컨테이너인 ApplicationContext를 관리하고 있다. 그래서 ApplicationContext를 통해 필요한 빈을 검색할 수 있다. @Service @RequiredArgsConstr..
수동 빈 등록과 의존관계 주입 @Bean 애노테이션은 method-level로 수동으로 빈을 등록할 때 사용한다. 메서드가 선언된 클래스 상단에는 @Configuration 애노테이션을 붙여 설정 정보 클래스임을 알려주고, 싱글톤이 깨지지 않도록 한다. (@Configuration을 붙이지 않아도 @Bean을 붙이면 다 빈으로 동록 되지만 싱글톤이 깨진다.) /* 수동 빈 등록 및 의존관계 주입 @Configuration, @Bean */ package hello.core; ... @Configuration public class AppConfig { @Bean public MemberService memberService() { //memberService에 의존관계로 memberRepository 주..
인프런 김영한 님의 스프링 인강을 보며 코딩을 하다가 궁금한 점이 생겨서 정리해본다. public class ApplicationContextSameBeanFindTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SameBeanConfig.class); ... @Configuration static class SameBeanConfig { @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public MemberRepository memberRepository2() { return ..
이 글은 아래 강의를 기반으로 작성됩니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com AOP가 필요한 상황 AOP는 언제, 왜 쓰는지를 알면 어렵지 않다. 그렇다면 언제 쓰고 싶은 걸까? 다음과 같은 상황이 주어졌다고 하자. 모든 메소드의 호출 시간을 측정하고 싶어 공통 관심 사항(cross-cutting concern) VS. 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶어 모든 메소드의 호출 시간을 측정하고 싶어서 초 단위로 측정을 했다. ..
이 글은 아래 강의를 기반으로 작성됩니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 다음 순서로 진행한다. 스프링 통합 테스트 스프링 JdbcTemplate JPA 스프링 데이터 JPA 본래 강의 순서대로라면 "H2 데이터베이스 설치"와 "순수 JDBC"가 있어야 하는데 데이터베이스 설치를 따로 다룰 필요는 없어 보이고, 순수 JDBC는 요즘 실무에서 쓰지 않는 걸로 알고 있기 때문에 넘긴다. 스프링 통합 테스트 이전까지 했던 테스트는 전혀 스프링과 관련이 없는 순수한 Java 코드로..
이 글은 아래 강의를 기반으로 작성됩니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 다음 순서대로 진행한다. 회원 웹 기능 - 홈 화면 추가 회원 웹 기능 - 등록 회원 웹 기능 - 조회 홈 화면 추가 1. 홈 컨트롤러 추가 controller 패키지에 HomeController를 추가한다. @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } @GetMapp..
지난 포스트에서 스프링 빈을 등록하는 방법에는 2가지가 있고, 그중에서 "컴포넌트 스캔과 자동 의존관계 설정" 방식을 다뤘다. 이번에는 "자바 코드로 직접 스프링 빈을 등록"한다. 이 글은 아래 강의를 기반으로 작성됩니다. 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 자바 코드로 직접 스프링 빈 등록 등록 전에 이전에 MemberService와 MemoryMemberRepository에 사용한 @Service, @Repository, 생성자 위에 @Autowired를 전부 제거한다. MemberController의 @Contro..
이 시리즈는 오랜만에 작성한다. ㅎ.. 정신차리고 다시 해야지. 이 글은 아래 강의를 바탕으로 작성됩니다. 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 스프링 빈(Bean)을 등록하는 방법에는 2가지가 있다. 컴포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록 이 글에서는 첫번째 방법을 이용해서 등록한다. 컴포넌트 스캔과 자동 의존관계 설정 멤버 컨트롤러는 멤버 서비스를 통해 회원가입을 하고, 데이터를 조회할 수 있어야 함 → 의존관계가 있다 : 멤버 컨트롤러가 멤버 서비스를 의존한다. 빈(Bean)이란? Sp..
MVC(Model View Controller) 사용자 인터페이스, 데이터 및 논리 제어를 구현하는 데 사용되는 소프트웨어 디자인 패턴 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있다. MVC 소프트웨어 디자인 패턴의 세 가지 부분은 다음과 같다. Model : 데이터와 비즈니스 로직 관리 데이터베이스와 직접적으로 상호작용하는 역할(SELECT, INSERT, UPDATE, DELETE) 데이터의 상태가 변경되는 경우, View에 알리거나 가끔 Controller에게 알리기도 한다. View : 레이아웃과 화면 처리 앱의 데이터를 보여주는 방식(UI) 템플릿 엔진, HTML/CSS 모델/DB에 직접 접근하지 않고 Controller와 상호작용 Controller : 명령을 Model과 V..