728x90

백엔드 9

[DAY 9] CRUD와 SQL 쿼리

JPA 로깅 설정application.properties 에 다음 추가# JPA 로깅 설정# 디버그 레벨로 쿼리 출력logging.level.org.hibernate.SQL=DEBUG# 쿼리 줄바꿈하기spring.jpa.properties.hibernate.format_sql=true# 매개변수 값 보여 주기logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE로깅 레벨레벨 1 TRACE : debug 레벨 보다 더 상세한 정보레벨 2 DEBUG : 응용 프로그램을 디버깅하는 데 필요한 세부 정보레벨 3 INFO : 응용 프로그램의 순조로운 진행정보레벨 4 WARN : 잠재적으로 유해한 상황 정보레벨 5 ERROR : 응용 프로그램이 수행할 ..

[DAY 8] 게시판 CRUD : Delete

흐름1. 클라이언트가 HTTP 메서드로 특정 게시글의 삭제 요청 (상세 페이지에 Delete 버튼 추가)2. 삭제 요청을 받은 컨트롤러가 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제 (ArticleController에 delete() 메서드 추가, @Getmapping 사용 - findById(id) 메서드로 id 찾은 후 null이 아닌지 확인하고 null이 아니라면 삭제)3. 삭제 완료됐다면 클라이언트를 결과 페이지로 리다이렉트 및 삭제 메시지 남기기 (삭제 후 목록으로 돌아가야하므로 redirect:/articles 설정) 삭제 완료 메세지 남기기RedirectAttributes 객체의 addFlashAttribute() 메서드 사용.addFlashAttribute() : 리다이렉트 시점에서..

[DAY 7] 게시판 CRUD : Update - form 태그에서 PATCH 메서드 이용하는 방법 / Lombok 인식 에러 고치기

흐름데이터 수정 1단계 : 수정 페이지를 만들고 기존 데이터 불러오기1. 수정 페이지 요청 (상세 페이지에 edit 버튼 추가, ArticleController에 edit() 메서드 추가, url : /articles/{id}/edit)2. DB에서 데이터를 찾아 서버로 전송(articleRepository의 findById(id) 메서드 이용)3. 가져온 데이터를 모델에 등록4. 뷰 페이지 출력 (edit.mustache 추가) 데이터 수정 2단계 : 데이터를 수정해 DB에 반영한 후 결과를 볼 수 있게 상세 페이지로 리다이렉트1. 폼 데이터 전달 (form 태그는 patch 사용 불가, post로 하되 id값을 넘겨야하므로 input에 hidden 설정으로 value="{{id}}" 추가)2. DTO..

[DAY 6] 페이지 연결 - 링크와 리다이렉트

링크 (Link)미리 정해 놓은 요청을 간편히 전송하는 기능, 페이지 이동을 위해 사용한다html의 , 태그로 작성, 클라이언트가 링크를 통해 어느 페이지로 이동하겠다고 요청하면 서버는 결과 페이지를 응답함리다이렉트 (Redirect)클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시하는 것.이를 통해 부리된 기능을 하나의 연속적인 흐름으로 연결할 수 있다.리다이렉트 지시를 받은 클라이언트는 해당 주소로 다시 요청을 보내고 서버는 이에 대한 결과를 응답함.실습 다 하고 블로그 적을 때 보니까 헷갈려서 코드 보고 다시 그림 그리면서 복습했음!

[DAY 5] 게시판 CRUD : Read

5.1 데이터 조회 과정1. 사용자가 데이터 조회 요청을 웹페이지에서 url 요청을 보냄2. 서버의 컨트롤러가 요청하는 데이터 정보를 리파지터리에 전달3. 리파지터리에서 DB에 데이터 조회 요청4. DB에서 해당 데이터를 찾아 엔티티로 반환5. 모델을 통하여 엔티티가 뷰 템플릿으로 전환6. 뷰 페이지가 사용자 화면에 출력됨 * 기본 생성자(매개변수가 아무것도 없는 생성자) 롬복 어노테이션 : @NoArgsConstructor Trouble Shooting문제 상황java: incompatible types: java.lang.Long cannot be converted to java.lang.String데이터 조회하는 show() 메서드에서 형변환 에러 발생함해결 방안 (~ing)일단 아무리 뒤져봐도 모..

