본문 바로가기

728x90

Study/SpringBoot

(14)
[스프링 부트 입문 17]CRUD와 SQL 쿼리 * 학습목표 데이터 CRUD 과정의 SQL 쿼리를 분석하시오. 실습 개요 1. 각 과정에서 수행되는 Query를 log로 확인해보기. 2. 확인된 log로 DB에서 직접 사용해보는 훈련 JPA 로깅 설정. application.properties 파일에 # JPA 로깅 설정 # 디버그 레벨로 쿼리 출력 logging.level.org.hibernate.SQL=DEBUG //SQL을 출력할때는 DEBUG레벨을 사용한다. 회사에서 업무를 하게되면, 무분별한 로그때문에 로그 확인시 어려움을 겪게되는데, 불필요한 로그로 인해 비지니스 로그를 찾기 힘들어진다. 그래서 레벨을 설정해주어 필요한 부분의 로그만 가져간다. # Log Level 종류 # TRACE : 추적 레벨은 Debug보다 좀더 상세한 정보를 나타냄..
[스프링 부트 입문 16]데이터 삭제하기 * 학습목표 Article 데이터를 DB에서 삭제하고, 이를 확인하시오. 데이터 삭제 흐름 3단계 1. 데이터 전달이 되면 /articles/{id}/delete 2. DB에서 찾고 삭제한다음에 3. index 결과페이지로 redirect한다, 삭제되면 알람 메세지 출력. 실습개요 삭제버튼추가 templates/show.mustache 에 button 추가. Delete //빨간색 버튼 삭제요청받기 //@DeleteMapping("articles/{id}/delete") HTML에서 공식적으로 지원하지 않아서 @GetMapping("articles/{id}/delete") 요청을 받아옵시다. public Stirng delete(){ log.info("삭제 요청이 들어왔습니다!!"); return nul..
[스프링 부트 입문 15]데이터 수정하기 * 학습목표 수정 페이지의 데이터를 DB로 갱신하고, 이를 확인하시오. 데이터의 수정 흐름 3단계 1. 데이터를 받고 /articles/update - Form 데이터가 DTO에 담겨서 Controller로 전달이되면 2. 이를 가공해서 DB에 저장한 데이터를 - 이를 Entity로 가공해서 Repository를 통해 DB로 갱신 save() 한다. - 단 기존데이터가 있는경우에만 수정되어야 함. - 여기서 서버와의 역활 분담은 MVC가 - DB와의 소통은 JPA가 한다. - DB의 관리는 SQL 언어를 통해 이루어진다. 3. show 페이지에 출력 한다. - 데이터가 서버에 이동되는 과정(HTTP) 간단히 알아봅시다. 데이터가 서버로 전송되는 과정 클라이언트에서 서버로 데이터 전송은 다양한 통신규약은 ..
[스프링 부트 입문 14]수정 폼 만들기 * 학습목표 데이터 수정 페이지를 만드시오. 1. 진행 흐름 - show(상세 페이지)에 edit 링크를 연결하면 - 컨트롤러가 해당 요청을 받아서 edit(수정 페이지)를 보여줘야겠지요? - edit 페이지에서는 기존 내용을 보여줘야 하는데 - 이를 위해서 Repository를 통해 DB에서 데이터를 가져와야 합니다. - Repository는 요청으로 던져진 Entity 가져오고 - Entity는 View에서 사용할 수 있게 Model에 등록해야 합니다. - 그럼 Model에 등록된 데이터를 View 페이지에서 사용하면 되겠지요?? 2. 링크 걸기 templates/articles/show.mustache Edit - class = "btn btn-primary" bootstrap css 기능을 사용하..
[스프링 부트 입문 13]링크와 리다이렉트 * 학습목표 링크와 리다이렉트를 사용하여, 페이지 간 이동을 연결하시오. - 지난시간 Review MVC Controller + Model + View JPA Repository + Entity DB Data - 웹 게시판 흐름 시작점이 index(목록 페이지) ↔ show(상세 페이지) ↓↑ new(글 작성 페이지) Link Redirect for Request(요청) for Response(응답) Link : , 작성 - 미리 정해놓은 요청을 간편하게 전달 Redirect : 클라이언트에게 재요청을 지시함. - 재요청 -> 업무를 위해 A로 전화했는데 남은 없는 B에서 처리하니깐 B로 연락해주시겠습니까? 다시 B로 전화함. 클라이언트가 /articles/create -> 요청 서버가 redirect:..
[스프링 부트 입문 12]데이터 목록조회 * 학습목표 - DB 속 모든 Article 목록으로 조회하시오. 1. 브라우저 요청 받기. controller/ArticleController @GetMapping("/articles") 이라는 URL로 받아온다. 2. 컨트롤러 처리 흐름 - 1. 모든 Article을 가져온다! - 2. 가져온 Article 묶음을 뷰로 전달! - 3. 뷰 페이지를 설정! 3. 타입 캐스팅 - 데이터 타입이 맞지않아 빨간줄 뜨는데 해결방법 3가지 - findAll() 메서드 : 해당 Repository에 있는 모든 데이터를 받아옴. -- 1. 우리에게 익숙한 Array List 사용 - List articleEntityList = articleRepository.findAll(); -- 2. Iterable 타입으로 ..
[스프링 부트 입문 11]데이터 조회하기 with JPA DB속 데이터를 조회하여, 웹 페이지로 확인하시오. 1. 데이터 조회 흐름 - 사용자가 브라우저를 통해서 데이터를 요청한다 - 그 요청 URL을 컨트롤러가 받는다. - 받아진 URL에서 찾고자 하는 정보를 Repository에게 전달한다. - 이를 받은 Repository는 DB에게 정보를 보내고 - DB는 해당되는 정보를 찾아서 Entity로 보낸다 - 반환받은 Entity는 model을 통해 View 템플릿으로 보내지고 - 최종적으로 요청한 사용자에게 보내짐. 2. 데이터 생성 리뷰 3. URL 요청받기 @GetMapping("/articles/{id}") public String show(@PathVariable Long id){ log.info("id = "+ id); return ""; } --..
[스프링 부트 입문 10]롬복과 리팩터링 * 롬복을 활용하여, 기존 코드를 "리팩터링" 하시오. 1. 롬복이란 코드를 간소화 시켜주는 라이브러리 Getter(), setter(), constructor(), toString()... 일일이 귀찮게 만들기 싫어서 나온 도구 2. 롬복의 기능 필수 코드의 반복을 최소화할 수 있고, Logging 기능을 통해 개선, 즉 "리팩터링" 할 수 있다. Refactoring 이란? 코드의 구조 또는 성능을 개선하는 작업 Logging 이란? 프로그램의 수행과정을 기록으로 남기는것, 자동차 블랙박스! 3. 기존 코드 확인 4. 실습 개요 @DaTa, @slf4j 롬복과 로깅 5. 롬복 라이브러리 추가 build.gradle에 dependencies{ 안에 롬복 라이브러리 두줄 추가 compileOnly 'or..

728x90