목록JAVA/STUDY (19)
정구리의 우주정복
커스텀 에러를 정의해서 쓰고싶은데에러 발생시 모든 에러들이 500으로 나오고, error 메세지도 내가 원하는대로 출력되지 않는다 ㅜㅜ !! 콘솔에서만 메세지가 나온다 ㅠㅠ내가 원하는건 이런게 아니야 ~! 알아보도록하자 이것을 알기 위해선이전에 쓴 Exception 과 RuntimeException 에 대한 글을 보고 오면 좋을듯 !https://j-ungry.tistory.com/391 [Spring] Exception, RuntimeException 상속에 대해 (Checked Exception, Unchecked Exception 이란 ?)예외처리를 위해 Exception 을 정의하던 중 왜 RuntimeException 을 상속받는지 궁금해져버렸다 ! 자바는 예외를 크게 두종류인Checked Ex..
예외처리를 위해 Exception 을 정의하던 중 왜 RuntimeException 을 상속받는지 궁금해져버렸다 ! 자바는 예외를 크게 두종류인Checked Exception, Unchecked Exception 으로 분류할 수 있다 Checked Exception 컴파일러가 예외 처리 코드를 작성하도록 강제하는 예외 파일 입출력, 네트워크 통신, DB 접근 등 외부 자원과 상호작용할 때 발생할 수 있는 예외Exception 을 상속컴파일 시점에 반드시 처리되어야 한다throws 절을 사용해서 메서드 선언에 예외를 명시해줘야 한다호출할 때 try-catch 블록으로 처리해야한다public class CheckedException extends Exception { public CheckedExcep..
공부를 하다가 문득 DB 안의 모든 내용을 조회하고 싶으면 컨트롤러에서 엔티티를 직접 리턴해도 되지 않을까 ? 라는 의문이 생겼다 나는 습관적으로 DTO 를 만들어서 사용하고 있었기 때문 !오늘은 이에 대해서 알아보도록 하자 결론부터 말하면 안된다 !!!안되는건 아니고추천하지 않는다 !!! 하지말라는 말이다 !!! 왜일까가장 쉬운 이유는 보안성 : 필요한 정보만 선택적으로 노출할 수 있다 + 화면에 필요한 데이터만 선별이 가능하다유연성 : 요구사항에 맞춰 엔티티와 다른 구조를 가질 수도 있고, DB 의 구조변경이 미치는 영향을 최소화할 수 있다성능 최적화 : 필요한 데이터만 전송하므로 네트워크 트래픽을 줄일 수 있다 몇가지만 더 구체적으로 알아보자면엔티티는 곧 DB 의 구조이다 !! 그러므로 DB 의 구..
@Entity 를 쓰려했는데 기본생성자 (@NoArgsConstructor) 가 무조건 있어야한다고 한다 빨간줄 100개뜸. 왜일까 출처 : 내친구 챗지피티프록시 생성:JPA는 엔티티 객체를 로딩할 때, 지연 로딩(Lazy Loading)을 위해 프록시 객체를 생성할 수 있습니다. 이 프록시 객체는 기본 생성자를 사용하여 인스턴스를 생성한 후, 필요한 시점에 실제 데이터베이스 조회를 통해 필드를 채웁니다. 기본 생성자가 없으면 이러한 프록시 객체를 생성할 수 없습니다.리플렉션 사용:JPA 구현체는 리플렉션(Reflection)을 사용하여 엔티티 객체를 인스턴스화합니다. 리플렉션을 통해 객체를 생성하려면 기본 생성자가 필요합니다. 이는 JPA가 내부적으로 객체를 생성하고 초기화하는 과정에서 필수적입니다...
기록용 spring project 생성시 내가 추가한 라이브러리 이외에도 뭔가 엄청나게 많다 .. 왤까 Gradle , maven 같은 build tool 은 의존성 관리를 해준다 라이브러리에 의존된 모든 녀석들을 다 가져와주는 것이다 ! A를 쓰기 위해 의존되는 B,C,D 를 다 가져와주기 때문에 엄청나게 많아진다 thymeleaf, spring web 을 가져왔을 때 하위에 이렇게 많은 녀석들이 가져와지게 되는 것이다 신기해
Autoconfiguration 은 개발자가 명시적으로 설정을 작성하지 않아도 자동으로 구성되는 기능이다 ,필요한 Bean 을 자동으로 생성한다 예를들어 DataSource 같은게 있다. DataSource 사용 시 getConnect() 등등 하나하나 만들어주지 않아도 사용이 가능하다. 암튼 그런게 Autoconfiguration 임 Autoconfiguration 원리 /global/config/properties/PropertiesConfig package com.example.jungry.global.config.properties; import org.springframework.boot.context.properties.ConfigurationPropertiesScan; import org.s..
application.yaml spring: datasource: url: username: jungry password: jungry driver-class-name: org.postgresql.Driver 우선 yaml 파일에 datasource 에 db 접속정보들을 저장한다 PostgreSQLConnectionExample.java package com.example.jungry.api; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStateme..