본문 바로가기

백엔드 개발

회원 웹 기능 홈 화면 추가 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.. 더보기
Api Test build 코드 분석 class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEach // 각 함수 끝날 때 마다 실행하라 public void afterEach() { repository.clearStore(); // repository 패키지에 있는 clearStore 매소드 이용해라 // clearStore()는 Store 내의 key-value 쌍들을 지우는 매소드 } @Test public void save() { Member member = new Member(); member.setName("spring"); repository.save(member); Member result .. 더보기
회원 도메인과 레포지토리 만들기 1. Member Class //Member class 만들기 package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId()//ID 조회 { return id; } public void setId(Long id) //id 설정(인수로 들어온 실수가 해당 객체의 id) { this.id = id; } public String getName()//Name 조회 { return name; } public String setName(String name)//Name 설정(인수로 들어온 String이 해당 객체의 name ) { this.name = name; } } // .. 더보기
Web 애플리케이션 계층 구조 1. 컨트롤러: 클라이언트의 요청을 어떻게 처리할지 정의되어 있는 곳. 2. 서비스: 비즈니스 로직이 구현되어 있는 곳 (ex- ID 중복은 불가 하도록, 하루 300만원 이상 이체는 불가능 하도록) DB영역과 도메인 영역 연결해주는 매개체 역할 3. Repository: Domain 영역에서 받아온 객체들을 DB에 저장하고 관리 (Domain에 대한 CRUD 역할) 4. Domain: DB 테이블과 1대1 대응(mapping)되는 객체 (getter-조회, setter-설정 메소드를 가진다.) 외운 거 확인 그림 보고 각 개체들 설명 더보기
Spring 웹 개발 기초 - API 1. api 란? 한 소프트웨어에서 다른 소프트웨어로 요청을 보내거나 받을 수 있는 수단. 2. 코드분석 (1) @ResponseBody에 대한 설명 @GetMapping("hello-string") @ResponseBody //컨트롤러가 반환 값을 http body부에 직접 넣어주겠다. public String helloString(@RequestParam("name") String name) { return "hello " + name; /* para에 spring을 넣으면 hello spring이 될 것임. 여기선 view이런 걸로 그에 맞는 template 찾아 값 넣는 과정 없이 데이터가 그대로 웹 브라우저에 들어감. 데이터 원본 보기를 해도 코드가 안 뜨고 우리가 넣은 스트링이 그대로 뜸. *.. 더보기