728x90

2023/08 38

Spring - 페이징 (Jpa, Querydsl)

- 주요 객체 1. Page : 페이지 정보를 담게 되는 인터페이스 2. Pageable : 페이지 처리에 필요한 정보를 담게 되는 인터페이스 - 관계 및 사용 1. PageRequest에 의해 Pageable에 페이징 정보가 담겨 객체화 된다. 2. Pageable이 JpaRepository가 상속된 인터페이스의 메서드에 파라미터로 전달된다. 3. 2번의 메서드의 return으로 Page가 전달 된다. 4. 전달된 Page에 담겨진 Page 정보를 바탕으로 로직을 처리하면 된다. - PageRequest의 메서드 1. of(int page, int size) : 0부터 시작하는 페이지 번호와 개수, 정렬이 지정되지 않은 상태 2. of(int page, int size, Sort sort) : 페이지 ..

Programming/Spring 2023.08.31

Java - 람다 (기본, 함수형 인터페이스 API)

- 람다식을 알아보기 전 람다의 기본이 되는 인터페이스에 대해 다시 한 번 알아보겠다. - 인터페이스 구현 방법 - MyInterface.java public interface MyInterface { public void print(); } - 일반적인 인터페이스 선언 방식이다. 1. implements 키워드로 클래스 선언 - MyClass.java class MyClass1 implements MyInterface { @Override public void print() { System.out.println("MyClass2"); } } class MyClass2 implements MyInterface { @Override public void print() { System.out.println(..

Programming/JAVA 2023.08.31

Spring - 게시글 조회 (다건 조회, 임시 H2 활용한 실제 서비스 확인)

- 게시글 여러개를 조회하기 위한 Controller를 작성 - PostController.java ..... @GetMapping("/posts") public List getList() { return postService.getList(); } } - 기존의 데이터를 가져오는 것이기 때문에 Post가 아닌 Get을 사용하며, 게시글을 여러개 가져올 것이기 때문에 Post 엔티티를 여러개 가여와야 하지만 원하는 조건에 응답을 하기 위해 PostResponse List로 받아온다. - PostService.java ..... public List getList() { return postRepository.findAll().stream() .map(post -> new PostResponse(post)..

Programming/Spring 2023.08.30

Spring - 게시글 조회, 클래스 분리 (단건)

- 게시글 단건 조회 - PostService.java ... public Post get(Long postId) { Post post = postRepository.findById(postId) .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 글입니다.")); return post; } } - Jpa를 통해 postRepository에서 findById를 통해 Id값에 해당하는 Post 엔티티 값을 가져온다. - 기본적으로 값이 없을 경우 null이 반환되기 때문에 Optional로 반환 타입을 지정해야 하지만 참조형을 Post 엔티티로 지정하는 대신 null과 같이 예외가 발생하는 경우 던져버리는 형식으로 바꿔서 사용할 수 있다. * Optiona..

Programming/Spring 2023.08.29

Spring - 클래스 분리, 데이터 저장 (Builder, ObjectMapper, 상황 별Controller 반환 값 등...)

- 데이터 DB에 저장 - 일반적으로 Controller -> (DTO) -> Service -> (DTO) -> Repository -> (Entity, Domain) -> DB 와 같이 클라이언트의 요청이 들어오고 DB에 데이터가 저장되는 흐름이다. - Post.java @Entity @Getter @NoArgsConstructor(access = AccessLevel.PUBLIC) public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @Lob private String content; @Builder public Post(String title, S..

Programming/Spring 2023.08.29

Spring - 데이터 검증(컨트롤러, 데이터 타입, @ControllerAdvice...)

- HTTP method - GET : 메서드 GET는 지정된 리소스의 표현을 요청합니다. 를 사용하는 요청은 GET데이터 검색만 해야 합니다. - HEAD : 이 메서드는 요청과 동일하지만 응답 본문이 없는 HEAD응답을 요청합니다 .GET - POST : 이 POST메서드는 엔터티를 지정된 리소스에 제출하며, 종종 서버의 상태 변경이나 부작용을 유발합니다. - PUT : 이 PUT메서드는 대상 리소스의 모든 현재 표현을 요청 페이로드로 바꿉니다. - Delete : 이 DELETE메서드는 지정된 리소스를 삭제합니다. - Connect : 이 CONNECT방법은 대상 리소스로 식별된 서버에 대한 터널을 설정합니다. - Options : 이 OPTIONS방법은 대상 리소스에 대한 통신 옵션을 설명합니다...

Programming/Spring 2023.08.28

2023.08.28.MON

- Jsonpath .andExpect(jsonPath("$.title").value("title을 입력해주세요")) - $.title은 JSONPath 표현식을 나타냅니다. JSONPath는 JSON 문서 내에서 특정 값이나 데이터를 선택하기 위한 경로 표현식 언어입니다. - ControllerAdvice @ControllerAdvice는 Spring Framework에서 제공하는 어노테이션으로, 전역 컨트롤러에서 발생하는 예외를 처리하고 관리하는 데 사용됩니다. 이를 통해 애플리케이션의 여러 컨트롤러에서 발생할 수 있는 예외들을 한 곳에서 처리하고 일관된 방식으로 응답을 생성할 수 있습니다. 일반적으로 Spring 애플리케이션에서는 다양한 컨트롤러들이 요청을 처리하다가 예외가 발생할 수 있습니다. 예..

Programming/TMP 2023.08.28

2023.08.26.SAT

- iframe 태그 은 HTML (하이퍼텍스트 마크업 언어)에서 사용되는 태그로, 인라인 프레임(inline frame)을 생성하는 데 사용됩니다. 이 태그를 사용하면 웹 페이지 내에 다른 웹 페이지를 포함하거나 특정 부분을 프레임으로 감싸서 표시할 수 있습니다. 이는 웹 페이지 내에서 외부 콘텐츠를 포함하거나 다른 웹사이트나 독립적인 콘텐츠를 삽입할 때 유용합니다. 간단하게 말해서, 태그는 웹 페이지 내에서 작은 "창"을 만들어 다른 웹 페이지나 콘텐츠를 표시하는 역할을 합니다. 이러한 프레임은 현재 웹 페이지와 별개의 HTML 문서를 로드하고 표시할 수 있습니다. 예를 들어, 지도 서비스를 웹 페이지에 삽입하거나 외부 사이트의 특정 부분을 보여줄 때 태그를 사용할 수 있습니다.

Programming/TMP 2023.08.26
728x90