Java 27

SpringBoot JPA 게시판 CRUD 구현(Update-게시글 수정)

지난번에 구현한 페이징 처리까지 R(Read)에 해당됩니다. 오늘은 U(Update)에 해당되는 게시글 수정 WAS 단 로직을 포스팅하려 합니다. 약간 패키지성 포스팅이어서 게시판의 Create, Read 포스팅을 보지 않으셨다면 헷갈리실 수 있습니다. 맨 아래에 링크를 통해서 지난번 포스팅을 보시고 오시거나 깃허브 Bincolog를 참고하시는 것을 추천드립니다! Request 생성📗 첫번째로는 Request를 생성합니다. Create, Read와 동일하게 Entity를 사용하지 않고 따로 클래스를 만들어줍니다. 이유는 지난 포스팅에서 언급했습니다 :) @Getter @Builder public class PostEdit { @NotBlank(message = "제목을 입력해주세요.") private S..

JPA 2022.07.21

SpringBoot JPA 게시판 CRUD 구현(다중 조회/ Paging / TDD)

지난번에 포스팅한 게시글 단건 조회에 이어서 오늘은 전체 게시글을 조회하는 WAS 단 로직을 포스팅하려 합니다. 사실 JpaRepository에서 기본적으로 제공하는 findAll() 메서드를 사용하면 단건 조회와 큰 차이점은 없지만, 글이 너무 많은 경우에 비용이 너무 많이 들어가므로 페이징 처리도 함께 구현할 예정입니다. 페이징(Paging)? 우리가 웹사이트에서 흔히 볼 수 있는 페이징은 왜 필요할까요? 페이징 처리가 없다면 스크롤을 계속해서 내려야 하는 상황도 발생할 수 있고, 무엇보다 데이터 처리에 비용이 많이 발생합니다. 페이징 처리를 안 한 상황에서 글이 만약 몇십만 개가 있다면 한 번의 로직으로 DB에서 몇십만 개의 글을 모두 가져와야 할 것입니다. 물론 DB에서 데이터 사이즈로 인해 오류..

JPA 2022.07.21

SpringBoot JPA 게시판 CRUD 구현(Read 단건 조회 및 TDD)

지난번에 포스팅한 Create에 이어서 게시판을 조회하는 WAS 단 로직을 포스팅하려 합니다. 게시판 조회는 단건 조회와 전체 조회로 나뉩니다. 물론 검색 기능도 조회에 해당하지만, 검색 기능은 추후에 포스팅하겠습니다. Gradle 빌드나 프로젝트 구조는 깃허브 Bincolog를 참고해주세요! Response 생성📗 처음에는 PostResponse 클래스를 생성합니다. 저번에 언급했던 Entity와 Request, Response는 분류해야 하기 때문입니다. 못 보신 분들은 아래 사진을 참고해주세요😄 Response 클래스는 서비스 정책에 맞게 구현해야 합니다. 클라이언트에서 어떠한 결과 값을 원하는지에 대해서는 항상 다르기 때문입니다. 저는 게시글을 조회했을 때 해당 게시글의 id값, 제목, 내용을 가..

JPA 2022.07.20

SpringBoot JPA 게시판 CRUD 구현(Create)

SpringBoot와 JPA를 사용하여 게시판을 구현하는 WAS 단 로직을 포스팅하려 합니다. 기본 프로젝트 설정과 데이터베이스 연결 및 View단은 생략할 예정입니다. Gradle 빌드나 프로젝트 구조는 깃허브 Bincolog를 참고하시면 됩니다. 개인적인 공부로 코드의 결함이 있을 수 있으니 참고만 해주세요 :) Entity 생성📗 처음으로는 Entity를 생성합니다. Entity 클래스는 실제 DB 테이블과 매핑되는 핵심 클래스로, 데이터베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체입니다. Entity는 데이터베이스 영속성의 목적으로 사용되기 때문에, 요청이나 응답 값을 전달하는 클래스로 사용하는 것은 좋지 않습니다. 또한, 많은 비즈니스 로직들이 Entity를 기준으로 동작하기 때문에 추..

JPA 2022.07.18

Java Enum 클래스

오늘은 Java Enum 클래스에 대해 알아보려 합니다. SpringBoot를 배우면서 자연스럽게 Enum 클래스를 접하게 되었습니다. 실무에서 흔히 final static string을 사용해서 상수를 정의합니다. 하지만 이렇게 정의해서 코딩하는 경우 여러 문제를 야기시킵니다. 그래서 JDK 1.5 버전부터 새롭게 추가된 것이 Enum class입니다. Enum Class 정의📖 C언어와 C++에서는 열거체(enumeration type)를 사용할 수 있지만, JDK 1.5 이전의 자바에서는 열거체를 사용할 수 없었습니다. 하지만 JDK 1.5 이후부터는 C언어의 열거체보다 더욱 향상된 성능의 열거체를 정의한 Enum 클래스를 사용할 수 있게 되었습니다. Enum은 열거형이라고 불리며, 서로 연관된 상..

TIL 2022.05.19

Java 추상 클래스와 인터페이스 구분

지난 시간에 객체지향 프로그래밍(OOP)에 대해 포스팅을 했었습니다. 객체 지향의 특징 중 추상화(Abstraction)에 대해는 간단한 정의만 하고 넘어갔었습니다. 그 이유는 추상 클래스와 인터페이스를 같은 것이라고 생각을 하시는 분이 많은데, 사용용도 면에서 큰 차이가 있어서 좀 더 정확하게 비교해가며 이번 포스팅을 하려 합니다. 사실 추상 클래스와 인터페이스의 구분은 면접 단골 질문이기도 합니다. 이론적으로는 누구나 외우기만 하면 대답할 수 있습니다. 하지만 그런 이론적인 내용 말고 정작 "언제 인터페이스를 사용하는 게 좋을까요?", "추상 클래스를 사용하면 안 되나요?"라는 실무적인 질문이 들어오면 대답하는 것이 생각보다 어려울 것 같습니다. 저도 마찬가지이고, 그렇기에 공부하면서 포스팅을 진행 ..

TIL 2022.05.18

JAVA 국비지원 비전공자 솔직 후기

사실 국비지원 신청 단계부터 취업하는 전 과정을 포스팅 하나로 압축시키기가 쉽지 않아 많이 고민했습니다. 이전 블로그에서는 한 달씩 끊어가며 후기를 남겼었는데, 생각보다 반응이 좋아서 이번 블로그에서는 전 과정을 최대한 압축시켜 국비 신청 & 6개월 과정과 취업 단계로 나누어 제가 느꼈던 국비지원 과정을 솔직하게 남겨보려 합니다. 비전공자로써 도움이 더 필요하신 분은 댓글에 연락할 수 있는 방법을 비공개로 남겨주시면 도움을 드릴 수 있는 한까지 최대한 도와드리겠습니다. 현재 댓글을 다셨던 한 분과 소통을 많이 하고 있어요. 저도 경력이 높은 개발자가 아니기 때문에, 정답을 알려드릴 순 없지만 현직 개발자로서 많은 갈래길은 소개해드릴 수 있을 것 같아요! 국비지원이란? 국비지원은 국가에서 실업자/재직자/사..

국비지원&취업 2022.04.11
반응형