오라클 인스턴스 생성 SSH 접속 터미널에서 SSH 접속 ssh ubuntu@[주소] $HOME/.ssh 경로에 private key가 저장되어 있기 때문에 암호를 입력하지 않아도 원격 서버에 접속할 수 있다. 만약 private key가 $HOME/.ssh 경로에 위치하지 않은 경우 ssh -i [private key path] ubuntu@[주소] 참고 https://opentutorials.org/module/432/3742 https://iter.kr/%EC%98%A4%EB%9D%BC%ED%81%B4-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1/
설치 환경 Ubuntu 22.04 LTS 이전 버전 Docker 삭제 sudo apt-get remove docker docker-engine docker.io containerd runc Docker 저장소 설치 Docker Engine을 설치하기 전에 Docker 저장소를 설치해야 Docker를 설치하고 업데이트할 수 있다. 1. apt 패키지를 업데이트 하고 apt가 HTTPS를 통해 저장소를 사용할 수 있도록 패키지를 설치 sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release 2. Docker의 공식 GPG 키 추가 sudo mkdir -p /etc/apt/keyrings curl -fsSL h..
얼마전 동료한테 디버깅 요청을 받았다. 어떤 값을 받아서 크기를 비교해서 예외를 처리하는 구문이었는데 테스트를 진행하면 예상과 반대의 결과가 나왔다. 나는 1초만에 감이 왔다. 오버플로우... 바로 Long 타입으로 바꿔보라고 말했고 바로 해결할 수 있었다. 그러면 오버플로우가 발생하면 값이 어떻게 되었길래 예상과 다른 결과가 나왔을까? 분명 예전에 공부하면서 알았지만 기억나지 않아서 다시 테스트해본다. Integer란? 자바의 정수형 타입 중 하나이다. 크기 -2147483648 ~ 2147483647 테스트1 int maxValue = 2147483647; int minValue = -2147483648; System.out.println(maxValue); System.out.println(minV..
기존 AdoptOpenJDK는 Apple Silicon을 지원하지 않기 때문에 Apple Silicon을 지원하는 Zulu JDK로 교체한다. 기존 JDK 제거 cd /Library/Java/JavaVirtualMachines/ ls adoptopenjdk-11.jdk sudo rm -rf adoptopenjdk-11.jdk /Library/Java/JavaVirtualMachines/ 경로로 이동 후 현재 설치되어 있는 JDK 폴더를 확인한다. ex)JDK종류-버전.jdk 기존에 설치된 JDK를 rm -rf 명령어로 제거한다. Zulu JDK 설치 환경변수 설정 기존 JDK가 설치되어 있던 /Library/Java/JavaVirtualMachines/ 경로로 가보면 새로 설치한 Zulu JDK 폴더가 ..
문제 sudo: no tty present and no askpass program specified. 메세지가 나오면서 CI/CD가 안 될 경우 해결 sudo vi /etc/sudoers 명령어로 파일을 열어서 아래 내용을 스크린샷과 같은 위치에 추가한다. gitlab-runner ALL=(ALL) NOPASSWD: ALL E45: 'readonly' option is set (add ! to override) 메세지가 나오면서 저장이 안 될 경우 :w! 명령어로 강제 저장한다. 문제 Job's log exceeded limit of 4194304 bytes. Job execution will continue but no more output will be collected. 위 에러는 gitlab-r..
1. 우분투 리눅스에 gitlab-runner 설치 Install GitLab Runner manually on GNU/Linux | GitLab Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner. docs.gitlab.com 2. runners 등록하기 GitLab 저장소 -> Settings -> CI/CD -> Runners -> Expand 만약 아래와 같이 초록색 동그라미가 보인다면 다시 등록할 필요가 없다. 그렇지 않다면 아래 내용을 띄워둔다. 그리고 개발 서버 터미널에서 아래와 같이 명령어를 입력하고 등록 과정을 진행한다. sudo gitlab-runner..
프록시란? 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공하는데 이것을 지연 로딩이라 한다. 지연 로딩 기능을 사용하기 위해 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데 이것을 프록시 객체라 한다. 프록시 사용 엔티티를 실제 사용하는 시점까지 데이터베이스 조회를 미루고 싶으면 EntityManager.getReference() 메소드를 사용하면 된다. Member member = em.getReference(Member.class, "Member1"); PersistenceUnitUtil.isLoaded(Object entity) 메소드를 사용하면 프록시 인스턴스의 초기화 여부를 확인할 수 있다. boolean isLoad = em.getEnti..
상속 관계 매핑 1. 조인전략 Joined Strategy: 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략 @Entity @Inheritance(strategy = InheritanceType.JOINED) //조인 전략 사용 @DiscriminatorColumn //컬럼명:dtype public abstract class Item { @Id @GeneratedValue @Column(name = "ITEM_ID") private Long id; private String name; private int price; } @Entity //@DiscriminatorValue("A") //DiscriminatorValue를 지정하지 않..
객체의 참조와 테이블의 외래 키 매핑 방향 방향은 객체에만 존재하고 테이블 관계는 항상 양방향이다. 단방향 두 관계 중 한 쪽만 참조하는 것 양방향 두 관계 양쪽 모두 서로 참조하는 것 다중성 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:N)이 있다. 연관관계의 주인 객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야 한다. 연관관계의 주인은 외래 키의 위치와 관련해서 정한다. ex) 회원과 팀 관계에서 외래 키가 있는 "다" 쪽인 회원이 연관관계의 주인이 된다. 객체 연관관계와 테이블 연관관계의 차이 객체는 참조(주소)로 연관관계를 맺는다. ex) a.getB().getC() 테이블은 외래 키로 연관관계를 맺는다. ex) A JOIN B 참조를 사용하는 객체의 연관관계는 단방향..