- java
- 데이터베이스
- 스프링
- sql
- spring mvc
- jpa
- Django
- nginx
- AWS
- spring security 6
- DI
- join
- PYTHON
- 1차원 배열
- Git
- session
- Docker
- SSL
- spring boot
- mysql
- @transactional
- 스프링부트
- ORM
- 자바
- spring
- 프로그래머스
- select
- 문자열
- springboot
- string
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록spring (13)
개발하는 자몽
지난 포스팅에 이어서 작성합니다.2024.10.02 - [Java] - Java/Spring 테스트 - 1 의존성의존성컴퓨터 공학에서 말하는 의존성(Dependency)은 결합(Coupling)과 같은 의미로, 다른 객체의 함수를 사용하는 상태를 말함 ⇒ A는 B를 사용하기만 해도 의존한다고 할 수 있음의존성을 약하게 만드는 기술 중 하나가 의존성 주입필요한 값을 `new`해서 직접 인스턴스화하는 것이 아닌 외부에서 넣어주는 것`new`를 이용하여 인스턴스화 하는 것은 하드 코딩의존성 주입은 의존성을 약화시키는 것, 의존성을 완전히 없애는 방식이 아님의존성 제거 == 객체 간의 협력 부정 / 시스템 간의 협력 부정대부분의 디자인 패턴이나 설계는 어떻게 하면 의존성을 약화시킬 수 있는지 고민한 결과..
스프링 부트 - 핵심 원리와 활용 | 김영한 - 인프런김영한 | 실무에 필요한 스프링 부트는 이 강의 하나로 모두 정리해드립니다., 백엔드 개발자를 위한 스프링 부트 끝판왕! 실무에 필요한 내용을 모두 담았습니다. [임베딩 영상] 김영한의 스www.inflearn.com외부설정과 프로필1 오랜만에 Spring을 공부하고 있는데 설정 분리 등을 다 잊어버린 것 같아서 복기 겸 간단하게 정리한다. DB 설정값을 코드 내부가 아닌 개발 서버와 운영 서버에 `application.properties`와 같은 파일을 두어 설정을 주입할 수 있다. 하지만 각 서버에 저장된 설정 파일을 관리하거나 변경 이력을 확인하기 어렵다. 이러한 문제점은 설정 파일을 프로젝트 내부에 포함해서 관리하여 해결할 수 있다. 설..
스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 섹션 5. 동적 프록시 기술 !중요! 동적 프록시를 공부하기 전 자바의 리플렉션을 알아야 한다 어제 공부한 내용을 간단하게! 정리해 보자. 리플렉션(Reflection) 스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 섹션 5. 동적 프 backend-jaamong.tistory.com 프록시를 생성할 때 interface가 있다면 JDK 동적 프록시로 생성..
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 섹션 6. 로그인 처리1 - 쿠키, 세션 2023.03.15 - [Spring] - [Spring] 로그인, 로그아웃 처리 - 쿠키, 세션 지난 포스트에서 쿠키를 사용하여 로그인을 유지할 수 있었다. 여기에는 심각한 보안 문제가 있다. 쿠키의 보안 문제 쿠키 값은 변경이 가능하다. 로그인 후 개발자 도구를 켜서 Application 탭을 클릭하자. 그다음 Storage>Cookies를 클릭하면 쿠키를 확인할 ..
이 글은 인프런 김영한 님의 강의를 바탕으로 작성한 글입니다. Service 계층은 비즈니스 로직에만 집중해야 한다. Repository에서 발생한 DB 오류로 인해 Service 단에서 DB 관련 의존관계를 갖지 않도록 체크 예외를 언체크 예외(런타임 예외)로 변환하여 던졌다. 체크 예외, 언체크 예외 이 글은 김영한 님의 "스프링 DB 1편 - 데이터 접근 핵심 원리" 강의에 기반하여 쓰였습니다. 스프링이 제공하는 예외 추상화를 이해하기 위해서는 자바 기본 예외에 대한 이해가 필요하다. 자바 backend-jaamong.tistory.com 체크 예외를 런타임 예외로 변환하기 위해 개발자가 일일이 처리하기에는 데이터 접근 계층이 수백 개인 경우 큰 문제가 된다. 이 부분을 스프링이 해결해 준다. 스프..
프록시는 어떤 객체를 사용하려고 할 때 해당 객체에 직접 요청하는 것이 아닌 중간에 가짜 프록시 객체(대리인)를 둔다. 이 프록시 객체가 대신 요청을 받고 실제 객체를 호출한다. 프록시 모드를 설정하면 의존성 주입을 통해 주입되는 빈은 실제 빈이 아닌 해당 빈을 상속받은 프록시 객체이다. 스프링은 CGLIB 라이브러리(Byte Code Generation Library)를 사용하여 프록시 객체를 주입한다. 프록시 객체 내부에는 실제 빈을 요청하는 로직이 들어있다. 클라이언트의 요청이 들어오는 시점에 실제 빈을 호출한다. → 실제 빈의 조회를 필요 시점까지 지연 프록시 객체는 실제 객체를 상속받아서 만들어지므로 클라이언트 입장에서는 실제 빈을 사용하는 것과 동일한 방법으로 사용하면 된다. @Scope의 p..
수동 빈 등록과 의존관계 주입 @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 ..
스프링과 객체 지향의 관계를 정리해보자. 스프링과 객체 지향 스프링은 객체 지향 언어인 Java 기반의 프레임워크로 좋은 객체 지향 애플리케이션을 개발할 수 있도록 도와준다. 객체 지향의 특징 추상화 캡슐화 상속 다형성 객체 지향 프로그래밍 객체 지향 프로그래밍은 컴퓨터 프로그램을 "객체"들의 모임으로 보는 것으로 각 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 이렇게 객체들이 주고받고 하는 것을 "협력"한다고 하자. 또한 프로그램을 유연하고 변경하기 좋게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 다형성? 다형성(Polylmorphism)은 하나의 객체가 여러 타입을 가질 수 있다는 것을 의미한다. 세상을 역할과 구현으로 구분해보자. 운전자(역할)는 자동차(역할)의 종류가 어떤 것..
이 글은 아래 강의를 기반으로 작성됩니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com AOP가 필요한 상황 AOP는 언제, 왜 쓰는지를 알면 어렵지 않다. 그렇다면 언제 쓰고 싶은 걸까? 다음과 같은 상황이 주어졌다고 하자. 모든 메소드의 호출 시간을 측정하고 싶어 공통 관심 사항(cross-cutting concern) VS. 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶어 모든 메소드의 호출 시간을 측정하고 싶어서 초 단위로 측정을 했다. ..