하나씩 차근차근
article thumbnail
게시판 만들기 - 회원가입(1)
Spring/Springboot 실습 2023. 1. 24. 16:09

이번 포스트부터 스프링 시큐리티를 이용한 회원가입과 로그인 기능을 만들어보겠습니다. 시작 먼저 pom.xml 에서 security 관련 dependency 의 주석을 제거합니다. 위에 security 와 관련된 3개의 dependency 를 주석을 제거하고 Springboot 를 재실행하고 localhost:8080 에 접속을 하면 다음과 같은 화면이 나옵니다. 이것은 스프링 시큐리티가 인증되지 않은 사용자를 해당 페이지에 접속하지 못하도록 하는 기능으로 Eclipse 의 콘솔창에 출력되는 password 를 통해 접속할 수 있습니다. (이때, Username 은 user 입니다.) Using generated security password: 04f610d7-725a-46b8-9e5a-ce874f362..

article thumbnail
게시판 만들기 - 페이징 처리(2)
Spring/Springboot 실습 2023. 1. 22. 12:40

페이징 처리 버튼 앞에서 url 에 페이지 값을 통해 각 페이지의 question 을 보여주는 기능을 만들었습니다. 하지만, 항상 url 을 통해 페이지를 보여줄 수 없기 때문에 페이지를 보여줄 수 있는 게시물 리스트 아래 페이지 버튼을 만들겠습니다. ... 이전 다음 질문 등록하기 question_list 파일에서 page 를 선택할 수 있도록 ul 태그를 통해 만들었습니다. 첫번째 li 태그는 이전의 페이지가 없을 경우 disabled 를 통해 보여지지 않고 이전 페이지가 있을 경우 "이전" 이라는 버튼을 만듭니다. 이전 두번째 li 태그는 0부터 마지막 페이지까지 버튼을 만들어줍니다. 각 버튼마다 localhost:8080/question/list?page=(페이지버튼) 을 연결해줍니다. 또한 현재..

article thumbnail
게시판 만들기 - 페이징 처리(1)
Spring/Springboot 실습 2023. 1. 22. 01:17

이번 포스트에서는 question 테이블에 저장된 게시글을 페이징 처리해서 브라우저에 보여주도록 하겠습니다. 시작 현재 데이터베이스에 데이터가 2개밖에 없기 때문에 더미데이터를 만들어주겠습니다. MariaDB [springboot_crud]> delimiter $$ MariaDB [springboot_crud]> drop procedure if exists loopinsert$$ Query OK, 0 rows affected (0.006 sec) MariaDB [springboot_crud]> create procedure loopinsert() -> begin -> declare i int default 1; -> while i insert into question(content, create_date..

article thumbnail
게시판 만들기 - 네비게이션바
Spring/Springboot 실습 2023. 1. 22. 00:21

이번 포스트에서는 모든 페이지에서 위쪽에 고정되어 있는 홈, 로그인 등의 메뉴를 보여주는 네비게이션바를 만듭니다. 네비게이션바 다음과 같이 layout.html 파일의 body 태그 안에 작성을 해줍니다. Board 로그인 layout.html 을 상속받는 모든 페이지에서 안의 내용들을 화면에 출력합니다. 다음으로 부트스트랩에서 자바스크립트를 사용하기 위해 아래 script 태그를 head 태그 안에 넣어줍니다. 페이지에 접속해보면 다음과 같이 화면이 나옵니다. 위에서 추가한 자바스크립트 기능을 사용해서 부트스트랩은 navbar 를 반응형 웹페이지로 만들어서 작은 화면일 경우 아래와 같이 우측의 메뉴 버튼을 누르면 메뉴를 보여줍니다.

의존관계 자동주입
Spring/Spring 핵심 원리 2023. 1. 21. 11:46

앞에서 스프링 컨테이너가 @Autowired 애노테이션을 찾아서 스프링 빈을 자동으로 주입했습니다. 이렇게 의존관계를 주입하는것은 아래와 같이 다양한 방법이 있습니다. 생성자 주입 수정자 주입 필드 주입 일반 메서드 주입 롬복을 사용한 주입 생성자 주입 생성자 주입 방법은 지금까지 사용한 방법으로 생성자 호출시점에 딱 1번 호출됩니다. package hello.core.order; ... @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public O..

article thumbnail
컴포넌트 스캔
Spring/Spring 핵심 원리 2023. 1. 21. 11:19

앞에서 스프링 빈을 등록할때 스프링 컨테이너를 @Configuration 과 @Bean 을 사용하는 방법과 XML 을 통해 만드는 방법으로 스프링 빈을 등록했습니다. 만약 등록해야할 스프링 빈이 많아지면 설정 정보가 커지고 누락하는 문제가 발생합니다. 그래서 자동으로 스프링 빈을 등록하는 컴포넌트 스캔을 사용해보겠습니다. 시작 컴포넌트 스캔을 사용하면 @Configuration 이 붙은 설정 정보도 등록되기 때문에 Appconfig 에 붙은 @Configuration 과 @Bean 을 지워줍니다. package hello.core; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.c..

article thumbnail
스프링 컨테이너와 스프링 빈
Spring/Spring 핵심 원리 2023. 1. 20. 15:41

앞에서 만든 예제 코드에 스프링을 사용해보겠습니다. 시작 먼저 Appconfig 에 @Configuration 과 @Bean 애노테이션을 붙여주겠습니다. package hello.core; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; imp..

article thumbnail
예제 만들기 - AppConfig 생성
Spring/Spring 핵심 원리 2023. 1. 20. 15:05

앞에서 만든 OrderServiceImpl 구현체를 보면 다음과 같이 1000원을 할인해주는 FixDiscountPolicy 적용해서 사용하고 있습니다. package hello.core.order; public class OrderServiceImpl implements OrderService{ private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); ... } 만약 금액에 따른 할인을 하는 RateDiscountPolicy 를 적용하게 된다면 아래와 같이 OrderServiceImpl 을 수정해야합니다. package hello.core.order; public class OrderServiceImpl implements Order..