Spring 46

회원 웹 기능 - 등록, 출력

1) Index 페이지 구성 기본 url 페이지로 접근 시 Index페이지로 접근 가능하게 화면 구성 resource > templates > home.html Hello Spring 회원 기능 회원 가입 회원 목록 2) 회원 등록 폼 신규 회원을 등록할 수 있는 폼을 만들고, 레파지토리에 연결하자. resource > templates > members > createMemberForm.html 이름 등록 3) 회원 출력 페이지 구성 thymeleaf를 통해서 each Loop를 통해서 리스트 페이지를 구현할 수 있다. # 이름 3) HomeController 작성 인덱스 페이지와, 회원등록 페이지로 이동할 수 있게 @GetMapping 작성 Post 방식으로 넘어오는 값을 받기위해 @PostMappi..

자바 코드로 직접 스프링 빈 등록하기

자바 코드로 직접 스프링 빈 등록하기 상황 발생 : 정해지지 않은 DB 해결 방법 : SpringConfig로 빈을 직접 등록, DB가 선택됬을때 SpringConfig의 MemoryMemberRepository만 수정하면된다. SpringConfig 생성 main > java > hello.hellospring > SpringConfig.java 생성 package hello.hellospring; import hello.hellospring.repository.MemoryMemberRepository; import hello.hellospring.service.MemberService; import org.springframework.context.annotation.Bean; import org.s..

컴포넌트 스캔과 자동 의존관계 설정

스프링 빈을 등록하고, 의존관계 설정하기 회원 컨트롤러가 회원서비스와 레포지토리를 사용할 수 있게 의존관계를 설정하자 컴포넌트 스캔 스프링이 시작되면 스프링 컨테이너가 생성이 된다. 이후 스프링이 @Componet을 사용하는 클래스들을 스캔한 후 빈형식으로 스프링 컨테이너에 올려놓다. 이를 스프링 빈을 등록한다고 한다. 빈을 등록하게 되면 싱글톤 형식으로 사용자가 원하는 곳에 스프링이 DI를 통해서 직접 넣어준다. 위 그림은 스프링 컨테이네어 빈(완두콩) 형식으로 Cotroller가 올라가져 있는 것을 볼 수 있는데, 이는 @Service, @Controller, @Repository의 내부에 @Componet가 있기 때문에 등록될 수 있는 것이다. 내부에 @Componet를 통해서 스캔해 등록하는 것이..

회원 관리 예제 - 백엔드 개발 (2)

1. Service 구현 service를 구현하다 보면 비즈니스 네임이랑 비슷하다는 것을 알 수 있다. 그래야지 기획자가 말하는 부분의 로직을 찾기가 쉽다. model 같은 경우 단순히 기계적으로 개발스럽게 만든다. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; public class MemberService { MemberRep..

회원 관리 예제 - 백엔드 개발 (1)

비즈니스 요구사항 정리 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비지니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비지니스 도메인 객체, 예) 회원, 주문 , 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 1. Repository interface 구현 현재 비지니스 로직에서 데이터 저장소가 선정되지 않았다고 가정하기 때문에, 인터페이스로 구현 차후에 선정될 시 변경함. package hello.hellospring.repository; import hello.hellospring.domain.M..

스플링 웹 개발 기초 - 정적 컨텐츠, MVC와 템플릿 엔진

정적 콘텐츠 - 웹브라우저에 파일을 그대로 전송해주는 방식 MVC와 템플릿 엔진 - 서버에서 데이터를 변형해서 HTML형식으로 바꿔서 전송해주 방식 API - json 데이터 포맷으로 데이터를 클라이언트에 전송해주는 방식 - 서버에서 통신할 때 사용 1. 정적 콘텐츠 스프링 부트에서는 기본적으로 정적 콘텐츠를 제공해준다. main > resource > static 디렉터리를 생성 static 디렉터리 밑에 hello-static.html 파일을 생성 url: http://localhost:8080/hello-static.html 바로 접근 가능하다. 접근 순서는 내장 톰캣 서버에서 요청을 받는다. 스프링 컨테이너에서 관련 컨트롤러를 찾는다. 없을 시 resources:static/hello-static..