스터디 87

8장 게시글 삭제하기: Delete

데이터 삭제 과정 클라이언트가 HTTP메서드로 특정 게시물 삭제 요청 삭제 요청을 받은 컨트롤러는 리파지터리를 통해 DB에 저장된 데이터 삭제 (기존에 데이터가 있는 경우에만 수행) 삭제가 완료 됬다면 클라이언트를 결과 페이지로 리다이렉트 데이터 삭제하기 Delete 버튼 추가 Delete 버튼을 상세페이지(show.mustache)에 추가 Edit 버튼의 코드를 복사후 버튼의 텍스트를 Delete로 수정 서버가 삭제와 수정 요청을 구분해서 동작할수 있도록 삭체 요청 URL을 "/articles/{{article.id}}/delete"로 수정 Edit 버튼과 구별하기위해 버튼 색상을 빨간색으로 수정 Delete 요청을 받아 데이터 삭제 delete() 메서드 기본 틀 만들기 ArticleControlle..

7장 게시판 수정하기 :Update

데이터 수정 과정 를 만들고 기존 데이터 불러오기 에서 Edit 버튼을 클릭 요청을 받은 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 가져옴 컨트롤러는 가져온 데이터를 뷰에서 볼수 있도록 모델에 등록 모델에 등록한 데이터를 에서 보여줌 사용자가 내용를 수정할수 있도록 함 데이터를 수정하고 DB에 반영한 결과를 볼수있게 로 리다이렉트하기 폼 데이터를(수정 요청 데이터)를 DTO에 담아 컨트롤러에서 받음 DTO 를 엔티티로 변환 DB에서 기본 데이터를 수정 데이터로 갱신 수정 데이터를 로 리다이렉트 만들기 에 Edit 버튼 만들기 상세 페이지인 show.mustache 파일을 열기 아래에 태그를 추가하고 href 속성 값으로는 연결하려는 URL인 "/articles/{{article.id}}/edit..

6장 게시판 내 페이지 이동하기

링크와 리다이렉트란? 링크 미리 정해놓은 요청을 간편히 전송 하는 기능으로 보통 페이지 이동을 위해 사용됨 HTML 의 , 태그로 작성 클라이언트가 링크를 통해 어느 페이지로 이동하겠다고 요청하면 서버는 결과 페이지를 응답 리다이렉트 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시 이를 통해 분리된 기능을 하나의 연속적인 흐름으로 연결 가능 리다이렉(재요청)를 지시받은 클라이언트는 해당 주소로 다시 요청을 보내고 서버는 이에 대한 결과 응답 링크와 리다이렉트를 이용해 페이지 연결하기 새 글 작성 링크 만들기 목록 페이지의 뷰 파일인 templates 아래 articles 아래 index.mustache 파일을 열고 아래에 태그를 추가 . 태그의 href 속성 값으로는 요청을 보..

5장 게시글 읽기: Read

데이터 조회 과정 사용자가 데이터를 조회해 달라고 웹 페이지에서 URL 요청을 보냄 서버의 컨트롤러가 요청을 받아 해당 URL에서 찾으려는 데이터 정보를 리파지터리에 전달 리파지터리는 정보를 가지고 DB에 데이터를 조회 DB는 해당 데이터를 찾아 이를 엔티티로 반환 반환된 엔티티는 모델을 통해 뷰 템플릿으로 전달 최종적으로 뷰 페이지가 사용자 화면에 출력 단일 데이터 조회하기 URL 요청 받기 조회할 데이터가 Article 이므로 controller패키지 안에있는 ArticleController 코드 열기 URL 요청을 받기위해 @GetMapping()어노테이션 작성한 후 ID에 따라 요청을 받기로 했으므로 괄호안에 "/articles/{id}" 를입력 중괄호 안에 id를 적으면 이 id는 변수로 사용됨..

롬복과 리팩터링

