profile
백엔드 꿈나무
post-thumbnail

스프링 MVC - 웹 페이지 만들기

상품을 관리할 수 있는 서비스를 만들어보자.Item - 상품 객체상품 도메인에는 상품id, 상품이름, 가격, 수량이 있다.생성자에서 상품이름, 가격, 수량을 받는다.ItemRepository - 상품 저장소상품들은 DB를 사용하지 않고, 임시 저장소인 메모리에 저장시킨

2023년 5월 10일
·
0개의 댓글
·
post-thumbnail

스프링 MVC - 기본 기능

운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용하지 않고 별도의 로깅 라이브러리를 사용해서 로그를 출력한다@Slf4j를 사용하면 log를 사용할 수 있다.쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할

2023년 5월 4일
·
0개의 댓글
·
post-thumbnail

스프링 MVC - 구조 이해

1\. 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다.2\. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다.3\. 핸들러 어댑터 실행: 핸들러 어댑터를 실행한다.4\. 핸들러 실행: 핸들러 어댑터가 실제 핸

2023년 4월 25일
·
0개의 댓글
·
post-thumbnail

MVC 프레임워크 만들기

기존의 MVC 패턴을 적용했을때의 문제점을 알아보자.공통적인 부분이 반복적으로 일어난다.하지만 프론트 컨트롤러를 도입하면 공통적인 부분의 반복을 없앨 수 있다.프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출입구

2023년 4월 19일
·
0개의 댓글
·
post-thumbnail

서블릿,JSP,MVC 패턴

서블릿과 JSP, MCV패턴을 이용하여 간단한 회원관리 웹 애플리케이션을 만들어보자.먼저 회원 도메인 모델과 회원 저장소를 만들어준다.id는 회원 저장소에 회원이 save되면 할당된다.본격적으로 서블릿으로 회원 관리 웹 애플리케이션을 만들어보자.서블릿으로 회원 등록 H

2023년 4월 17일
·
0개의 댓글
·
post-thumbnail

서블릿

서블릿은 톰캣 같은 웹 애플리케이션 서버를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음, 톰캣 서버를 실행하면 된다. 하지만 이 과정은 매우 번거롭다.스프링 부트는 톰캣 서버를 내장하고 있으므로, 톰캣 서버 설치 없이 편리하게 서블릿 코드를

2023년 4월 15일
·
0개의 댓글
·

조회한 빈이 모두 필요할때

만약 할인 서비스를 제공하는데, 클라이언트가 할인의 종류(rate, fix)를 선택할 수 있다고, 가정하면 두가지 할인방법을 모두 가져와야 한다. 스프링을 사용하면 전략패턴을 매우 간단하게 구현할 수 있다.우선 이를위한 테스트를 만든다.DiscountService는 M

2023년 3월 30일
·
0개의 댓글
·
post-thumbnail

의존관계 자동 주입

@Autowired로 의존관계를 주입시켰는데, 사실 생성자가 1개뿐이면 생략해도 무방하다.Autowiring이 잘 된다.

2023년 3월 29일
·
0개의 댓글
·
post-thumbnail

컴포넌트 스캔

지금까지 스프링 빈을 등록할 때는 자바코드의 @Bean 등을 통해서 직접 등록할 스프링 빈을 나열했다.하지만 등록해야 할 스프링 빈이 수십,수백개가 되면 일일이 등록하기 어렵다.이를 위해 스프링은 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 이라는 기능이 있다.또 의존

2023년 3월 28일
·
0개의 댓글
·
post-thumbnail

@Configuration과 싱글톤

AppConfig 코드를 잠시 살펴보자.memberService 빈을 만드는 코드를 보면 memberRepository()를 호출한다.memberRepository()는 new MemoryMemberRepository()를 호출한다.orderService 빈을 만드는

2023년 3월 23일
·
0개의 댓글
·
post-thumbnail

싱글톤 방식의 주의점

싱글톤 패턴이든, 스프링 같은 싱글톤 컨테이너를 사용하든, 객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지(stateful)하게 설계하면 안된다.무상태(stateless)로

2023년 3월 20일
·
0개의 댓글
·
post-thumbnail

싱글톤 컨테이너

만약 고객이 메서드를 요청해서 객체를 생성하는데, 고객이 10000명이면 10000개의 객체를 생성해야 될것이다. 하지만 많은 고객이 요청을 몇번이나 하던 같은 객체에서 요청을 처리해 주는것이 싱글톤의 개념이다.위와 같이 매번 객체를 생성하면 메모리 낭비가 심할 것이다

2023년 3월 20일
·
0개의 댓글
·
post-thumbnail

Config와 DIP, OCP 해결하기

실제로 서비스를 운영한다고 가정해보자.기존에 운영되던 서비스에서 새로운 할인 정책을 추가시키려 한다.악덕 기획자: 서비스 오픈 직전에 할인 정책을 지금처럼 고정 금액 할인이 아니라 좀 더 합리적인 주문금액당 할인하는 정률% 할인으로 변경하고 싶어요. 예를 들어서 기존

2023년 3월 14일
·
0개의 댓글
·
post-thumbnail

요청 파라미터 취득하기

서버에 전송되는 값을 요청 파라미터 라고 합니다.요청 쿼리 스트링으로 보내지는 값 - http 메서드:GET으로 서버로 데이터 전송요청 본문(body)에 저장되어 보내지는 값 - http 메서드:POST로 서버로 데이터 전송뷰에서 클릭한 버튼의 name 속성값URL 경

2023년 3월 12일
·
0개의 댓글
·
post-thumbnail

AOP(관점 지향 프로그래밍)

스프링 프레임워크에서 제공하는 AOP기능은 '중심적 관심사'와 '횡단적 관심사'를 분리하여 프로그램을 쉽게 만들 수 있게 도와준다.내가 이해한대로 말해보자면,한 메서드에서 메서드 실행전, 후의 시간을 재서 메서드의 실행시간을 구해야 한다고 하면, 모든 메서드에 시간을

2023년 3월 10일
·
0개의 댓글
·
post-thumbnail

DI 컨테이너와 5가지 규칙

인스턴스 생성시 new키워드를 사용했지만, 인스턴스 생성을 프레임워크에 맡길 수 있고, 그 역할을 하는 것이 DI 컨테이너다.스프링 프레임워크는 임의로 구현한 클래스를 인스턴스로 만들어주는 기능을 제공한다.즉, DI 컨테이너가 그 기능을 가지고 있다.5가지 규칙인터페이

2023년 3월 8일
·
0개의 댓글
·
post-thumbnail

클래스 의존과 인터페이스 의존

스프링 프레임워크의 핵심적인 기능 두가지 중 하나인 의존성에대해 알아보자.우선 덧셈연산(AddCalc)과 뺄셈연산(SubCalc)의 기능을 구현해보자.클래스 의존인 경우,위와 같이 생성해 주었다.덧셈연산을 구현하였을때 코드는 위와 같다.이때, 뺄셈연산을 위해 코드를 수

2023년 3월 8일
·
0개의 댓글
·
post-thumbnail

게시판 정렬 구현

게시판 페이지의 정렬기능 thymeleaf 문법을 사용하여 구현한다

2023년 3월 7일
·
0개의 댓글
·
post-thumbnail

게시글 페이지 기능 구현

게시글 페이지 기능구현을 위해 html,xml파일을 수정하자.

2023년 3월 3일
·
0개의 댓글
·
post-thumbnail

게시판 페이지 기능 구현

게시판 페이지 기능을 구현해보자

2023년 3월 1일
·
0개의 댓글
·