본문 바로가기

개발 - Coding27

[JPA] @OneToOne 관계와 UNIQUE 제약조건 @OneToOne 관계에 대해서 JPA에서는 일대일 연관관계를 맺는 엔티티를 표현하기 위해서 @OneToOne 애노테이션을 지원합니다. 일대일 연관관계에 대해서 JPA는 문서에서 3가지 예시 케이스를 제공하고 있습니다. FK 컬럼을 매핑하는 일대일 연관관계 PK를 공유하는 일대일 연관관계 Embeddable 클래스를 통한 일대일 연관관계 각각의 케이스를 예제로 살펴보면 다음과 같습니다. FK 컬럼을 매핑하는 일대일 연관관계 // On Customer class: @OneToOne(optional=false) @JoinColumn( name="CUSTREC_ID", unique=true, nullable=false, updatable=false) public CustomerRecord getCustomer.. 2024. 4. 8.
Dataverse Community Meeting 2023: Sharing data for future generation 2편 Dataverse의 미래 발전 방향 Dataverse의 미래 발전 방향은 크게 세 가지 정도로 요약할 수 있었습니다. Frontend와 Backend를 분리하고 Frontend를 React/TS 기반의 SPA로 개선 Shibboleth 등 여러 인증 수단을 래핑하고 OIDC와 Keycloak으로의 전환 컨테이너화 Frontend와 Backend 분리 및 SPA 개선 Dataverse의 기술 스택은 Java EE 8, JPA, JSF로 되어있습니다. 스프링 부트와 관련 스택들이 보편화된 지금에 와서는 다소 연식이 느껴지는 기술들인데요. Dataverse가 2007년에 시작한 프로젝트이다보니 아무래도 현재에 와서는 레거시 코드가 되어버린 것이 꽤나 있습니다. Java EE 8과 스프링은 선택의 차이라고 생각.. 2023. 6. 20.
네트워크 영역에서의 NAT와 AWS NAT Gateway: 2편 AWS NAT Gateway https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-nat-gateway.html NAT 게이트웨이 - Amazon Virtual Private Cloud 보조 IPv4 주소는 선택 사항이며 NAT 게이트웨이를 사용하는 워크로드가 단일 대상(동일한 대상 IP, 대상 포트 및 프로토콜)에 대한 동시 연결 55,000개를 초과하는 경우 지정하거나 할당해야 합니다 docs.aws.amazon.com AWS NAT Gateway는 AWS 클라우드 환경에서 NAT 서비스를 제공해주는 게이트웨이입니다. 일반적으로 게이트웨이는 외부 인터넷과 연결해주는 엔드포인트를 지칭하곤 하는데요. AWS NAT Gateway는 private subn.. 2023. 6. 20.
네트워크 영역에서의 NAT와 AWS NAT Gateway: 1편 클라우드 환경에서 인프라를 프로비저닝 할 때, 처음 해보면 어렵고 헷갈리는 개념이 있는데, 바로 NAT Gateway입니다. 사람마다 다를 수 있겠지만 초심자 입장에서 이 개념이 어려운 이유는 크게 두 가지입니다. private, public ip(private, public subnet)에 대한 이해 부족 NAT 기술에 대한 이해 부족 개인적으로 어려웠던 부분을 어떻게 이해했는지 소개하며 기술의 배경부터 원리, 클라우드 환경에서의 NAT Gateway 개념까지 소개해보겠습니다. NAT가 무엇이고 왜 필요한가? NAT란 Network Address Translation의 약자로 네트워크 주소 변환을 의미합니다. RFC2663에 따르면 NAT는 다음과 같습니다. Network Address Translat.. 2023. 6. 16.
Dataverse Community Meeting 2023: Sharing data for future generation 1편 Dataverse란? https://dataverse.org/ The Dataverse Project - Dataverse.org dataverse.org Dataverse는 하버드 대학교 IQSS에서 시작된 프로젝트로 데이터를 저장, 공유, 활용하기 위해서 이용할 수 있는 오픈 소스 데이터 플랫폼 프로젝트입니다. Dataverse 프로젝트를 이용해서 사용자들은 자신만의 데이터 관리 시스템을 구축하고 활용할 수 있습니다. 현재 전 세계적으로 99개의 지역, 단체에서 구축하여 사용하고 있는 것으로 알려져 있습니다. Dataverse와 비슷한 프로젝트로는 영국 정부에서 지원하는 CKAN 등이 있습니다. Dataverse Community Meeting Dataverse는 하버드 대학교 IQSS에서 주도하는 .. 2023. 6. 6.
[JPA] 컴파일시에는 발견할 수 없는 @Enumerated와 @Embeddable 오류 문제 상황 JPA 환경에서 Enum 타입에 실수로 @Embeddable 또는 @Embedded Annotation을 적용했을 때 생기는 오류에 대해서 알아보겠습니다. 이 문제는 @Enumerated가 적용된 Enum에 @Embeddable이나 @Embedded를 사용하기 때문에 발생합니다. Java의 Enum과 JPA에서의 Enum Java에는 Enum 타입이 있고 이를 이용해서 더 명시적이고 의미론적인 코드를 짤 수 있습니다. 예를 들어 다음과 같이 활용할 수 있습니다. Enum을 적용하여 코드를 개선하는 예제 먼저 단순하게 String을 이용하여 멤버십 레벨을 다루는 코드입니다. package com.example.EnumTest; import lombok.*; import javax.persiste.. 2023. 6. 1.
[Python] 프로그래머스: 광물 캐기 https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결 방법 이 문제의 경우 DFS, BFS로 풀 수도 있지만, 그리디 알고리즘으로 푸는 것이 최선이라고 생각합니다. 먼저 5개가 한 단위가 되기 때문에, 5개씩 끊고 다이아몬드, 철, 돌 곡갱이를 사용했을 때 피로도를 계산해놓으면 돌 곡갱이를 사용했을 때를 기준으로 내림차순 정렬하면 최선의 경우의 수를 찾을 수 있습니다. 이렇게 해결할 수 있는 이유는 돌, 철, 다이아몬드를 비교했을 때 효율이 .. 2023. 3. 28.
클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트 p.92 오류 해결 https://github.com/dybooksIT/k8s-aws-book GitHub - dybooksIT/k8s-aws-book: 동양북스 저장소 동양북스 저장소. Contribute to dybooksIT/k8s-aws-book development by creating an account on GitHub. github.com p.92 전까지 잘 따라오셨다면 백엔드 애플리케이션 배포에는 성공하셨을겁니다. 그 후에 프론트엔드 애플리케이션을 빌드하고 배포해야 하는데, 빌드하는 데 많은 시행착오를 겪어서 이를 해결할 수 있게 해결 과정을 공유하고자 합니다. 실패 원인 Python version node.js version 먼저 의존하고 있는 Python 버전이 중요한데요. Python 버전이 중요한 이.. 2023. 3. 3.