스프링/스프링 입문 - 김영한 14

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

- 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비. 컨트롤러가 서비스를 통해 회원가입 하고 서비스를 통해 조회를 할 수 있음 ( 컨트롤러가 서비스를 의존함) (의존관계) @Controller : 스프링 컨테이너에 등록된 후 스프링에서 관리가 됨. @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @Autowired 생성자에 @Autowired 가 있으..

11. 회원 서비스 테스트

IntelliJ 단축키 Ctrl + Shift + T : 테스트 생성 멤버서비스테스트 작성 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions...

10. 회원 서비스 개발

IntelliJ 단축키 soutv : value를 바로 sysout 하는 기능 실행취소 (redo) : Ctrl + Shift + z Rename : Shift + F6 변수추출 : Ctrl + Shft + v 회원 서비스 작성 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springf..

9. 회원 리포지토리 테스트 케이스 작성

- 개발한 기능을 테스트 할 때 자바의 main 메소드 혹은 웹앱의 컨트롤러를 통해서 하면 단점이 많음( 실행하는데 오래걸리고 , 반복실행하기 어렵고 , 여러 테스트를 한번에 하기 어려움 .) 개발한 기능을 테스트할때 자바에서 JUnit 이라는 프레임 워크을 통해 단점을 보완함. 회원 리포지토리 메모리 구현체 테스트 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; impo..

8. 회원 도메인과 리포지토리 만들기

InteliJ 단축키 Alt + Enter = 다른 클래스 임포트 Alt + Insert = 생성 * 모든 강의를 듣고 작성을 해서 추가 된 코드가 있음. 회원 객체 생성 package hello.hellospring.domain; import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return nam..

자바 문법 정리 ( Map)

Map https://wakestand.tistory.com/112 자바 Map 사용법부터 출력까지 일단 Map의 특징을 먼저 알아보자면 Map은 선언 시 로 값을 넣는다 Key와 Value는 한 쌍으로 Key로 식별하고 Value에 사용할 값을 넣는 식이다 여기서 Key는 중복이 불가능하고 동일한 Key 값으로 값을 넣 wakestand.tistory.com Hash Map https://d2.naver.com/helloworld/831311 ( 네이버 동작원리 설명) https://codechacha.com/ko/java-map-hashmap/ Java - HashMap 사용 방법 및 예제 HashMap은 Map의 일종으로 key와 value의 쌍으로 이루어진 데이터를 보관합니다. HashMap은 데..

7.비지니스 요구사항 정의

데이터 : 회원 ID, 이름 기능 : 회원등록 , 조회 아직 데이터 저장소가 선정되지 않음 ( 가상의 시나리오 ) (후에 데이터 베이스 결정 후 변경) 컨트롤러 (controller) : 웹 MVC의 컨트롤러 역할 서비스 (service) : 핵심 비즈니스 로직 구현 예) 회원은 중복가입 안되게 하는 로직 .. 리포지토리 ( interface ) : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 ( VO ) : 비지니스 도메인 객체 , 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리되는 비지니스 도메인 객체 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황..

6. 스프링 웹 개발 기초 ( API )

1. API 방식 - 정적 컨텐츠 방식을 제외하면 HTML로 내리나 API 방식으로 데이터를 내리나 두 가지 방식 . - 일반적으론 객체를 반환하는 것을 의미. 2. @ResponsBody @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name){ return "hello " + name; //hello spring } - http에서 응당 Body 에 데이터를 직접 넣어준다는 의미 ( html Body 랑 상관 없음) - return에서 view로 안가고 문자열이 그대로 넘어감. 객체방식 @GetMapping("hello-api") @ResponseBody public Hell..

5. 스프링 웹 개발 기초 ( MVC와 템플릿 엔진 )

MVC : Model , View , Controller - 과거에는 View 와 Controller 가 구분이 안됐음. (과거의 JSP, Model 1 방식) - 역할을 확실히 나누어 View 는 화면을 그리는데 최선을 다해야 하고 - Controller, Model은 비즈니스 로직 등 내부적인 일에 집중해야함. HelloController.java package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.sprin..