분류 전체보기 120

7. 블로그 화면 구성하기 (3) - 블로그 글 구현하기

◎ 블로그 화면 상의 [ 보러 가기 ] 버튼을 누르면, 블로그 글이 보이도록 블로그 글 뷰를 구현해보자. 1. 엔티티에 생성, 수정 시간 추가하기 1) 글이 언제 생성되고 수정되었는지 뷰에서 확인 가능하게 코드 추가 ▪︎ Article.java에 아래의 필드 추가 @CreatedDate // 엔티티가 생성될 때 생성 시간 저장 @Column(name = "created_at") private LocalDateTime createdAt; @LastModifiedDate // 엔티티가 수정될 때 수정 시간 저장 @Column(name = "updated_at") private LocalDateTime updatedAt; • @CreatedDate : 엔티티가 생성될 때 생성시간을 'created_at' 컬럼..

외부 파일 import 방법

1. 상단 메뉴 File - Import 클릭 후, 만들어진 프로젝트의 방식에 따라 Gradle 또는 Maven 선택 단, 반드시 Import하기 전에 반드시 백업하기 2. Browser 클릭 후, Import할 파일 선택 후, Next 3. Finish 클릭 → Project Exploer창에서 확인 가능 4. 해당 프로젝트명 옆에 '[boot]'라고 표시되어 있는지 확인 없다면, settings.gradle의 root-project명과 해당 프로젝트명이 일치하는지 확인 ( 일치하지 않다면, 수정 후 저장 ) ※ build.gradle 또는 settings.gradle 수정 후에는 반드시 Refresh Gradle 해주기

7. 블로그 화면 구성하기 (2) - 블로그 글 목록 뷰 구현하기

◎ 컨트롤러의 메서드 생성 → HTML 뷰 생성 → 뷰 테스트 순서로 진행 ※ 뷰 생성 시 주의 사항 - 서버에 있는 데이터를 가져올 때, 오타 주의 ( 오타 날 경우, 무조건 500 에러 발생 ) - 뷰 템플릿 페이지는 서버 쪽 모델 데이터가 중요 → 우선적으로 데이터 값이 제대로 출력되는지 먼저 확인하여 500 에러가 발생할 확률을 줄이도록 하자! 1. 컨트롤러 메서드 작성하기 - 뷰 컨트롤러 메서드 : 뷰의 이름을 반환하고, 모델 객체에 값을 담음 1) 뷰에게 데이터를 전달하기 위한 객체 생성 ▪︎ ArticleListViewResponse : 모든 게시글 목록을 요청 시, 필요한 DTO 클래스 ▪︎ ArticleListViewResponse.java ( dto 패키지 ) package org.ch..

타임리프

❶ Model 객체 이용하기 ▪︎ HelloController.java package org.choongang.ewha.hithymeleaf.controller; import org.choongang.ewha.hithymeleaf.domain.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import lombok.extern.slf4j.Slf4j; @Slf4j// 스프링에서 로그를 사용하기 쉽게 만든 인터페이스 @Controller public class HelloController..

Thymeleaf

Thymeleaf ▪︎ Thymeleaf란? - View Template Engine으로, JSP, Freemarkerd와 같이 서버에서 클라이언트에게 응답할 브라우저 화면을 만들어주는 역할 ▪︎ Thymeleaf의 목표 - 주요 목표 : 템플릿을 만들 때 유지관리가 쉽도록 하는 것 → 디자인 프로토타입으로 사용되는 템플릿에 영향을 미치지 않는 방식인 Natural Templates을 기반으로 함 - Natural Templates : 기존 HTML 코드와 구조를 변경하지 않고 덧붙이는 방식 ▪︎ Thymeleaf의 장점 - 코드를 변경하지 않기 때문에 디자인 팀과 개발 팀 간의 협업이 편리해짐 - JSP와 달리, Servlet Code로 변환되지 않기 때문에 비즈니스 로직과 분리되어 오로지 View에 ..

7. 블로그 화면 구성하기 (1) - 타임리프

