| REST API 구현 과정 조회 요청 : /api/articles 또는 /api/articles/{id}> GET 메서드로 전체, 단일 Article 조회생성 요청 : /api/articles> POST 메서드로 새로운 Article 생성수정 요청 : /api/articles/{id}> PACTH 메서드로 특정 Article 내용 수정삭제 요청 : /api/articles/{id}> DELETE 메서드로 특정 Article 삭제| REST API 구현| REST 컨트롤러와 일반 컨트롤러 차이 REST 컨트롤러 : JSON, 텍스트 데이터 반환일반 컨트롤러 : 뷰 페이지 반환 | GET 구현- 전체 게시글 조회GET 메서드를 사용해 localhost:8080/api/articles 로 요청을 보냈는데 ..
자바
| JPA 로깅 설정properties 파일을 열어 JAP 로깅을 설정했습니다.logging.level.org.hibernate.SQL=DEBUG DEBUG란 로깅 레벨로 7단계가 있는데 그중에서 DEBUG는 레벨 2의 단계이고 출력 레벨을 설정하면 해당 레벨 이상의 로그가 출력됩니다.즉, TRACE(레벨 1)를 제외한 나머지 레벨의 로그가 출력되는 것입니다. | SQL 쿼리 로그 확인 | 데이터 생성 : INSERT 문 1) id 자동 생성 전략 추가 /articles 에서 내용을 입력하고 Submit을 하면 에러가 발생합니다.이는 더미데이터에서 id 1,2,3이 만들어져 있지만 내용 추가를 하게 되면 다시 id 1부터 추가가 되기 때문에 SQL에서 기본키 에러가 발생합니다. @GeneratedVal..
| 데이터 삭제 과정클라이언트가 HTTP 메서드로 특정 게시글의 삭제 요청요청을 받은 컨트롤러는 repository를 통해 DB에 저장된 데이터를 찾아 제기존에 데이터가 있는 경우에만 수행삭제가 완료되면 클라이언트를 결과 페이지로 리다이렉트| 데이터 삭제하기1) Delete 버튼 추가show.mustache 파일에 Delete 버튼을 추가하였습니다. Delete 2) Delete 요청을 받아 데이터 삭제HTTP 메서드의 DELETE 메서드를 써야 하지만HTML에서는 POST와 GET 이외에 다른 메서드를 제공하지 않아GET 방식으로 삭제 요청을 받아 처리 - delete() 메서드 만들기 GetMapping() 어노테이션으로 작성했으며 요청 접수가 오면 처리하도록 했습니다. - 삭제할 대상 가져오기DB에..
| 데이터 수정 과정| 수정 페이지를 만들어 기존 데이터 불러오기1) 상세페이지에 Edit 버튼 만들기show.mastache 파일이 상세 페이지이므로 여기에 태그를 추가해 edit 링크를 추가했습니다. 2) Edit 요청을 받아 데이터 가져오기Edit 요청을 받을 컨트롤러를 연결했습니다.ArticleController.java에 edit() 메서드를 만들었고반환할 수정 페이지인 edit.mustache 파일을 만들었습니다. 그리고 @GetMapping()을 사용해 URL인 articles/{id}/edit을 작성해 연결했습니다.컨트롤러에서 변수 사용은 중괄호 {} 하나인 것을 유의해야 합니다! edit() 메서드에 DB에 있는 기존 데이터를 불러오는 코드를 작성했으며articleReository의 f..
| 링크 (link)미리 정해 놓은 요청을 간편히 전송하는 기능ex) 페이지 이동을 위해 사용 클라이언트가 링크를 통해 어느 페이지로 이동하겠다 요청 시서버는 결과 페이지를 응답합니다. | 리다이렉트 (redirect)클라이언트가 보낸 요청을 마친 후 처리할 다음 요청 주소를 재지시하는 것분리된 기능을 하나의 연속적인 흐름으로 연결이 가능합니다. | 링크와 리다이렉트를 이용해 페이지 연결하기뷰 페이지 템플릿에서 태그를 추가하고 href 속성 값을 활용하여 링크를 걸어주면 해당 기능을 잘 사용할 수 있습니다. 1) 새 글 작성 링크 만들기 2) 입력 페이지 -> 목록 페이지 돌아가기 3) 목록 페이지 -> 상세 페이지 이동하기 4) 상세피이지 -> 목록 페이지 돌아가기
| 단일 데이터 조회하기1) URL 요청받기DB에 저장한 데이터를 웹 페이지에서 보려면 출력 페이지에 접속해야 합니다.그렇게 하려면 URL 요청을 받아야 합니다. @GetMapping("/articles/{id}") @GetMappling() 어노테이션으로 URL 요청을 받도록 했으며URL Id에 따라 /article/1, /article/2 등으로 받기로 했으므로 Id 변수로 받도록 했습니다. 2) 데이터 조회해 출력하기- id를 조회해 데이터 가져오기DB에서 데이터를 가져오는 주체는 Repository입니다. @Autowired 어노테이션으로 구현했으며생성자로 생성 후 메서드 목록을 확인해서 findById(Long id) 메서드를 사용했습니다. findById()는 특정 Entity의 id 값 기준..
| 폼 데이터Form Data란 HTML 요소인 태그에 실려 전송되는 데이터를 말합니다. 태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받는데이 객체를 DTO (Data Transfer Object)라고 하며 데이터베이스에 저장됩니다| 폼 데이터를 DTO로 받기1. 입력 폼 만들기 2. 컨트롤러 만들기 3. 폼 데이터 전송하기 페이지에서 만든 버튼을 클릭했을 때 정보를 전송하는 기능을 구현했습니다. 4. 폼 데이터 받기폼 데이터에서 post 방식으로 전송했으므로서버의 컨트롤러가 @PostMapping()을 사용하여 받습니다.@PostMapping() 안에는 받는 URL 주소를 넣습니다. 5. DTO 만들기DTO는 .dto라는 확장자로 사용하며 Pakage를 추가해 새로 Java Class를..