728x90
✔ JPA에서 가장 중요한 2가지1. 객체와 관계형 데이터베이스 매핑하기DB와 객체를 어떻게 설계해서 어떻게 매핑되도록 할 것인가(설계와 관련된 부분) 2. JPA의 동작원리영속성 컨텍스트 ⚙ 엔티티 매니저 팩토리와 엔티티 매니저클라이언트의 요청이 올때마다 EntityManagerFactory에서 EntityManager를 생성해서 제공한다.EntityManager는 내부적으로 DB Connection을 사용해서 DB를 사용하여 데이터를 제공함. 📦 영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어직역하자면 “엔티티를 영구 저장하는 환경”이라는 뜻EntityManger.persist(entity) 시에 DB에 저장한다는 뜻이 아닌 영속성 컨텍스트를 통해 엔티티를 영속화 한다는 뜻→ DB저장이 아닌, ..
스프링부트로 서버 개발 시에, 프론트 단이 React인 경우서버에 Request를 보냈을 시에 CORS 에러가 발생한다. 그렇다면 CORS란 무엇일까? CORS (Cross-Origin-Resource-Sharing) 란? 🤷♂️교차 출처 리소스 공유를 뜻하는 CORS는, '서로 다른 출처에서 리소스를 공유하는 것'을 뜻한다. 여기서 말하는 출처란 다음과 같다. URL은 https://www.domain.com:3000/user?query=name&page=1 과 같은 형태로 이루어져 있다. 이 중, 'Protocol, Host, Port' 를 합쳐 부르는 말이 Origin(출처)이다. 이제 이해가 갈 것이다. CORS 허용 설정을 하지 않았을 경우,서버와 다른 Origin을 가진 곳에서 서버의 O..
1. SQL 중심적인 개발의 문제점 🤦♂️ JPA를 사용하기 전, 데이터 등록 조회 삭제 등의 상황마다 INSERT, UPDATE, SELECT 등 CRUD의 무한 반복! 만약 위와 같은 Member 클래스를 생성했다면 DB에 아래와 같은 SQL문을 입력해주어야함. 이후 Member 클래스에 tel이라는 맴버 변수가 추가되면 UPDATE 쿼리로 DB 테이블 구조를 변경해주어야함. 😢 하지만 SQL에 의존적인 개발을 피하기는 어렵다.개발자가 객체를 SQL로 변환하여 관계형 데이터 베이스에 넣는 과정이다.이 과정은 자바를 DB 연동하여 함께 사용할 때, 어쩔 수 없이 거쳐야하는 과정이다. 그림에 있는 "객체 -> SQL 사이의 SQL 변환 과정" 에서 개발자가 SQL 매퍼의 역할을 하고 있었다..!🤦..
도커 MySQL 컨테이너 접속법 도커를 통해 MySQL 컨테이너를 생성하는 경우 MySQL에 직접 접속하여 설정해야하는 상황이 있다. 또는 DB 내부에 제대로 값이 입력되는지 확인하는 등 다양한 상황에서 DB에 접속해야하는 경우가 발생한다. 이때 도커 컨테이너로 열려있는 DB이기 때문에 어떻게 접속하는지 모르는 사람들이 많은데 그 방법에 대해 말해보고자 한다. 본인은 다음과 같은 docker-compose.yml 과 Dockerfile을 통해 생성한 환경에서 테스트한다. docker-compose.yml version: '3' services: app: container_name: app build: ../ restart: always ports: - '8080:8080' depends_on: - dat..
스프링부트 몽고DB 연결 이번 포스팅에선 스프링부트에 스프링 데이터 몽고디비를 사용하여 DB를 연결하고, 간단한 api를 구현하여 연결이 잘 되었는지 테스트해보는 내용에 대해 다뤄보겠습니다. 아직 몽고DB에 관하여 공부가 더 필요하기 때문에 우선 간단한 내용과 연결 방법을 소개하고 다음 포스팅에서 몽고디비에 관한 내용만을 다루는 포스팅을 작성하겠습니다. 바로 시작하겠습니다. :: Mongo DB :: MongoDB의 기본적인 데이터 구조는 데이터베이스, 컬렉션, 도큐먼트 단위로 관리된다. MongoDB 장점 Schema-less 구조 - 다양한 형태의 데이터 저장 가능 - 데이터 모델의 유연한 변화 가능(데이터 모델 변경, 필드 확장 용이) Read/Write 성능이 뛰어남 Scale Out 구조 - 많..
Jenkins AWS Github Docker 사용한 CI/CD 구축 안녕하세요. 이번 시간엔 요즘 학습하고 있는 Docker, Jenkins와 Github, AWS를 사용하여 SpringBoot 서버 CI/CD 구축을 진행하는 과정을 보여드리겠습니다. 현재 완벽하게 숙달된 상태가 아닌, 여러 자료들을 찾아보며 처음 성공했던 과정을 기록하는 것입니다. 혹시라도 잘못된 부분이 있다면 댓글로 지적 부탁드리겠습니다!! 바로 시작해보겠습니다. 사용하는 도구 및 환경 Mac Spring boot gradle 7.2 AWS 프리티어 EC2 2대 (젠킨스용,운영용) AWS RDS AWS Secret Manager Mysql Jenkins Java 11 Docker IntelliJ DockerHub Github Int..