React - SpringBoot 연결하기 (회원가입+todo리스트 만들기) 3

2024. 7. 16. 11:20React

TodoService

package com.kh.service;

import com.kh.dto.TodoMember;

public interface TodoService {
	int idCheck(String id);
	int signup(TodoMember member);
}

 

 

TodoServiceImpl

package com.kh.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.kh.dto.TodoMember;
import com.kh.mapper.TodoMapper;

@Service
public class TodoServiceImpl implements TodoService{

	@Autowired
	private TodoMapper todoMapper;
	
	//interface에 기능이 명시가 되어있고 명시된 기능을 완벽하게 만드는 오버라이드(재사용)이라는 표기 작성
	//생략이 가능하나 개발자 간의 약속이니 작성해주는 것이 좋음
	
	//만약 판매자가 회원가입한 경우
	@Override
	public int idCheck(String id) {
		return todoMapper.idCheck(id);
	}
	
	@Override
	public int signup(TodoMember todoMember) {
		return todoMapper.signup(todoMember);
	}
}

** Service  /  ServiceImpl

Service : 코드를 작성하는데 있어 어떠한 서비스를 사용하겠다는 계약, 정의
-> 어떤 메서드(기능)들이 있어야하 그 메서드들이 어떤 역할을 하는지 정의

ServiceImpl : 인터페이스로 작성한 Service의 실제 기능 작성
-> 비슷한 기능을 각 서비스에 맞춰 사용하겠다는 의미
    ex) createUser = user를 만들 때 user를 관리자 / 소비자로 나눠서 만들기

 

 

TodoController

package com.kh.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.kh.dto.TodoMember;
import com.kh.service.TodoService;

import lombok.extern.slf4j.Slf4j;

//스프링부트 어플리케이션(폴더 안)에서 html 코드를 작성해주는 것이 아니라
//React나 url 주소를 공유할 때 사용
@RestController
@Slf4j
public class TodoController {

	@Autowired
	private TodoService todoService;
	
	@GetMapping("idCheck")
	public int idCheck(@RequestParam("id") String id) {
		return todoService.idCheck(id);
	}

	@PostMapping(value="/signup")
	public int signup(@RequestBody TodoMember todoMember) {
		return todoService.signup(todoMember);
	}
}

 

** 아이디 중복 검사 
      @Param(파라미터 = 매개변수(중간에 개입해 값을 변하게 하는 수))
      => @Param id 값을 가져와서 아이디 중복 결과를 보여줌


      return 아이디 중복 확인 후에 결과를 되돌려 주는 것
      => return 중복 시 1, 중복이 아닐 시 0 반환

 

** 회원 가입
      @Param member 회원 가입할 때 작성한 정보 모두 가져오기
      return 회원가입을 성공하면 1, 실패시 0 반환

 

** 어노테이션

      @Request = DB에 특정 값이 있는지, 또는 값을 넣거나 수정을 요청
      @RequestParam = 특정 값만 선택해서 요청, 특정 값을 변환해서 요청
      @RequestBody = 프론트에서 작성하고 Body로 전달해주는 모든 값을 넣어줌
         -> React 기준
             body : JSON.stringify(input값)
              => 모든 input값들을 DB에 넣겠다 선언

      @Response DB에서 전달받은 값을 프론트에 전달할 때 사용
      @ResponseParam 특정 값만 프론트에 전달함을 선언
      @ResponseBody = html에서 body로 보여줄 모든 값을 전달

 

회원가입 성공 시
DB 속 회원 목록
중복 아이디 시 에러