[Spring] @Controller vs @RestController
·
BackEnd/Spring
@Controller Controller는 주로 View를 반환하기 위해 사용합니다.아래의 과정으로 Spring MVC Container는 Client의 요청으로부터 View를 반환합니다. 1. Client는 URI 형식으로 웹 서비스에 요청을 보냅니다.2. DispatcherServlet이 요청을 처리할 대상을 찾습니다.3. HandlerAdapter을 통해 요청을 Controller로 위임합니다.4. Controller는 요청을 처리한 후에 ViewName을 반환합니다.5. DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 사용자에게 반환합니다. Controller가 반환하는 뷰의 이름으로부터 View를 렌더링하기 위해서 ViewResolver..
[Spring/JPA] JPA Entity 연관 관계
·
BackEnd/Spring
1 대 1 관계 @OneToOne 애너테이션을 사용하면 1 대 1 관계를 맺어주는 역할을 합니다. 단방향 관계 - 외래 키 주인 정하기 Entity의 외래 키 주인은 일반적으로 N의 관계인 Entity이지만 1:1 관계에서는 외래 키의 주인을 직접 지정해야 합니다.외래 키 주인만이 외래 키를 등록, 수정, 삭제할 수 있습니다.주인이 아닌 쪽은 오직 외래 키를 읽기만 가능합니다. - @JoinColumn()은 외래 키의 주인이 활용하는 애너테이션입니다.컬럼명, null 여부, unique 여부 등을 지정할 수 있습니다.  양방향 관계 - 양방향 관계에서 외래 키의 주인을 지정할 때 mappedBy 옵션을 사용합니다.mappedBy의 속성값은 외래 키의 주인인 상태 Entity 필드명을 의미합니다. - 관계..
[SpringBoot] sts4 프로젝트 생성 및 환경설정
·
BackEnd/Spring
인프런 강의로는 인텔리제이 프로젝트 생성 설정만 있었다 나는 인텔리제이를 사용하기 힘들었던 환경이라서 sts4로 일단 프로젝트를 생성하고자 한다. 다른 사람에게도 도움이 될 수 있으면 한다. 프로젝트 생성 1번. new → Spring Starter Project로 프로젝트 생성 프로젝트 이름(Name)과 Artifact, Package/Group 설정 Java 버전은 안정적인 17로 설정한다 2번 라이브러리 추가 Spring Web MVC 패턴의 웹 프로젝트 개발할 때 필요한 기본 의존성 Tomcat 포함 Thymeleaf 자바 템플릿 엔진 Spring Boot DevTools 프로젝트 개발에 필요한 편리한 기능들을 제공 대표적으로 코드에서 무언가 변경사항이 발생할 경우 바뀐 부분을 즉시 적용하도록 도..
[Springboot] 스프링 입문 - 스프링 빈과 의존 관계
·
BackEnd/Spring
컴포넌트 스캔과 자동 의존관계 설정 스프링 빈을 등록하고, 의존 관계 설정하기 회원 컨트롤러가 회원 서비스와 회원 리포지토리를 사용할 수 있게 의존 관계를 준비하자.그렇게 하려면 컨트롤러와 뷰 템플릿이 필요하다.회원 가입을 하고, 가입된 결과를 HTML로 뿌려주는 것들을 하려고 한다. 멤버 컨트롤러가 멤버 서비스를 통해서 회원 가입을 하고,멤버 서비스를 통해서 데이터를 조회할 수 있어야 한다.이런 것을 멤버 컨트롤러가 멤버 서비스를 의존한다고 한다. 컨트롤러의 기본 틀@Controllerpublic class MemberController{ } 스프링을 처음 작동할 때 Spring 컨테이너라는 Spring 통이 생성된다.거기에 이 컨트롤러 어노태이션이 있으면 이 멤버 컨트롤러 객체를 생성한다.어노테이션으..
[SpringBoot] 스프링 입문 - 회원 관리 예제 백엔드 개발
·
BackEnd/Spring
비즈니스 요구사항 정리 → 데이터, 기능 정리회원 관리 예제 비즈니스 요구사항 정리데이터 : 회원 ID, 이름기능 : 회원 등록, 조회아직 데이터 저장소가 선정되지 않음 (가상의 시나리오)→ 성능이 중요한 DB로 할지, 일반적 관계형 DB로 할지, NoSQL로 할지 정하지 않음   회원 도메인과 리포지토리 만들기 - package hello.hellospring.domain에 코드 작성package hello.hellospring.domain;public class Member{ private Long id; private String name; //ID getter //ID setter //name getter //name setter} - hello.hellospring.repository 생성p..