본문 바로가기

전체 글104

도서관리 프로젝트[9] 책 반납 기능 만들기 API스펙 확인하기 이미 테이블 도메인은 존재하므로, 테이블은 추가하지 않아도 됩니다. 그런데, 한가지 고민해볼점이 있습니다. 이런 경우에는 새로 만드는게 더 좋습니다. 왜냐하면 반납 기능만 수정해야할 때가 온다면 새로운 DTO객체를 수정하는게 더 낫기 때문입니다! 따라서 BookReturnRequest를 따로 만듭니다. 1.BookReturnRequest package com.group.libraryapp.dto.book.request; public class BookReturnRequest { private String userName; private String bookName; public String getUserName() { return userName; } public String getB.. 2023. 6. 25.
도서관리 프로젝트[8] 책 대출 기능 만들기 APi스펙 1. 테이블 만들기 is_return 은 반납여부 2. UserLoanHistory 객체 만들기 package com.group.libraryapp.domain.user.loanhistory; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class UserLoanHistory { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; private long userId; .. 2023. 6. 25.
도서관리 프로젝트[7] 책 생성 API개발하기 목표 요구사항 : 도서관에 책을 등록할 수 있다. 1. book테이블 생성 2. Book 객체 만들기 3. repository만들기 4. DTO만들기 5. service만들기 6. controller만들기 2023. 6. 25.
[JAVA] 트랜잭션 트랜잭션이란? 쪼갤 수 없는 업무의 단위로 한번에 성공하거나, 한번에 실패하는 것을 의미 쇼핑몰 사이트에서 물건을 주문하면? 1) 주문기록 저장하고 2) 포인트를 저장하고 3) 결제 기록을 저장해야 한다! 이렇게 결제기록에서 에러나서 결제기록 저장만 안되었다면? 주문 기록과 포인트는 있는데 결제 기록이 없다!! 트랜잭션 명령어 트랜잭션 시작하기 start transaction; 트랜잭션 정상종료(SQL 반영) commit; 트랜잭션 실패 처리(SQL미반영) rollback; 트랜잭션 내에서 수행된 SQl들은 다른 단말기에서는 그 SQL의 결과물이 보이지 않게됩니다. commit을 하고나면 비로소 결과가 보입니다. 트랜잭션 적용과 영속성 컨텍스트 주문, 포인트, 결제 이 세개의 저장이 한몸처럼 움직여야 합.. 2023. 6. 25.
[JAVA] JPA 대충정리 By앞에 들어올 수 있는 구절들 객체나 optional 반환 Name존재하는지 보고싶으면 existsByName(name); 써주면 됨. between 예로 들면 2023. 6. 25.
도서관리 프로젝트[5] IoC 제어의 역전, 인터페이스(interface), @Primary 제어의 역전(Inversion of Control) 스프링 컨테이너가 필요에 따라 개발자 대신 Bean들을 관리(제어)해주는 행위 일반적인 상황에서는 개발자가 직접 객체를 제어해야 했다. new 연산자를 통해 객체를 생성하고, 객체의 의존성을 맺어주고, 초기화를 해주고 등등... 하지만 Spring 에서는 xml파일 또는 어노테이션 방식으로 스프링 컨테이너에 Bean(객체)를 등록하기만 하면, 스프링 컨테이너에서 Bean의 생명주기(생성 -> 의존성 설정 -> 초기화 -> 소멸)를 전부 관리해준다. 즉, 객체에 대한 제어권이 컨테이너로 역전되기 때문에 제어의 역전이라고 하는 것이다. 장점 개발자는 객체 관리에 덜 신경쓸 수 있게 되어 다른 부분에 더 집중할 수 있게 됨 약한 결합(참고 링크)을 이용하여 .. 2023. 6. 22.