목록JAVA (34)
정구리의 우주정복
나도 멋진 CI/CD 를 갖고싶다 Git Action 을 사용해서 만들어봐야징 서버는 Synology 사용했다git action 작성하는거는 어렵지 않았는데 서버 설정이 굉장히 어려웠음 .. 폴더는 .github > workflows > deploy.yml 생성하면 된덩 name: CI/CD for Synologyon: pull_request: branches: - main types: - closedjobs: build: if: github.event.pull_request.merged == true runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@..
원래 user 목록 조회하려면 admin 권한 줘야하는데 그럼 매번 유저 가입할때마다 admin 권한 일일히 줘야해서 현실적으로 불가능쓰 .. 그래서 Role 추가를 통해서 user 목록을 불러올 수 있는 방법을 써볼거임 ~~ 1) create role 2) Action 클릭 > Add Associated roles 3) filter by clients 여기서 view-users, query-users 추가하기 4) Realm role 로 이동 5) default 에 추가 default-roles 에 Client Role 을 추가해준다 !!!!! 6) Test 6-1) token 발급 후 https://{{keycloak주소}}/admin/realms/{{realm명}}/users 을 넣고 ..
커스텀 에러를 정의해서 쓰고싶은데에러 발생시 모든 에러들이 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..
사용 환경 :Java 21Postgresql 16 문제 상황 Postgresql 에 recommend_type 이라는 이름의 Enum 을 만들었음. 하지만 jpa 에서 recommend_type 을 enum 값이 아닌 character 로 인식하면서 발생하는 문제 문제 코드 엔티티Recommend.java@Entity@Table(name = "recommend")@Getterpublic class Recommend { @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.UUID) private String id; @Column(name = "user_id") private String userId; ..
공부를 하다가 문득 DB 안의 모든 내용을 조회하고 싶으면 컨트롤러에서 엔티티를 직접 리턴해도 되지 않을까 ? 라는 의문이 생겼다 나는 습관적으로 DTO 를 만들어서 사용하고 있었기 때문 !오늘은 이에 대해서 알아보도록 하자 결론부터 말하면 안된다 !!!안되는건 아니고추천하지 않는다 !!! 하지말라는 말이다 !!! 왜일까가장 쉬운 이유는 보안성 : 필요한 정보만 선택적으로 노출할 수 있다 + 화면에 필요한 데이터만 선별이 가능하다유연성 : 요구사항에 맞춰 엔티티와 다른 구조를 가질 수도 있고, DB 의 구조변경이 미치는 영향을 최소화할 수 있다성능 최적화 : 필요한 데이터만 전송하므로 네트워크 트래픽을 줄일 수 있다 몇가지만 더 구체적으로 알아보자면엔티티는 곧 DB 의 구조이다 !! 그러므로 DB 의 구..
해당 에러는 JPA가 'enum' 타입을 데이터베이스에 올바르게 매핑하지 못해서 발생하는 에러다JPA가 'enum' 타입을 DB 에 저장하고 검색할 수 있도록 '@Enumerated' 어노테이션을 추가해주면 된다 ! 기존 코드@Entity@Table(name = "recommend")public class Recommend { @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.UUID) private String id; @Column(name = "user_id") private String userId; @Column(name = "password") private String passwo..
@Entity 를 쓰려했는데 기본생성자 (@NoArgsConstructor) 가 무조건 있어야한다고 한다 빨간줄 100개뜸. 왜일까 출처 : 내친구 챗지피티프록시 생성:JPA는 엔티티 객체를 로딩할 때, 지연 로딩(Lazy Loading)을 위해 프록시 객체를 생성할 수 있습니다. 이 프록시 객체는 기본 생성자를 사용하여 인스턴스를 생성한 후, 필요한 시점에 실제 데이터베이스 조회를 통해 필드를 채웁니다. 기본 생성자가 없으면 이러한 프록시 객체를 생성할 수 없습니다.리플렉션 사용:JPA 구현체는 리플렉션(Reflection)을 사용하여 엔티티 객체를 인스턴스화합니다. 리플렉션을 통해 객체를 생성하려면 기본 생성자가 필요합니다. 이는 JPA가 내부적으로 객체를 생성하고 초기화하는 과정에서 필수적입니다...