i18n internationalization의 축약형 총 20자리 글자 중에 맨 앞 i와 맨 뒤 n을 제외한 나머지가 18글자가 있다고 해서 i18n 이다. MessageSource란? 국제화(i18n)를 지원하는 스프링 인터페이스 하나의 메세지에 대해서 다국어로 표시해주는 기능 제공 Entity 생성 @Entity @Getter @Setter public class Languages { @Id @GeneratedValue private Integer id; private String locale; private String messageKey; private String messageContent; } sample data 생성 쿼리 작성 src/main/resources 경로에 data.sql 파일..
docker 폴더 생성 mkdir docker cd docker docker 폴더에 "docker-compose.yml"과 ".env" 작성 docker-compose.yml을 git에 push할 경우 비밀번호가 노출되기 때문에 환경 변수로 설정해야 한다. docker-compose는 기본적으로 .env 파일을 환경 변수 파일로 인식된다. .env 파일을 작성하고 .gitignore에 추가한다. services: mariadb: container_name: mariadb image: mariadb:10.8.3 restart: always environment: - MYSQL_ROOT_PASSWORD=${MARIADB_PASSWORD} MARIADB_PASSWORD=mypassword 컨테이너 실행 doc..
오라클 인스턴스 생성 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..
문제 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를 지정하지 않..