본문 바로가기

백엔드 개발/SpringMVC

Spring 공부 방법 (남궁성의 Spring의 정석) 스프링 강의 들으면서 유튜브에 올라와 있는 자바의 정석을 아침,저녁 2배속으로 두 개씩 들어라. 스프링 강의가 어렵다고 질문 하는 사람들 보면 거의 다 자바 기본에 대한 질문이더라. Spring이 어려운 것이 아니라, 자바 기본이 약한 것이다. 반복해서 복습해라. 스프링의 원리보단 스프링에 익숙해지는 것이 먼저이다. 많은 사람들이 처음에 원리에 갇혀서 골머리 썩히는데, 이는 잘못된 방식이다. 자동차를 한 번도 운전 해보지 않은 사람이 자동차 내부를 뜯어 굴러가는 원리를 이해 하는 것보다, 자동차 운전을 많이 해본 사람이 자동차의 원리를 이해하는 것이 훨씬 빠를 것이다. > 이 점에 내가 그 동안 공부를 잘못하고 있었다는 것을 알게되었다. 난 항상 원리에 먼저 집중 하여, 한 학기동안 챕터 2 중간까지만 .. 더보기
H2 데이터베이스 설치 id ~~ generated by defalut as identity 의 뜻 id 값이 채워지지 않은 채 null 값으로 들어오면 DB가 자동으로 값을 채워줌 더보기
회원 웹 기능 - 조회 //MemberController 안에서 @GetMapping("/members") //members로 GET요청 들어오면 밑의 매소드 실행해라. public String list(Model model){ // list란 이름의 매소드 List members = memberService.findMember(); //Member 자료형의 member라는 이름의 리스트 생성. findMember는 저장소에 저장된 이름들을 리스트 형태로 불러옴. model.addAttribute("members",members); //model이란 테이블에 어트리뷰트 members란 곳에 value로 members list를 넣어놓음. return "members/memberList"; // resource/template/.. 더보기
회원 웹 기능 등록 내용이 많고 자칫하면 헷갈려서 코딩한 시간 경과대로 작성 및 분석 하겠음. 1.코드분석 (0) 어제 자 만든 것 까지 코드 - 유저의 이동경로를 유심히 보기 // a. Home Controller @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; // resource/template에 있는 home.html을 반환해서 viewResolver에게 가져다 줌. } } Hello Spring 회원 기능 회원 가입 회원 목록 우리는 여기서 유저가 회원 가입을 클릭했다치고 그 다음 회원 가입을 할 수 있게, 절차를 만들어야 한다. (1) 유저가 회원가입 클릭해서 /members/new를 조회할.. 더보기
회원 웹 기능 홈 화면 추가 1. 코드 분석 package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") //localhost 뒤에 아무것도 안 치고 그냥 GET 했을 때 밑의 함수로 처리해라. public String home(){ return "home"; / template에서 home.html을 찾아서 viewResolver에서 실행 시켜라. } } Hello Spring 회원 기능 회원 가입 회원 목록 2.예전에 정적컨텐.. 더보기
컴포넌트 스캔과 의존관계 설정 1. Class 간의 의존관계 설정 // 컨트롤러 Class 안에 필드값으로 멤버 서비스의 객체를 가짐 @Controller // 스프링 컨테이너에 등록 public class MemberController { private final MemberService memberService; // 멤버 서비스 객체 선언 @Autowired // 밑의 클래스를 의존하도록 주입 public MemberController(MemberService memberService) { this.memberService = memberService; //멤버 서비스 객체에 대한 초기화 } } //MemberService Class 가 저장소 Class를 자신의 Field 값으로 가지도록 설정 = 클래스 간의 의존관계 publ.. 더보기
회원 서비스 테스트 1. 코드분석 package hello.hellospring.domain; import hello.hellospring.repository.MemoryMemberRepository; import org.assertj.core.api.Assertions; 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.*; class MemberServiceTest { // test 할 membe.. 더보기
회원서비스(비즈니스 로직) 만들기 1. 코드분석 public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); //회원가입 public long join (Member member) { //같은 이름이 있는 중복 회원 발생 시 오류 메세지 보냄 -> 중복 없으면 다음 단계 순차 실행 vaildateDuplicateMember(member); memberRepository.save(member); return member.getId(); } private void vaildateDuplicateMember(Member member) { //Member type의 변수 member가 인수로 들어옴. member.. 더보기