롬복이란 롬복이란 코드를 간소화 해주는 라이브러리 롬복을 사용하면 필수 코드를 간편하게 작성가능 로깅 기능을 통해 println()문을 개선가능 롬복 설치하기 firstproject 프로젝트 안테 build.gradle 파일을 실행 dependencies 안에 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' 코드 추가 그다음 build.gradle새로고침하기 DTO 리팩터링하기 DTO 패키지 안에있는 ArticleForm 파일 실행 그 안에 있는 생성자 코드 삭제 ArticleForm 클래스 위에 @AllArgsConstructor 어노테이션 추가 @AllArgsConstructor 는 자동으로 생성..

DTO를 데이터 베이스에 저장하기

데이터 베이스와 JPA 데이터 베이스란 쉽게 말하면 데이터를 관리하는 창고로써 모든 데이터를 행과 열로 구성된 테이블에 저장 DB 프로그램은 mySQL ,오라클, 마리아DB ,몽고DB ,H2 등 다양한 종류가 있음 JPA 를 사용하면 DB에 자바로 명령을 할수 있음 JPA 의 핵심 도구로써 엔티티와 리파지터리가 있다 엔티티(entity): 자바 객체를 DB가 이해할 수 있게 만든것 이를 기반으로 테이블 생성 리파지터리(repository): 엔티티가 DB 속 테이블에 저장 및 관리될 수 있게 하는 인터페이스 간단히 하자면 DTO를 엔티티로 변환 후 리파지터리를 이용하여 엔티티를 DB에 저장 DTO를 엔티티로 변환하기 DTO 를 엔티티로 변환하기 위해 form 객체의 toEntity()라는 메서드를 호출해..

게시판 만들고 새 글 작성하기:Create

폼 데이터란 HTML 요소인 태그에 실려 전송되는 데이터를 의미 폼 데이터를 DTO로 받기 입력 폼 만들기 resources아래에 있는 templates 디렉터리에 articles라는 디렉터리를 새로 만들고 그안에 new.mustache파일을 생성 new.mustache 파일안에 태그를 작성하고 게시판의 제목을 입력할 태그, 내용을 입력할 태그, 전송 버튼인 태그를 추가하고 버튼의 속성을 type = "submit" 으로 설정 그 전에 만들었던 header , footer 코드를 추가 컨트롤러 만들기 저번에 만들었던 src/main/java 아래에 있는 controller 패키지 안에 ArticleController 이란 새 클래스 생성 public class ArticleController 이 위에 @..

뷰 템플릿 페이지에 레이아웃 적용하기

레이아웃이란 화면에 요소를 배치하는것을 말함 /hi 페이지에 헤더-푸터 레이아웃 적용하기 1.부트스트랩 홈페이지에서 v5.0.2 페이지에서 스타터 템플릿을 복사후 greetings.mustache에 붙혀넣기 2. 부트 스트랩에 있는 navbar를 안에 붙혀넣기 Navbar Home Link Dropdown Action Another action Something else here Disabled Search 3.푸터 영역에 사이트 정보를 추가하기 ⓒ CloudStudying | Privacy | Terms 을 추가하면 4.콘텐츠 부분에 배경을 넣기 {{username}}님, 반갑습니다! 코드를 추가하면 5. 템플렛 파일을 만들고 적용하기 이런식으로 템플렛 아래에 layouts이라는 폴더에 footer, ..

MVC 패턴을 활용해 뷰 템플릿 페이지 만들기

src > main > resources 안에 있는 templates디렉터리 안에 새로운 파일 greetings.mustache를 생성 확장자 mustache는 뷰 템플릿은 만드는 도구 즉 뷰 템플릿 엔진을 의미 (Thymeleaf , JSP 등 있다) greetings.mustache 안에 HTML 코드를 생성 컨트롤러 만들기 컨트롤러 패키지 생성 컨트롤러 패키지안에 FirstController 클래스 파일 생성 이 클래스가 컨트롤러라는 @Controller 어노테이션 작성 niceToMeetYou() 메서드 선언 후 페이지를 반환 해 달라는 URL 요청하기위해 메서드 앞에 @GetMapping 어노테이션추가 @GetMapping 옆에 ("/hi")추가 return 값에 mustache파일명 입력 ※만..