스터디/back 8

17장 ~ 19장

17장 웹 페이지에서 댓글 등록하기 이번 장에서는 댓글 등록을 위한 뷰 페이지를 만들고, JS 코드로 댓글 생성 요청을 보내고 응답 받는 것을 해보겠다. 그동안은 REST API 요청을 보낼 때 POSTMAN을 사용했었는데, 실제 게시판은 해당 웹 페이지에서 바로 요청을 보낸다. 이를 위해 사용하는 자바스크립트 API는 다음과 같다. document.querySelector() : 웹 페이지에서 특정 요소(버튼)를 찾아 반환 addEventListener() : 특정 요소에 이벤트가 발생(버튼 클릭)했을 때 특정 동작(댓글 객체 전달) 수행 fetch() : 웹 페이지에서 REST API 요청 (POST 요청)을 보낸다. _new.mustache 닉네임 댓글 내용 {{#article}} {{/articl..

스터디/back 2024.01.04

15장 ~ 16장

15장 댓글 컨트롤러와 서비스 만들기 앞의 14장에서 엔티티와 리파지터리를 생성했다. 이번에는 댓글 CRUD를 위한 REST API를 완성할 것이다. API 주소 설계는 다음과 같다. GET /articles/articleId/comments POST /articles/articleId/comments PATCH /comments/id DELETE /comments/id 컨트롤러&서비스 틀 만들기 댓글 컨트롤러와 서비스 틀을 만들것이다. REST 컨트롤러는 api 패키지 안에 생성. CommentApiController.java @RestController public class CommentApiController { @Autowired private CommentService commentServic..

스터디/back 2024.01.04

12장 ~ 14장

12장 서비스 계층과 트랜잭션 서비스란? 컨트롤러와 리퍼지터리 사이에 위치하는 계층으로 서버의 핵심 기능(비즈니스 로직)을 처리하는 순서를 총괄한다. 서비스 업무 처리는 트랜잭션 단위로 진행된다. 트랜잭션이란? 모두 성공해야 하는 일련의 과정을 의미한다. (쪼갤 수 없는 업무 처리의 최소 단위) 트랜잭션이 실패롤 돌아갈 경우 진행 초기 단계로 돌리는 것을 롤백(Rollback)이라고 한다. 지난번에 만든 ArticleApiController.java 에 서비스 계층을 추가하겠다. 먼저, Controller 안의 모든 코드를 주석 처리... [ ArticleApiController.java ] @Slf4j // 로그 찍는 어노테이션 @RestController // REST 컨트롤러 선언 public cl..

스터디/back 2023.12.21

Part 3) REST API와 JSON | HTTP와 REST 컨트롤러

10장 REST API와 JSON REST API (Representational State Transfer API)란? 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다. HTTP 요청에 대한 응답으로 서버의 자원을 반환하는 것. (특정 기기에 종속되지 않는 모든 기기에서 통용될 수 있는 데이터 반환) 이때, 응답하는 데이터는 JSON 형식으로 반환된다. (XML은 예전 방식) PUT method 와 PATCH method 의 차이점 PUT PATCH 기존 데이터를 전부 새 내용으로 변경, 만약 기존 데이터가 없다면 새로 생성한다. 기존 데이터 중에서 일부만 새 내용으로 변경한다. 실습은 Postman 으로 진행할 것이다.( 책에서는 Talend API Tester 를 썼지만..

스터디/back 2023.12.14

Part 2) 게시판 만들기 (3) - 리다이렉트 / update / delete / SQL 쿼리

6장 게시판 내 페이지 이동하기 리다이렉트(redirect)란? 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시하는 것. 분리된 기능을 하나의 연속적인 흐름으로 연결할 수 있다. 기존 서비스 문제점 1) 목록 페이지 : 새 글 작성 링크 X 2) 입력 페이지: 목록 페이지로 이동 X 새 글 작성 링크 만들어줌. [ index.mustache ] table 태그 밑에 a 태그 추가 New Article {{> layouts/footer}} 입력 페이지에 목록 페이지로 돌아가는 링크 추가 [ new.mustache ] submit button 아래에 a 태그 추가 Submit Back {{>layouts/footer}} 이렇게 back 링크가 생긴 것을 확인할 수 있다. 새로운 문..

스터디/back 2023.12.07

Part 2) 게시판 만들기(2)

롬복이란? 코드를 간소화하게 해주는 라이브러리이다. 이전에 구현했던 코드를 롬복을 활용해서 리팩터링할 것이다. build.gradle 파일의 dependenices { } 부분에 아래 코드를 추가해준다. compileOnly 'org.projectlombok:lombok:1.18.0' annotationProcessor 'org.projectlombok:lombok:1.18.0' 롬복이 설치된 것을 확인할 수 있다. [ DTO 리팩터링 ] 앞서서 작성했던 ArticleForm.java 에서 생성자 코드와 toString() 메서드를 지우고 어노테이션으로 대체해줬다. package com.example.firstproject.dto; import com.example.firstproject.entity.A..

스터디/back 2023.11.23

Part 2) 게시판 만들기(1)

새 글 작성하기 (Create) 구현 1) 폼 데이터 폼 데이터는 HTML 요소인 태그에 담겨서 전송되는 데이터를 의미한다. ( 웹 브라우저 ----데이터-----> 서버 ) 태그로 전송된 데이터는 서버의 컨트롤러가 객체에 담아서 받는다. (객체는 DTO ) 그리고 DTO로 받은 데이터는 DB에 저장된다. 2) 폼 데이터를 DTO로 받기 [ new.mustache ] {{>layouts/header}} 제목 내용 Submit {{>layouts/footer}} form 태그에 action 속성과 method 속성을 설정한다 action : 어디에 보낼지 정하는 것. method : 어떻게 보낼지 정하는 것. ( get 또는 post ) [ new.mustache ] -> localhost:8080/art..

스터디/back 2023.11.21

Part1 ) 스프링 부트 개요

새롭게 시작하는 책! 매일 조금씩 공부하겠다고 다짐했다. 1장 스프링 부트 시작하기 1) 스프링 부트란? 스프링 부트는 스프링 프레임워크(Spring Framework)를 개선한 것이다. 개발 환경 설정을 간소화 미리 설정된 스타터 프로젝트로 외부 라이브러리를 최적화해 제공한다. 웹 애플리케이션 서버를 내장 WAS 서버인 톰캣을 내장하고 있어서, 웹 서비스를 .jar 파일로 간편하게 배포할 수 있다. 2) 개발 환경 설정 1. JDK 17 설치 스프링 부트 3는 JDK 17이상만 지원하기 때문에 JDK 17 설치 필수! https://yegenie2.tistory.com/2 [JAVA] JAVA 8에서 JAVA 11로 변경하기 최근 듣고있는 스프링 강의에서 강사님이 java 버전을 11로 쓰라고 권장하셨..

스터디/back 2023.11.15