스프링 부트3 33

10.1~10.2 REST API 동작 살펴보기(게시판 만들기 / JSON / 코딩 자율학습단)

API Application Programming Inerface, 애플리케이션을 간편히 이용할 수 있도록 하는 미리 정해진 일종의 약속 웹 서비스를 스마트폰, 스마트웨치, 태블릿등 다양한 클라이언트에서 사용가능 하도록 함 REST API 서버 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계방식 클라이언트에서 정보를 요청하면 서버는 특정 기기에 종속되지 않고 모든 기기에서 통용할 수 있는 JSON 데이터를 응답으로 보냄 JSON 데이터 자바스크립트 방식을 차용한 객체 표현식 키(key)와 값(value)의 쌍으로 이루어진 속성(property)으로 구성 REST API 실습 {JSON} Placeholder 사이트에 가면 가짜 API를 사용해 무료로 각종 테스트 가능 크림 브라우저 확장 프로..

9.3 기본 SQL 쿼리 작성하기(게시판 만들기 / 길벗 코딩 자율학습단)

기본 SQL쿼리를 통해 coffee 테이블 만들기 / 데이터 생성하기 / 데이터 조회하기 / 데이터 수정하기 / 데이터 삭제하기 coffee 테이블 만들기 --CREATE TABLE문의 기본 형식 CREATE TABLE 테이블명( 속성명1 자료형, 속성명2 자료형, 속성명3 자료형, PRIMARY KEY (기본키) ) 데이터 생성하기(INSERT문) --INSERT문 INSERT INTO 테이블명 (속성명1,속성명2,속성명3---) VALUES (값1,값2,값3 ---); 데이터 조회하기(SELECT문) --SELECT문 SELECT 속성명1,속성명2,속성명3-- FROM 테이블명 WHERE 조건: 데이터 수정하기(UPDATE문) --UPDATE문 UPDATE 테이블명 SET 속성명=변경할값 WHERE ..

9.2 SQL 쿼리 로그 확인하기(게시판 만들기 / 길벗 코딩 자율학습단)

더미 데이터와 신규 데이터의 id값이 중복되어 더미데이터를 삭제하기 전에는 신규 데이터 작성 시 오류가 발생하는 문제를 해결해 보자 1. id를 자동 생성해 주는 @GeneratedValue 어노테이션에 (strategy = GenerationType.IDENTITY)를 입력해 앞으로 데이터를 생성할 때마다 DB가 알아서 id에 1,2,3,4--- 값을 넣어주도록 설정 public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column private String title; @Column private String content; } 2. id값으 자동으로 할당하도록 했으므로 data.s..

9.1 JPA 로깅 설정하기(게시판 만들기 / 길벗 코딩 자율학습단)

쿼리 => DB레 정보를 요청하는 구문 ex) SQL 쿼리 : INSERT문, SELECT문, UPDATE문, DELETE문 resources > application.properties파일에 JPA로깅 설정 # 디버그 레벨로 SQL쿼리 출력 logging.level.org.hibernate.SQL=DEBUG # 쿼리 줄바꿈하기 spring.jpa.properties.hibernate.format_sql=true # 매개변수 값 보여 주기 logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE # DB URL 설정 # 유니크 URL 설정하지 않기 spring.datasource.generate-unique-name=false # 고정 URL ..

8.1~8.2 데이터 삭제하기(게시판 만들기 / 길벗 코딩 자율학습단)

데이터 삭제 과정 클라이언트가 HTTP 메서드로 특정 게시글의 삭제를 요청 삭제 요청을 받은 커트롤러는 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제(기존의 데이터가 있을 경우 실행) 삭제가 완료되면 클라이언트를 결과페이지로 리다이렉트 프로그램 작성 순서(데이터 삭제하기) 1. 상세페이지(show.mustache)로 가서 삭제버튼 및 연결 URL설정 Delete 2. 컨트롤러로 가서 해당 URL(삭제 링크) @GetMapping 어노테이션으로 받기 3. 리파지터리로 링크의 id값을 통해 데이터를 받아와 엔티티에 저장 4. 엔티티 값이 null이 아닐 경우 리파지터리의 .delete()메서드를 통해 엔티티값 삭제 5. 리다이렉트의 휘발성 변수를 사용하기 위해 RedirectAttributes 객체 생..

7.1~7.3 데이터 수정 과정(게시판 만들기 / 길벗 코딩 자율학습단)

