개발공부/[패스트캠퍼스] 스프링 부트 어드민 페이지 만들기(5)
-
[스프링 부트 어드민 페이지] 5. JPA 연관관계 & API 문서
Github 코드 JPA 연관관계 세 번째 글에서 다룬 JPA 연관관계가 ORM(객체관계매핑)의 핵심이라서 백기선님 유튜브도 참고해 정리했습니다. @OneToMany의 mapped by를 함으로써 둘의 연관관계가 양방향이됩니다. 그리고 관계의 주인인 테이블은 'Many'가 되는 테이블 입니다. 아래 코드에선 Book 클래스가 주인 테이블 입니다. add(Book book) 메서드 내용에 양 테이블 변경이 포함되어야 합니다. 오류는 메서드의 두 번째 코드(bookStore 관계)만 작성되어 있고 book의 관계를 선언하지 않아 DB가 싱크로할 부분이 누락되었기 때문에 오류가 발생한다고 합니다. @ToString(exclude={""}) 중복호출 제거 @ManyToOne, @OneToMany는 Lombok ..
2021.05.19 -
[스프링 부트 어드민 페이지] 4. QueryMethod
Github 코드 QueryMethod QueryMethod란 JPARepository 메서드가 findAll(), findById(), save() 등 정형화 되어있는데 커스터마이징 하여 원하는 WHERE절 조건 데이터를 입력해 데이터를 조회할 수 있는 메서드입니다. 1 2 3 4 5 6 7 8 9 10 @Repository public interface UserRepository extends JpaRepository { Optional findByAccount(String account); Optional findByEmail(String email); Optional findByAccountAndEmail(String account, String email); } Colored by Color S..
2021.05.17 -
[스프링 부트 어드민 페이지] 3. JPA CRUD
Github 코드 JPA를 통한 CRUD JPARepository 클래스를 상속하면 쿼리를 대체하는 내장 메서드를 사용할 수 있습니다. 대표적으로 findById(), save(), update()...등이 있는데 반환되는 데이터를 객체로 받을 때 Optional으로 받습니다. Optional은 null일수도 있는 객체를 받아줄 때 하용하며 제너릭 타입을 명시합니다. not null일 경우 boolean 타입을 반환해주는 isPresent() 메서드가 자주 사용됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Test @Transactional public void read() { Optional user = userRepository.findById(4L); /..
2021.05.16 -
[스프링 부트 어드민 페이지] 2. JPA Repository
Github 코드 JPA JPA는 Java Persistence API로 RDB 데이터베이스 정보를 Java ORM(Object Relational Mapping)으로 활용할 수 있도록 도와주는 라이브러리 입니다. 객체를 매핑시키는 Hibernate도 JPA를 상속한 프레임 워크입니다. JPA의 장점은 Java 객체를 DB와 호환할 수 있다는 점이 두드러지게 나타납니다. 쿼리보다 객체 지향코드에 집중할 수 있게 말이죠. 들어가기에 앞서 Spring Web MVC 패턴 구조를 간략한 도식화로 보겠습니다. DispatcherServlet은 Servlet(웹 서버의 요청-응답 처리방식이 가능하도록 확장해주는 Java 클래스)이 HTTP 요청을 Dispatch(분담시키다) 하는 Web MVC 모델의 Reques..
2021.05.12 -
[스프링 부트 어드민 페이지] 1. HTTP GET, POST
Github 코드 서버 개발자가 되기 위해서 체계적인 학습이 필요하다 생각했습니다. 실무에서 사용할 수 있는 REST API 구현을 배우고 싶어 패스트캠퍼스 Java 웹 개발자 강좌를 신청했습니다. 패키지 강좌는 Java 기초, 객체지향, 스프링 부트 API 실습(어드민 페이지/회원관리/레스토랑 예약)으로 구성되어 있습니다. (본 글은 어드민 페이지 강좌를 바탕으로 합니다.) 강사님은 예상국님이며 어드민 페이지로 Java 서버 개발자 강의를 시작한 이유는 신입 개발자한테 처음으로 주어질 업무가 어드민 페이지 API 구현일 가능성이 높기 때문이라고 합니다. 어드민 페이지를 들여다보면 프로젝트나 서비스의 전체적인 비즈니스 모델이 보이고 DB 아키텍처도 알 수 있기 때문에 이제 막 서비스를 이해하는 단계에서 ..
2021.05.11