스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라고 한다. 스프링 컨테이너 생성 과정 new AnnotationConfi...
[Spring] 컨테이너와 빈
[Spring] 이해를 위한 예제
비즈니스 요구사항 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. 회원 클래스 다이어그램 회원 객체 다이어그램 주문 회원은 상품을 주문할 수 있...
[Spring] AOP
AOP(Aspect Oriented Programming)란? AOP is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does this by adding additional behavior...
[Spring] 데이터베이스 접근방식
순수 JDBC 과거에 사용하던 방식이어서 사용하는 방식만 살펴보자 save 메소드에서 사용된 jdbc 로직 public class JDBCMemberRepository implements MemberRepository { private final DataSource dataSource; public JDBCMemberRepo...
[Spring] 빈과 의존관계
Bean이란? the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwi...
[Spring] 회원 관리 예제
비즈니스 요구사항 데이터 : 회원ID, 이름 기능 : 회원등록, 조회 일반적인 웹 어플리케이션 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 ex)회원, 주문, 쿠폰 등 주로 데이...
[Spring] 웹 개발 기초
Spring 웹 어플리케이션에서 브라우저에게 응답하는 방식은 다음과 같이 크게 3가지로 나눌 수 있다. Static Content MVC API Static Content 웹 브라우저가 /hello-static.html url을 요청하면 톰켓 내장서버는 스프링 컨테이너에 hello-static에 관련된 컨트롤러를 찾아달라...
[Spring] 프로젝트 환경설정
https://start.spring.io 에서 스프링 부트의 환경 설정이 가능하며, 버전선택, 패키지 이름, 라이브러리 추가 등 스프링 부트에 필요한 설정들을 추가할 수 있다. dependencies 추가 내용 : Spring Web, Thymeleaf(html을 만들어주는 template 엔진) 환경설정 build.gradle ...
[Design Pattern] 컴포지트 패턴
부분과 전체의 계층을 표현하기 위해 객체들을 모아 트리 구조로 구성한다. 사용자로 하여금 개별 객체와 복합 객체를 모두 동일하게 다룰 수 있도록 하는 패턴 택배 박스안에 있는 물품들의 비용을 계산하는 예로 보자. 박스안에는 양말과 바지가 있다고 했을 때 클래스 구조는 다음과 같다. Box public class Box { private...
[Design Pattern] 브릿지 패턴
구현부에서 추상층에서 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴 TV로 채널과 소리를 제어할 수있는 리모컨의 사용에 대한 예로 브릿지 패턴의 사용을 알아보자 Tv public class Tv { private boolean on = false; private int volume = 30; private int cha...