본문 바로가기

Spring_inflearn/입문20

[Spring] inflearn 스프링 입문 - 스프링 DB 접근 기술 1 H2 데이터베이스 설치 H2 데이터베이스 설치 데이터 베이스 sql 가지고 application server와 db 연결. 연결 시 필요한 기술 JDBC 스프링이 제공하는 JDBC template - application에서 database로 sql을 편리하게 날릴 수 있음. 보다 더 혁신적인 방법 - sql조차 개발자들이 직접 짜는 것이 아닌 sql을 JPA가 쿼리를 직접 만들어 날려줌 JPA를 쓰면 객체를 바로 DB에 쿼리 없이 저장. 스프링 데이터 JPA - 스프링에서 JPA를 편리하게 쓸 수 있도록 감싼 기술 H2데이터베이스 다운로드 : https://www.h2database.com/html/download-archive.html 권한 주기 cd h2 ll cd bin ls -arlth chmo.. 2022. 9. 14.
[Spring] inflearn 스프링 입문 - 회원 관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 memberController를 통해 회원 등록, 조회 홈 컨트롤러 추가 package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 아무것도 없으면 static/index.html로 감(welcome page) 그러나 우선순위 있음 웹 브라우저에서 요청이 오면 먼저 스프링 컨테이너 안에 관련 컨.. 2022. 9. 13.
[Spring] inflearn 스프링 입문 - 스프링 빈과 의존관계 2 자바 코드로 직접 스프링 빈 등록하기 MemberService @Service, @Autowired 지우기 MemoryMemberRepository @Repository 삭제 실행 -> MemberService가 스프링 빈에 등록 안되어 있음. => 오류 컴포넌트 스캔 아닌 직접 등록하는 방법 SpringConfig 파일 만들기 hello-spring/src/main/java/hello/hellospring/SpringConfig.java package hello.hellospring; import hello.hellospring.service.MemberService; import org.springframework.context.annotation.Bean; import org.springframew.. 2022. 9. 13.
[Spring] inflearn 스프링 입문 - 스프링 빈과 의존관계 1 컴포넌트 스캔과 자동 의존관계 설정 회원가입, 회원가입결과 html에 보여주기 오류 => MemberService를 찾을 수 없다. MemberService : 순수한 자바 class. 스프링이 알 수 있는 방법이 없음. @Service 넣어줌. 스프링이 컨테이너에 MemberService를 등록해줌 MemoryMemberRepository : @Repository. controller 통해서 외부 요청받고 service에서 비지니스 로직 만들고 repository에서 데이터 저장. 정형화된 패턴. 스프링이 뜰 때 controller, service, repository 가지고 옴 controller와 service 연결 : @Autowired MemberController 생성 될 때 스프링 빈에 등록.. 2022. 9. 12.
[Spring] inflearn 스프링 입문 - 회원 관리 예제 - 백엔드 개발 2 회원 서비스 개발 회원 서비스 : 회원 리포지토리, 도메인을 활용해 비지니스 로직 작성 * 회원 가입 기존 : if != null 과 같이 사용 Optional 사용하면 Optional 안에 member 객체가 있음. Optional 통해 여러 메소드 사용 null 가능성 있으면 Optional로 감싸서 반환. result.get()과 같이 바로 꺼내는 것 권장하지 않음 Optional result = memberRepository.findByName(member.getName()); 과 같이 Optional 을 바로 반환하는 것 좋지 않음 memberRepository.findByName(member.getName())의 결과가 Optional이므로 바로 메소드 쓰는 것 권장 메소드 따로 빼기 extr.. 2022. 9. 9.
[Spring] inflearn 스프링 입문 - 회원 관리 예제 - 백엔드 개발 1 비지니스 요구사항 정리 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 회원 리포지토리 테스트 케이스 작성 도메인 - Member 클래스 package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return nam.. 2022. 9. 9.