분류 전체보기 123

JPA 에서 데이터베이스 스키마 자동생성 기능 사용하기

jpa 를 사용하여 개발시, 개발 환경에서 간단하게 사용할 수 있는 기능중에 데이터 베이스 스키마 자동생성 기능이 있다. 사용 방법은 persistence.xml 파일에 아래와 같이 추가한다. value 에는 create, update, validate, none 이 들어 올 수 있는데 각 옵션의 의미는 아래와 같다. create 기존테이블 삭제 후 다시 생성 (DROP + CREATE) create-drop create와 같으나 종료시점에 테이블 DROP update 변경분만 반영(운영DB에는 사용하면 안됨) validate 엔티티와 테이블이 정상 매핑되었는지만 확인 none 사용하지 않음 개발 초기 단계에는 create, update , 테스트 서버는 update 또는 validate, 스테이징과 운..

Dev/JPA 2023.12.11

JPA 에서 영속성의 의미와 사용하는 애노테이션 정리

jpa 를 강의를 들으면서 가장 기본적인 영속성의 개념에 대해 간단하게 정리해보려고 한다. 1. 영속성 컨텍스트란 무엇인가? 데이터 베이스와 객체 사이에 중간 단계가 있는 개념이라고 할 수 있다. 객체를 데이터베이스로 옮기거나, 데이터베이스에 있는 데이터를 객체에 매핑할 때 중간에 존재하는 저장 공간이다. 간단하게 코드로 나타내면 EntityManager.persist(entity) 로 표현할 수 있다. 이 때 이 영속성 컨텍스트가 존재함으로써 일종의 버퍼링 기능을 수행하게 되는데 persistence.xml 파일에 를 추가하여 버퍼 사이즈를 조율할 수 있다. 버퍼링 기능을 사용하면 쿼리를 일일히 데이터베이스에 날리는게 아니라 지정한 버퍼 크기만큼 쌓아놨다가 한번에 데이터베이스에 요청하여 커밋할 수 있다..

Dev/JPA 2023.12.11

h2 초기 연결시 JdbcSQLNonTransientConnectionException 에러 해결 방법

maven 기반의 프로젝트에 대해 jpa 사용을 위해 persistence.xml 파일을 생성하고 h2 도 다운로드 후 실행되는 것 까지 확인 했는데, main 을 실행하니 Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "/Users/gwongahyeon/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-..

Dev/JPA 2023.12.06

h2 db 연결시 javax.xml.bind.JAXBException 오류 해결 방법

김영한 강사님의 인프런 jpa 강의 수강 중 아래와 같은 오류가 발생했다. Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 12 more maven 프로젝트로 기본 설정파..

Dev/JPA 2023.12.06

local 에 있는 폴더를 git 에 한번에 올리기

개인 공부를 시작하면서 본격적으로 git 을 사용해보고 있다. 오늘은 공부한 샘플 코드를 local 에서 원격저장소로 업데이트시 발생한 문제애 대해 공유하고자 한다. 1. error: remote origin already exists. 에러 발생시 대응 방법 local 에 연결되어있던 원격 repo 가 있었는데, 다른 repo 로 바꾸고 연결하려고 동일하게 remote add 를 사용했더니 위 오류가 발생했다. 이전 실습 때 동일한 폴더에서 한차례 원격 레포지토리에 연결했던게 문제여서 기존 연결을 끊는 명령어를 입력후 다시 실행하니 정상적으로 연결할 수 있었다. git remote remove origin // 기존 연결 제거 git remote add origin https://github.com/g..

Dev/Git 2023.12.06

Spring Boot actuator 와 함께 프로메테우스와 그라파나 사용해보기

실습환경 - macOS 13.4 Spring Boot 1. build.gradle 파일에 prometheus 라이브러리 추가 한다. implementation 'io.micrometer:micrometer-registry-prometheus' // 추가 2. 추가 후 프로젝트를 재기동 한 뒤 http://localhost:8080/actuator/prometheus 호출하여 라이브러리가 잘 반영되었는지 확인 할 수 있다. 프로메테우스 1. 프로메테우스 다운로드 하기 https://prometheus.io/download/ 상단링크에서 다운로드 후 설치 위치에서 하단 명령어를 실행 한다. $ ./prometheus 명령어 실행 후 http://localhost:9090 으로 접속시 아래와 같이 관리자 화면..

Dev/Monitoring 2023.12.01

git online repository 연결하기

기본적인 local git 세팅 방법에 이어서 online respository 와 연결하는 방법에 대해 기록하려고 한다. 이전에 윈도우에서 git bash 명령어를 이용해서 구글링을 통해 파일을 올렸던 기억은 있었는데, 회사에서는 svn 을 사용하다보니 정말 오랜만에 다시 git 에 로그인 했다. 1. local 저장소에서 git init 명령어를 사용해서 git 을 시작한다. $ git init $ git branch -M main // 기준 브랜치를 main 으로 설정 2. git init 후 온라인에서 git 아이디 생성하여 가입 관련링크 > https://github.com GitHub: Let’s build from here GitHub is where over 100 million devel..

Dev/Git 2023.11.30

git 설치하는 방법 및 간단한 명령어

- 설치 환경 : macOS 13.4   1.  git 설치하기  1) https://brew.sh/  HomebrewThe Missing Package Manager for macOS (or Linux).brew.sh 2) 상단 링크 접속 후 아래와 같은 명령어를 복사하여 terminal 에 복사 한다   -  복사 대상 명령어 :/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  이때 터미널에 복사해서 사용했더니 명령어 실행 권한이 없다고 떠서 ( permission denied )  chmod u+x 또는 su ./bin/bash ~ 로 입력했더니 정상적으로 실행되는 것을 확인할..

Dev/Git 2023.11.29