본문 바로가기

Back-end/Spring boot

(11)
[Spring boot] 11일차_HTTP와 REST 컨트롤러 REST API의 의미 REST : HTTP URL로 서버의 자원을 명시하고, HTTP 메서드(POST, GET, PATCH/PUT, DELETE)로 해당 자원에 대해 CRUD(생성, 조회, 수정, 삭제)하는 것을 말함 API : 클라이언트가 서버의 자원을 요청할 수 있도록 서버에 제공하는 인터페이스 -> REST API란 REST 기반으로 API를 구현한 것. REST API를 잘 구현하면 클라이언트가 기기에 구애받지 않고 서버의 자원을 잘 이용할 수 있음. 또한 클라이언트의 요청에 서버가 체계적으로 대응할 수 있어 서버 프로그램의 재사용성, 확장성이 좋아짐 REST API구현 REST API로 요청과 응답을 주고 받을 때는 REST 컨트롤러를 사용함. 또한 응답할 때 적절한 상태 코드를 반환하기 위해..
[Spring boot] 10일차_REST API와 JSON REST API 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식. 서버에서 보내는 응답이 특정 기기에 종속되지 않도록. Rest API 동작 JSON 서버는 클라이언트의 요청에 대한 응답으로 화면(view)이 아닌 데이터(data)를 전송함. 이때 사용하는 응답 데이터가 JSON(JavaScript Object Notation)임.(과거에는 XML 주로 사용). +) API(Application Programming Interface) : 애플리케이션을 간편히 사용할 수 있게 하는, 미리 정해진 일종의 약속. 자바스크립트 방식 차용. 키&값의 쌍으로 이루어짐. { "키1":값, "키2":값, "키3":값 } https://jsonplaceholder.typicode.com JSO..
[Spring boot] 9일차_CRUD와 SQL 쿼리 종합 쿼리 : DB에 정보를 요청하는 구문.(INSERT,SELECT,UPDATE,DELETE) 로깅 : 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것 로깅 레벨 TRACE(레벨1) : DEBUG 레벨보다 더 상세한 정보 DEBUG(레벨2) : 응용 프로그램을 디버깅하는 데 필요한 세부 정보 INFO(레벨3) : 응용 프로그램의 순조로운 진행 정보 WARNING(레벨4) : 잠재적으로 유해한 상황 정보 ERROR(레벨5) : 응용 프로그램이 수행할 수 있는 정도의 오류 정보 FATAL(레벨6) : 응용 프로그램이 중단될 만한 심각한 오류 정보 OFF(레벨7) : 로깅 기능 해제 (INFO로 설정하면 레벨3~7의 모든 로그 기록됨) # JPA 로깅 설정 # 디버그 레벨로 쿼리 출력 logging.l..
[Spring boot] 8일차_게시글 삭제 Delete 글 삭제 순서 1) 클라이언트가 HTTP 메서드로 특정 게시글 삭제 요청 2) 삭제 요청을 받은 컨트롤러는 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제(기존 데이터가 있는 경우에만 수행) 3) 삭제가 완료됐다면 클라이언트를 결과 페이지로 리다이렉트 + 클라이언트에 삭제 완료 메시지 띄우기 : RedirectAttributes의 addFlashAttribute() 사용.->일회성 데이터 등록
[Spring boot] 7일차_게시글 수정 Update 데이터 수정 단계 1. 생성. 기존 데이터 불러오기 2. 데이터를 수정해 DB에 반영한 후, 결과를 볼 수 있게 로 리다이렉트하기 1. 생성&기존 데이터 로드 방법. 에서 Edit 버튼 클릭 시, 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 가져옴. 컨트롤러는 이 데이터를 뷰에서 사용할 수 있게 모델에 등록. 모델에 등록된 데이터는 에서 보여줌. 2. 데이터 수정. DB에 반영. 로 리다이렉트 방법. 폼 데이터를 DTO에 담아 컨트롤러에서 받음. DTO->엔티티 DB에서 기존 데이터를 수정 데이터로 갱신 수정 데이터를 로 리다이렉트
[Spring boot] 6일차_게시판 내 페이지 이동하기 링크 미리 정해 놓은 요청을 간편히 전송하는 기능. 보통 페이지 이동을 위해 사용 링크를 걸 대상 리다이렉트 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시. - 분리된 기능을 하나의 연속적인 흐름으로 연결 가능 - 리다이렉트를 받은 클라이언트는 해당 주소로 다시 요청을 보내고, 서버는 이에 대한 결과를 응답. return "redirect:URI_주소"; 태그 (href 속성) 태그 : 문서를 링크시키기 위해 사용하는 태그 href 속성 : hypertext reference약자, 연결할 주소를 지정하는 속성 페이지 연결 * 에서 로 이동 * 에서 로 이동 * 에서 로 이동 * 에서 로 이동
[Spring boot] 5일차_게시글 읽기: Read 데이터 조회 과정 ① 사용자가 데이터를 조회해 달라고 웹 페이지에서 URL 요청을 보냄 ② 서버의 컨트롤러가 요청을 받아 원하는 데이터 정보를 리파지터리에 전달 ③ 리파지터리는 정보를 가지고 DB에 데이터 조회를 요청 ④ DB는 해당 데이터를 찾아 엔티티로 반환 ⑤ 반환된 엔티티는 모델을 통해 뷰 템플릿으로 전달 ⑥ 최종 뷰 페이지 출력 @PathVariable : URL 요청으로 들어온 전달값을 컨트롤러의 매개변수로 가져오는 어노테이션 findById() : JPA의 CrudRepository가 제공하는 메서드, 특정 엔티티의 id 값을 기준으로 데이터를 찾아 Optional 타입으로 반환 findAll() : JPA의 CrudRepository가 제공하는 메서드, 특정 엔티티를 모두 가져와 Itern..
[Spring boot] 4일차_롬복과 리팩터링 롬복 - 코드 반복 최소화 - 로깅 기능 지원 (로깅 : 프로그램의 수행 과정을 기록으로 남기는 것) 리팩터링 -코드의 기능에는 변함이 없이 코드의 구조, 성능을 개선하는 작업 compileOnly, annotationProcessor 작성 -> 롬복 관련 라이브러리 다운 DTO 리팩터링 dto/ArticleForm.java에서 생성자 전체 삭제, @AllArgsConstructor 어노테이션 추가 toString 메서드 전체 삭제, @ToString 어노테이션 추가 엔티티 리팩터링 Article()생성자, toString() 메서드 삭제, @AllArgsConstructor, @ToString 어노테이션 추가 컨트롤러에 로그 남기기 println()문으로 데이터를 확인하는 부분을 로깅으로 대체. Art..