2024/10/02 15

[JPA] 글 상세보기(조회) API 구현 - 7

💡1. 트랜잭션 처리에 대한 개념을 설명할 수 있다.2. 더티 체킹 개념과 영속성 컨텍스트에 특징을 설명할 수 있다.  Article 클래스(엔티티) 코드 추가 하기 - 1// 반드시 기본 생성자가 있어야 된다.@Entity(name = "tb_article")@NoArgsConstructor // 기본 생성자@Datapublic class Article { // 특정 생성자에만 빌더 패턴을 추가할 수 있다. @Builder public Article(String title, String content) { this.title = title; this.content = content; } @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //db..

카테고리 없음 2024.10.02

Q. 도전 문제 : 짝수만 선택하고 제곱하기

Q. 주어진 숫자 리스트에서 짝수만 필터링한 후, 각 짝수를 제곱하여 리스트로 반환하는 코드를 작성하시오.public class Challenge1 { public static void main(String[] args) { List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 1. 짝수만 필터링하고 제곱하여 새로운 리스트로 반환하는 코드를 작성하세요. // 힌트: filter()와 map()을 사용합니다. }}풀이public class Challenge1 { public static void main(String[] args) { List numbers = Arrays.asList(1, 2, ..

카테고리 없음 2024.10.02

Stream API(2)

Stream API 를 활용한 데이터 컬렉션 처리란 뭘까? 컬렉션(자료구조) 내의 데이터를 원하는 형태로 변환하거나, 필요 없는 데이터를 걸러내고, 특정 방식으로 계산하는 작업을 뜻합니다. 필터링: 조건에 맞지 않는 데이터를 걸러내는 작업. (예: 나이가 18살 이상인 사람만 필터링)정렬: 데이터를 오름차순 또는 내림차순으로 정렬하는 작업. (예: 성적 순으로 학생을 정렬)변환: 데이터를 다른 형태로 바꾸는 작업. (예: 섭씨 온도를 화씨로 변환)집계: 데이터를 하나의 값으로 축소하는 작업. (예: 모든 상품의 총합 계산) 시나리오 코드 1 - 자료구조 내의 데이터를 필터링 해보기18세 이상의 학생들만 필터링하고, 그 결과를 List로 수집하는 작업을 해보자. 중간 연산 - filter 사용 최종 연산 ..

카테고리 없음 2024.10.02

Stream API(1)

💡1. 자바 I/O 에서의 스트림( java.io.)과 java.util.stream 패키지에 있는 Stream 구분해서 이야기할 수 있다. 스트림 패키지의 구분 자바 I/O 스트림은 데이터를 읽고 쓰는 목적으로 사용됩니다. 파일, 네트워크, 메모리 등 다양한 소스에서 바이트나 문자 데이터를 읽거나 쓰기 위한 스트림입니다. InputStream과 OutputStream이 대표적인 I/O 스트림입니다.Stream API와 자바 I/O 스트림은 이름은 비슷하지만, 완전히 다른 개념입니다. Stream API는 자바 8에서 도입된 중요한 기능 중 하나로, 데이터 컬렉션(자료구조)을 처리할 때 사용되는 강력한 도구입니다. 스트림(Stream)은 데이터를 선언적으로 처리할 수 있게 하며, 특히 대용량 데이터 처..

카테고리 없음 2024.10.02

Optional<T> 주요 메서드

Optional는 Java 8에서 추가된 클래스로, 주어진 값이 null일 가능성을 명시적으로 처리하기 위해 사용됩니다. 이를 통해 null을 직접 다루지 않고도 안전하게 코드를 작성할 수 있습니다.  주요 메서드: isPresent()Optional에 값이 있는지 여부를 확인합니다.반환 타입: booleantrue는 값이 존재한다는 뜻이고, false는 값이 없음을 의미합니다.get()값이 존재하는 경우 값을 반환합니다.값이 없으면 NoSuchElementException을 던집니다.이 메서드는 값이 확실히 있을 때만 사용해야 하며, 그렇지 않은 경우 orElse() 또는 orElseThrow()를 사용하는 것이 좋습니다.orElse(T other)값이 존재하면 해당 값을 반환하고, 그렇지 않으면 지정..

공부 노트 2024.10.02

CRUD란?

CRUD 개념으로 회원 관리 시스템을 만들었는데대체 CRUD란 뭐지.. 싶어져서 찾아 보았다  Create(생성): 새로운 데이터를 추가하는 작업입니다. 데이터베이스에서는 새 레코드를 삽입하는 것을 의미합니다.예: 회원 가입 시 새로운 회원 정보를 데이터베이스에 저장하는 것.Read(읽기): 기존 데이터를 조회하는 작업입니다. 데이터베이스에 저장된 데이터를 불러오는 것을 의미합니다.예: 사용자가 자신의 프로필을 확인할 때 데이터베이스에서 회원 정보를 불러오는 것.Update(수정): 기존 데이터를 수정하는 작업입니다. 이미 존재하는 데이터의 내용을 변경하는 것을 의미합니다.예: 사용자가 자신의 프로필 사진이나 정보를 변경할 때 데이터를 업데이트하는 것.Delete(삭제): 기존 데이터를 삭제하는 작업입니..

공부 노트 2024.10.02

빈(Bean)이란?

빈(Bean)이란? Spring 컨테이너가 관리하는 자바 객체입니다.애플리케이션 내에서 사용할 객체들을 빈으로 정의하고, Spring이 이 객체들을 생성, 초기화, 의존성 주입, 소멸까지 관리합니다.이러한 빈은 애플리케이션의 설정 파일(주로 XML, 자바 기반의 설정 클래스 등)이나 애너테이션을 통해 정의됩니다. 왜 빈으로 등록해야 하는가?(ex: 컨테이너에 빈 등록을 해주다.. 왜?) 의존성 주입(Dependency Injection)객체들 간의 의존성을 Spring이 자동으로 관리해줍니다. 개발자는 직접 객체를 생성하거나 그 의존성을 수동으로 처리할 필요가 없습니다. 이는 애플리케이션의 유지보수를 쉽게 하고, 느슨한 결합(loose coupling)을 지원합니다.객체의 생명주기 관리Spring은 빈 ..

공부 노트 2024.10.02

[JPA] 글 상세보기(조회) API 구현 - 6

💡1. Optional 에 대한 개념을 숙지 한다. 2. 경로 변수(Path variable)에 대한 개념을 이해하고 사용할 수 있다. BlogService 파일에 게시글 조회 로직 추가 - 1@RequiredArgsConstructor@Service // IoC (빈으로 등록)public class BlogService { //@Autowired // DI findAll(){ List articles = postRepository.findAll(); return articles; } // 상세 보기 게시글 조회 public Article findById(Integer id) { // Optional는 Java 8에서 도입된 클래스이며, // 값이 존재할 수도 있고 없을 수도 있는 상황..

카테고리 없음 2024.10.02

[JPA] 글 목록 조회 API 만들어 보기 - 5

💡1. 글 전체 조회 기능을 만들 수 있다. 2. 응답 처리시 공통 DTO를 설계할 수 있다. 3. ExceptionHandler 개념을 이해하고 코드를 구성할 수 있다. BlogService 파일에 게시글 전체 조회 기능 추가 하기 - 1@RequiredArgsConstructor@Service // IoC (빈으로 등록)public class BlogService { //@Autowired // DI findAll(){ List articles = postRepository.findAll(); return articles; } } 공통 응답 DTO 만들기 - 2@Datapublic class ApiUtil { private Integer status; // 응답 상태 코드 저장(20..

카테고리 없음 2024.10.02

응답 코드 확인 (꼭 알아 두어야 하는 코드!!)

● 200 OK: 요청이 성공적으로 처리되었습니다. ● 201 Created: 요청이 성공적으로 처리되었고, 새로운 리소스가 생성되었습니다. ● 302 Found: 요청한 리소스가 임시적으로 다른 URL로 리다이렉트됩니다. ● 400 Bad Request: 클라이언트의 요청이 잘못되었거나 서버가 요청을 이해할 수 없습니다. ● 401 Unauthorized: 인증이 필요하지만 클라이언트가 인증되지 않았습니다. ● 403 Forbidden: 클라이언트가 요청한 리소스에 접근할 권한이 없습니다. ● 404 Not Found: 요청한 리소스를 찾을 수 없습니다. ● 500 Internal Server Error: 서버에서 오류가 발생하여 요청을 처리할 수 없습니다. [상태 코드]1xx 요청을 제대로 받았고, ..

공부 노트 2024.10.02