목록JAVA/PROJECT (15)
정구리의 우주정복
나도 멋진 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 을 넣고 ..
사용 환경 :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; ..
해당 에러는 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..
항상 습관처럼 @Builder 와 @NoArgsConstructor ,@AllArgsConstructor 를 썼는데 왜 둘을 같이 써야하는지, 어떤 원리로 동작하는지도 모르고있었다나는 바보 ! lombok 개발자 !! 알아보도록 하자 틀리거나 문제가 있다면 댓글로 알려주세요 감사합니다땡큐@Builder 의 역할생성자를 메서드 체인을 사용해서 호출할 수 있는 빌더 클래스를 생성해준다순서도 상관없고, 값을 넣지 않은 경우 default 값이 들어가게 된다@Builder 장점쉽게 빌더 패턴을 사용할 수 있음 (객체 생성 후 값을 변경되지 않게 할 수 있다)유연한 객체 생성 (필드 순서에 상관없음, 필요한 필드만 생성 가능)옵션 값 처리 (필수 값만 넣어주고 나머지는 기본값을 사용가능함) @Builder 사용법..
yaml 에 설정한 정보들 중 git에 올라가지 않기를 원하는 정보를 git ignore 에 추가해보겠다 ! ignore 될 정보들을 포함할 ignore 폴더를 만들어줬다 (이름은 마음대로 만들어도 상관없음)하위에 나는 내가 제외하고자 하는 정보에 대한 것을 yaml 로 만들어줬다 ! 기존 application.yaml 에 있던 spring > security 의 내용들을 숨기고 싶어 해당 내용을 새로 만든 파일에 작성해준다 이후 application.yaml 안에 작성한 내용들을 import 해준다 옵션은 optional(있을수도없을수도있다는 뜻), classpath(경로설정을 위해) 두개를 추가해줬다 .gitignore 로 가서 해당 경로 하위의 녀석들은 깃에 올리지 않겠다고 정의해주면 끗 !! ..
api 서버들에서 token 파싱하는걸 매번 만들 수는 없어서 toygry-common 모듈을 만들었다 ! 여기에다가 token 파싱하는거를 만들어 놓고 다른 api 서버들에서 가져다 쓰면 여러번 만들지 않아도 될것이라는 멋진 생각 구조는 이런식으로 잡아봤다 constants에는 아직 넣을게 없어서 안넣음 ~ 우선 KeycloakToken.javapublic record KeycloakToken(String name, String userId, String email) {} 이게 다임 .. record 처음 써보는데 어째서 이리도 편리한것 ..?? lombok 이 필요없넹나중에 더 많이 써봐야겠다 TokenUtils.javatoken (String) 의 payload 부분을 가져온다 -> 해당 부..
오늘은 게이트웨이에 왕 간단한 글로벌 필터를 만들어보려 한다 api 요청 후 글로벌필터를 거친 후에 api 를 실행하는 형태 ! GlobalFilter.java 파일 @Component@Slf4jpublic class GlobalFilter extends AbstractGatewayFilterFactory { public GlobalFilter() {super(Config.class);} @Override public GatewayFilter apply(Config config) { //Custom Pre Filter return (exchange, chain) ->{ ServerHttpResponse response = exchange.ge..