목록네이버클라우드 AIaaS 개발자 양성과정 1기/Spring Framework, Spring Boot (12)
개발자입니다

### 65. 프로젝트에 서블릿 컨테이너(예:톰캣) 삽입하기 central.sonatype.com 에서 "tomcat-embed-jasper" 검색해서 9.0.73 버전(javaEE) 코드 복사해서 build.gradle 붙인 후 $ gradle eclipse 한다. Referenced Library 에 다음 추가된다. ### 65. 프로젝트에 서블릿 컨테이너(예:톰캣) 삽입하기 - 프로젝트에 톰캣을 삽입하여 구동하는 방법 build.gradle 에 임베디드 톰캣 서버 코드 추가해서 $ gradle eclipse 한다. plugins { id 'eclipse-wtp' // 'eclipse' 플러그인이 자동 포함됨 id 'war' // 웹 애플리케이션 관련 명령을 사용할 수 있다. } // CLI 환경에서..

### 64. Back-end 와 Front-end 분리하기: 클라이언트 렌더링 방식으로 전환 @PutMapping 에 멱등성(idempotent) 적용 우선, WEB-INF 의 defs, jsp, thymeleaf, tiles 폴더 삭제한다. PUT request 는 여러번 시도 하더라도 결과가 동일하다 = 멱등(idempotent)하다. PUT, DELETE 를 /boards/{no} 형식으로 요청하도록 변경한다. package bitcamp.myapp.controller; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.UUID; import javax.servlet.ServletConte..

Use-case 식별 - include / extend 관계 Use-case 식별 Guide II ① 여러 Use-case 에 중복되는 시나리오가 있다면 별도의 Use-case 로 추출하라. 게시글 등록하기, 게시글 변경하기, 게시글 삭제하기 에서 로그인을 《include》 한다. stereotype 이라 한다. → 로그인은 업무가 아니기 때문에 원래는 Use-case 가 될 수 없다. ② CRUD Use-case 들을 한 개의 Use-case 로 묶을 수 있다. 단, 묶은 Use-case 가 2주~4주 안에 개발 가능해야 한다. 게시글 등록하기, 게시글 조회하기, 게시글 변경하기, 게시글 삭제하기 를 묶어서 게시글 관리라 한다 → Handle Board, Manage Board ③ 서로 관련있는 Use..

64. Front-end / Back-end fetch(게시글 조회) 를 ① 호출 하면 AJAX 작업 을 ② 실행 하고 종료된다. fetch(로그인 사용자 조회) 를 ③ 호출 하면 AJAX 작업 을 ④ 실행 하고 종료된다. AJAX 작업 두 개가 비동기 실행한다. 순차적으로 실행하는 것이 아니라 서로 독립적으로 병행하여 실행한다. fetch(게시글 조회) 를 ① 호출 하면 Promise 객체를 리턴한다. 여기서 .then(response) 로 결과를 통지한다. 여기서 Promise 객체를 리턴한다. 여기서 .then(result) 로 결과를 통지한다. 여기서 function checkowner(작성자 번호) { fetch(로그인 사용자 조회) 로 Promise 객체를 리턴한다. 결과를 .then(resp..

64. Front-end / Back-end ① Server-rendering → 클라이언트가 출력할 UI 를 서버에서 생성 Web Browser 가 App. Server 로 ① 요청한다. 여기서 Controller 를 ② 실행한다. 여기서 Service 를 ③ 실행 하고 여기서 DAO 를 ④ 실행 한다. 여기서 DBMS 로 ⑤ 질의하고 리턴 받는다. 리턴을 계속 받아서 App. Server 까지 온다. 여기서 JSP 페이지를 ⑥ 요청하고 ⑦ HTML 생성 코드를 응답 받는다. ⑧ 응답 (HTML + CSS + JavaScript)을 Web Browser 로 해서 ⑨ HTML 출력한다. "Communication Diagram" ② Client-rendering → 서버에서 받은 데이터를 가지고 클라이언..

62. Thymeleaf ① 태그 반복 생성 ... for(Student student : request.getAttribute("students")) {...} 와 같다. ② 태그의 콘텐트 설정 100 시작태그, 콘텐트, 끝태그 | 모두를 element=tag 라 부른다. 1 에서 ${student.no} 값이 1 부분에 설정된다. ③ 링크 설정 홍길동 이름 에서 ${student.name} 를 이름 부분에 설정한다. context root => /view → /web/view context root = web app. 경로 relative path => view → /web/app/student/view 현재 경로 absolute path => ~/view → http://localhost:8080/..