◉ 사전지식 : 타임리프 - 타임리프 : 템플릿 엔진 - 템플릿 엔진 : 스프링 서버에서 데이터를 받아 우리가 보는 웹 페이지 즉, HTML 상에 그 데이터를 넣어 보여주는 도구 단, 템플릿 엔진의 경우, HTML과 함께 템플릿 엔진을 위한 문법을 섞어 사용해야 함 - 템플릿 엔진(Template Engine) • 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어로, 웹 사이트를 어떤 형태로 만들지 도와주는 양식 • 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 분류됨 ① 서버 사이드 템플릿 엔진 (Server Side Template Engine) - 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어 HTML를 그려서 클라이언트에 전..

6. 블로그 기획하고 API 만들기 (3) - 블로그 글 작성을 위한 API 구현❸

6. 블로그 글 삭제 API 구현하기 ◉ ID에 해당하는 블로그 글을 삭제하는 API 구현 1) 서비스 메서드 코드 작성하기 ◉ BlogService.java 파일에 delete() 메서드 추가 → JPA에서 제공하는 deleteById() 메서드 이용해 데이터베이스에서 데이터를 삭제함 // 글 삭제 public void deleteById(long id) { blogRepository.deleteById(id); } 2) 컨트롤러 메서드 코드 작성하기 ◉ /api/articles/{id} DELETE 요청이 오면, {id}에 해당하는 값이 @PathVariable 애너테이션을 통해 들어옴 ▪︎ BlogApiController.java // * 글 삭제하는 메서드 @DeleteMapping("/api/a..

6. 블로그 기획하고 API 만들기 (3) - 블로그 글 작성을 위한 API 구현❷

4. 블로그 전체 글 목록 조회를 위한 API 구현하기 - 클라이언트는 데이터베이스에 직접 접근 불가 → API를 구현해볼 수 있도록 해야 함 - 모든 글을 조회하는 API를 구현해보자 1) 서비스 메서드 코드 작성하기 ◉ BlogService.java 파일에 데이터베이스에 저장되어 있는 글을 모두 가져오는 findAll() 메서드 추가 ▪︎ BlogService.java - JPA 지원 메서드인 findAll( )을 호출해 article 테이블에 저장되어 있는 모든 데이터 조회 @RequiredArgsConstructor// final이 붙거나 @NotNull이 붙은 필드의 생성자 추가 @Service // 빈으로 등록 public class BlogService { // 데이터베이스와 작업 모델 ( ..

* 자바스크립트와 css에서 한글이 깨지지 않도록 필터 생성

▪︎ Dynamic Web Project 생성 : FilterEncodingExam ▪︎ index.jsp 생성 - 테스트 시, value 속성을 이용해 초기값 자동으로 설정하기 ) - CSS 및 자바스크립트의 주소 : EL 엔진 이용 • pageContext.request.contextPath : 웹에서 상대적인 경로를 나타냄 ( 현재 위치의 문서를 기준으로 경로 인식 ) • pageContext 객체 : javax.servlet.jsp.PageContext 클래스를 상속해 웹 컨테이너가 JSP 실행 시 자동으로 생성해서 제공하는 내장 객체 • javax.servlet.http.HttpServletRequest 객체가 제공하는 정보를 활용해 정보 얻을 수 있음 ▪︎ styles.css 및 index.j..

카테고리 없음 2023.07.26

6. 블로그 기획하고 API 만들기 (3) - 블로그 글 작성을 위한 API 구현❶

3. 블로그 글 작성을 위한 API 구현하기 - 이전 시간까지 엔티티 구성이 끝났으므로, API를 하나씩 구현해보자. - API 구현 과정 ( 요청 방향과 반대로 구현 ) ① 서비스 클래스에서 메서드 구현 ② 컨트롤러에서 사용할 메서드 구현 ③ API 테스트 클라이언트 -- 요청 ( POST /api/articles ) --> 컨트롤러 -- save( ) --> 서비스 -- save( ) --> 리포지터리 1) 서비스 메서드 코드 작성하기 ◉ 서비스 계층에 블로그에 글을 추가하는 코드 작성 - 서비스 계층에서 요청을 받을 객체인 AddArticleRequest 객체 생성 - BlogService 클래스 생성한 다음 블로그 글 추가 메서드인 save( ) 구현 ◎ dto 패키지 생성 후, 컨트롤러에서 요청..