[DAY 4] DB 조회와 롬복을 통한 리팩터링

스프링부트를 처음 시작할때 선택했던 H2 DB를 이용하여 데이터가 제대로 들어왔는지 확인해야한다.H2 DB- 인메모리 DB (휘발성O, 종료시 모든 메모리 삭제 / RAM에 데이터 저장)- 개발 단계 혹은 테스트 코드에서 자주 활용 (자바로 작성된 RDBS)- 브라우저 기반 콘솔 프로그램장점- 브라우저 기반이기때문에, 별도의 설치가 필요 없으며 가볍고 빠름- 메모리에서 CRUD 연산을 하기때문에 하드디스크보다 상대적으로 빠름- ANSI 표준 SQL, 호환성 지원 (다른 DB와 호환 가능)- 설정이 단순함단점- 대규모 프로젝트에서는 성능이 부족함- 백업, 복구 기능 부족 브라우저로 접속할때마다 run에서 jdbc url을 찾아서 입력해야함데이터 조회데이터 삽입INSERT INTO article(id, ti..

[DAY 3] 게시판 CRUD : Create

3.1 폼 데이터 태그에 실려 전송되는 데이터 태그에 실어 보낸 데이터는 서버의 컨트롤러가 DTO를 통해 받고, 최종적으로 DB에 저장된다. : 웹 페이지에서의 입력 양식에 쓰이는 태그태그 속성action : 폼 데이터가 전송되는 서버 urlname : 폼 식별 이름accpt-charset : 폼 전송에 사용할 문자 인코딩 지정target : action에서 지정한 url을 현재 창이 아닌 다른 위치에서 열도록 지정method: 폼을 서버에 전송할 http 메소드(GET, POST)3.2 폼 데이터를 DTO로 받기이미 git에 실습한 코드는 업로드 중이니 따로 블로그에 쓰지 않겠지만 흐름만 적고 넘어간다.3.2.1 입력 폼 만들기1. 입력 폼 페이지 생성(templates/new.mustache 추가,..

[DAY 2] MVC 패턴 이해와 실습

2.1 뷰 템플릿과 MVC 패턴뷰 템플릿 : 화면을 담당하는 기술, 웹 페이지(view)를 하나의 틀(Template)로 만들고, 변수를 삽입하여 서로 다른 페이지를 보여줄 수 있게 하는 기술책에서는 머스테치가 뷰 템플릿을 만드는 도구라고 설명한다. 머스테치와 같은 것을 템플릿 엔진이라고 부른다.템플릿 엔진 (Template Engine)지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어. 웹 템플릿 엔진은 View Code(HTML)과 Data Logic Code(DB)를 분리하여 클라이언트에게 웹페이지를 제공한다.템플릿 엔진은 서버와 클라이언트 2가지로 나눌 수 있다.(1) 서버 사이드 템플릿 엔진 (Server Side Template Engine)서버에서 구동하는 템플릿 엔진..

[DAY 1] 스프링 부트와 버전 오류 이겨내기

길벗 코딩 자율학습단 9기 스프링부트!책이 생각보다 일찍 와서 그냥 바로 시작해버렸다!그래서 지금 3장까지 진도가 나갔지만 학습일지는 진도에 맞춰서 복습 & 트러블슈팅개념으로 기록할거다.사실 자바 시작하기 전 버전 오류 억까 예상하고 있었지만 역시나...ㅋㅋ1.1 스프링 부트란스프링부트 - 자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위한 도구스프링과 무슨 차이? -> 같은 스프링 프레임워크 기반 / 스프링을 좀 더 편하게 사용하도록 개선한 것이 스프링 부트개발 환경 설정 최소화 - 스프링은 외부 라이브러리를 개발자가 직접 연동, 설정 파일을 작성해야함. 반면 스프링 부트는 프로젝트 설정과 라이브러리를 자동으로 처리하는 기능을 제공. 개발자가 간편하고 빠르게 개발을 시작할 수 있음.웹 애플리케이션 서버를..

728x90