데이터 수정 과정 ① 만들고 기존 데이터 불러오기 에서 [Edit]버튼을 클릭 요청받은 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 가져옴 컨트롤러는 가져온 데이터를 뷰에서 사용할 수 있도록 모델에 등록 모델에 등록된 데이터를 에서 보여줌 사용자가 내용을 수정할 수 있는 상태가 ②데이터를 수정해 DB에 반영 후 결과를 볼 수 있게 로 리다이렉트하기 폼 데이터(수정 요청 데이터)를 DTO에 담아 컨트롤러에서 받기 DTO를 엔티티로 변환 DB에서 기존 데이터를 수정 데이터로 갱신 수정 데이터를 로 리다이렉트 프로그램 작성 순서 1. 세부데이터를 보여주는 뷰페이지(mustache)켜기 2. [Edit]버튼 생성 (누르면 수정페이지로 이동하도록 설정 / "/articles/{{article.id}}/ed..

6.1~6.2 링크와 리다이렉트를 이용해 페이지 연결하기(게시판 만들기 / 길벗 코딩 자율학습단)

링크 => 미리 정해놓은 요청을 간편히 전송하는 기능(클릭하면 원하는 주소로 이동) 리다이렉트 => 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시 하는것(a로 가는 페이지를 b로 가도록 만듦) 링크 만드는 방법 컨트롤러에서 반환하는 뷰파일 켜기(mustache) 주소가 들어가기를 원하는 위치에 "화면에 보일 문구" 입력하기 {{>layouts/header}} 제목 내용 Submit Back {{>layouts/footer}}​ 리다이렉트 컨트롤러에서 리다이렉트 할 메서드로 이동 리턴 값을 "return "redirect:URL_주소";" 로 입력하기 @PostMapping("/articles/create") public String createArticle(ArticleFor..

다운캐스팅 (Spring Boot3 / Java / Intellij)

다운캐스팅 방법 1. 메서드 앞에 원하는 반환타입 적어주기 List articleEntityList = (List) articleRepository.findAll(); 2. 변수 타입을 베서드가 반환하는 타입으로 맞추기 Iterable articleEntityList = articleRepository.findAll(); 3. 오버라이딩하기 원하는 반환타입 or 그보다 하위 타입으로 오바라이딩 해야함 업캐스팅의 경우 자동 수행 @Override List findAll();

5.3 데이터 목록 조회하기(게시판 만들기 / 길벗 코딩 자율학습단)

테이터 목록 조회하기(모든 데이터 조회하기) URL(/articles)요청을 받기 위해 컨트롤러에 @GetMapping 어노테이션을 선언하기 메서드 생성하기(public String index()) / 데이터를 뷰페이지로 전달할 매개변수 model 생성 리스트 형의 엔티티 변수(List)를 생성하고 리파지터리에서 .findAll() 메서드를 통해 모든 데이터 받기 .findAll()메서드는 Iterable 타입으로 다운캐스팅이 필요(방법은 다음글에 설명) 다운 캐스팅을 한 후 model에 .addAttribute()메서드를 통해 데이터 등록 뷰페이지(mustache) 반환 뷰페이지 작성(단일 데이터 조회때와 동일) 그 후 프로그램 재시작 후 데이터 입력 & 조회(http://localhost:8080/a..

5.1~5.2 단일 데이터 조회하기(게시판 만들기 / 길벗 코딩 자율학습단)

데이터 조회 과정 사용자가 데이터를 조회해달라고 웹 페이지에서 URL 요청을 보냄 서버의 컨트롤러가 요청을 받아 해당 URL에서 찾으려는 데이터 정보를 리파지터리에 전달 리파지터리는 정보를 가지고 DB에 데이터 조회를 요청 DB는 해당 대이테를 찾아 이를 엔티티로 변환 반환된 엔티티는 모델을 통해 뷰 템플릿으로 전달 최종적으로 결과 뷰 페이지가 완성되어 사용자의 화면에 출력 단일 데이터 조회하기(실제 과정) URL 요청하기 (/articles/id 로 요청) 컨트롤러는 @GetMapping("/articles/{id})로 URL받기 URL의 id가 포함된 메서드 생성 메서드로 URL의 id를 매개변수로 받기 위해 매개변수 앞에 @PathVariable 어노테이션 붙이기 리파지터리에서 DB에 저장된 데이터..