
서버 개발하기에 앞서 Spring을 시작하는 방법에는 2가지가 있다이미 만들어져 있는 프로젝트를 사용한다새로운 프로젝트를 만든다2번째 방법인 새로운 프로젝트를 만들기 위해서는 http://start.spring.io 에 접속한다. 우선, 주로 사용하는 빌드 툴
API란 Client와 Server가 HTTP를 주고 받으며 기능을 동작하는데 정해진 규칙이라고 하였다. 이번에는 간단한 Get, Post API를 만들어보자아주 간단하게 2개의 정수를 덧셈해서 결과를 반환하는 API를 만들어보겠다.Intellij를 실행시켜 main
만들어보려하는 웹 페이지는 도서 관리 웹으로 사용자와 책에 관련된 API를 생성해야 한다.사용자사용자 등록(이름, 나이)사용자 목록사용자 이름 업데이트사용자 삭제책책 등록 및 삭제사용자가 책 빌릴 수 있음(다른 사람이 빌렸을 경우에는 불가능)책 반납여기서 사용자를 등록
서버를 재시작하였더니 저장했던 유저의 정보가 사라지는 일이 발생한다. POST API를 통해 생긴 유저 정보는 RAM에 저장이 되는데, 서버가 종료되면 RAM에 있는 정보(단기기억)이 사라진다.그래서 DataBase를 사용하여 유저 정보를 저장하면 이 문제를 해결할 수
Intellij에서 데이터베이스에 바로 접근하기 위해서는 유료 버전을 구매하거나 Database Navigator 플러그인을 설치하면 된다.스프링에 데이터베이스를 연결하기 위해서 우선 application.yml 파일을 생성해야 한다. main -> resources
바로 전에 정리한 내용 중 Post,Get API를 수정하여 데이터를 생성(Post), 데이터를 조회(Get)하는 API를 개발하였다.(정확히는 쿼리를 이용할 수 있도록 수정)이번에는 CRUD 중 update와 delete를 API로 개발해보자.가장 먼저 API의 Sp
유저 정보가 없는 유저의 데이터를 업데이트 및 삭제 시 200 OK가 출력되는 문제가 있었다. 예외처리를 별도로 해주지 않으면 존재하지 않는 데이터를 수정하거나 삭제하는 문제가 발생할 수 있다.유저 정보가 있는지 확인하기 위해 데이터를 조회하는 기능이 선행되어야 한다.
지금까지 여러 API를 만들었는데 한 가지 문제점이 있다.UserController에만 너무 많은 함수를 만든 점이다.지금이야 코드 몇 줄이지만 실제로 협업을 하게 되면 함수를 몇 백개는 만들어야 하는데 모든 기능을 한 개의 클래스에 모두 포함시키면 가독성이 너무 떨어
기존의 UserController의 과도한 역할을 3단 분리를 통해 Controller -> Service -> Repository 형태로 만들었다.메서드마다 JdbcTemplate를 매개변수로 넣어줘야 하는 번거로움은 생성자를 통해 해결하였다.각 클래스마다 생성자에
기존에는 SQL 쿼리를 사용하여 CRUD API를 만들었었다.하지만, 코드가 몇 백개인 상황에서 기존에 사용하고 있던 DB가 변경되어 다른 DB를 사용해야 할 경우 모든 API에 적어놓은 SQL 쿼리를 변경하는 것은 상당한 작업이 될 것이다.JPA를 사용하면 이 문제를
트랜잭션이란?여러 개의 SQL 쿼리를 날리는 메서드가 있다고 가정해보자. 이때 한 개의 쿼리만 안될 때 어디서 문제가 발생했는지 찾아야 한다.예를 들어, 위처럼 user 객체를 통해 사용자의 점수를 책정하는 함수가 있다고 가정해보자. 이 때 트랜잭션을 적용하면 하나라도
지금까지 사용자에 관련한 API를 만들어었다.이번에는 책과 관련된 API를 만들어보자. 책을 등록하고 대출, 반납하는 3가지 API를 만들면 된다.우선, 설계부터 해보자.가장 먼저 데이터를 가지고 있는 테이블을 만들어야 한다.그 후 Domain 패키지에 Book 객체를
기존의 BookService의 대출/반납 기능은 User, Book, UserLoanHistory에 전부 접근해서 작동했었다.대출 : Book 객체 가져옴 -> UserLoanHistoryRepository에서 대출 여부 검증 -> User 객체 가져옴 -> UserL