본문 바로가기
728x90

분류 전체보기143

Spring 프로젝트에 CORS 적용하기 들어가면서.. 이번에 진행하는 프로젝트가 처음으로 프론트 파트와 백엔드 파트를 분리해서 개발하는 방식이고, 저는 이 중 백엔드 파트의 WAS를 spring framework를 이용해 개발하는 파트를 담당하게 되었습니다. CORS에 대한 개념 정리 공부하게된 이유... 이번에 프로젝트를 진행하면서, 처음으로 프론트엔드 파트와 백엔드 파트를 나누어 개발을 진행하게 되었는데 배포 방식에 대해 이야기 하던 도중 프론트 서버와 백 서버를 kkkdh.tistory.com 그래서 이번에는 지난 글에서 정리했던 SOP와 CORS에 대한 개념을 바탕으로 클라이언트 측에서 오는 교차 출처 차원 허용에 대한 부분을 처리하게 되었고, 이번 글에서는 이 과정을 간단하게 기록해보려고 합니다! CORS 허용하는 출처 등록하는 방법.. 2023. 2. 15.
[JPA] 프록시 프록시 기능을 구현하는 과정에서 DB에서 가져오고 싶은 정보의 범위가 비지니스 로직에 따라 다르기 마련이다. 예를 들어 Member와 Team이라는 두 개의 entity가 연관관계 상에 있을 때, 구현 목적에 따라 두 개의 데이터가 한번에 조회되는 것이 좋을수도 있고, 그렇지 않을수도 있다. 이러한 상황을 JPA는 프록시와 지연로딩이라는 개념으로 기가막히게(?) 해결해준다고 한다. 먼저 프록시의 개념은 다음과 같다. 프록시 기초 em.find(): 앞서 살펴본 데이터베이스를 통해 실제 엔티티 객체를 조회하는 메서드 em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체를 조회하는 메서드 기존에 알던 EntityManager의 find method 말고, getReferen.. 2023. 2. 15.
트랜잭션(Transaction)의 특징(ACID)을 포함한 여러 가지 동시성 관련 개념 정리 들어가면서.. 😁 이번에 wanted에서 진행하는 2023년 2월 백엔드 프리온보딩 챌린지 과정에서 "MySQL 잘 사용하기"라는 주제를 공부하게 되었습니다! 사실 작년 4학년 2학기때 데이터베이스 설계 및 시각화 과목에서 다루었던 내용들이긴 하지만, 복습을 하는 목적으로 이번 챌린지에 신청하게 되었는데 이번에 챌린지를 수강하면서, 트랜잭션 개념과 동시성 제어와 관련된 부분들의 개념을 CS 지식을 정리하는 차원에서 정리해보려고 합니다. 그럼 이제 제가 공부한 흐름에 맞춰서 한번 정리해 보도록 하겠습니다. Transaction(트랜잭션) 우선 트랜잭션부터 살펴봅시다. 데이터베이스에서의 Transaction이란 atomic 하게 처리할 수 있는(쪼갤 수 없는 최소 단위를 처리한다는 뜻) 논리적인 작업의 단위.. 2023. 2. 11.
HTML, HTTP API, CSR, SSR 용어와 개념 정리 정적 리소스 고정된 HTML 파일, CSS, JS, 이미지와 영상 등을 제공 주로 웹 브라우저의 요청에 대한 응답으로 전송한다. HTML 페이지 동적으로 필요한 HTML 파일을 WAS에서 생성해서 전달한다. 웹 브라우저에서는 받은 HTML을 해석해서 보여준다. HTTP API HTML이나 정적 리소스가 아닌 데이터를 전달한다. 최근에는 주로 JSON 형식을 사용해 데이터를 표현한다. 다양한 시스템에서 사용한다. (웹 브라우저에 전송하면, 그냥 json만 띡하니 띄워준다.) 데이터만 주고 받는다. UI 화면이 필요하면, 클라이언트가 별도로 처리한다. 앱, 웹 클라이언트, 서버 to 서버 자바스크립트의 ajax나 fetch와 같은 API를 이용해 서버의 HTTP API를 호출할 수 있는데, 이에 대한 응답으.. 2023. 2. 8.
CORS에 대한 개념 정리 공부하게된 이유... 이번에 프로젝트를 진행하면서, 처음으로 프론트엔드 파트와 백엔드 파트를 나누어 개발을 진행하게 되었는데 배포 방식에 대해 이야기 하던 도중 프론트 서버와 백 서버를 분리하게 되는 경우 CORS와 관련된 문제가 발생한다는 점에 대한 개념을 잘 이해하지 못해서 이에 대해서 정리해보려고 합니다. CORS가 뭔가 공부하기 위해서 얄코님의 설명 영상과 여러 개발자 분들의 글들을 참고해서 공부했습니다!! 그래서 CORS는 뭔데?? CORS는 Cross-Origin Resource Sharing의 약자로 우리 말로 풀면, 다른 origin간의 자원 공유라고 해석할 수 있을 것 같다. 그런데, 여기서 말하는 origin은 무엇을 의미할까?? Origin은 바로 자원의 출처를 의미합니다. 그러니깐 .. 2023. 2. 6.
[JPA] 고급 매핑 상속관계 매핑 객체는 상속관계가 있지만, 관계형 데이터베이스는 상속관계 X 슈퍼타입, 서브타입 관계라는 모델링 기법이 그나마 객체 상속과 유사하다 상속관계 매핑: 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것 데이터베이스 논리 모델을 실제 물리 모델로 구현하는 방법에는 3가지가 있다. 조인 전략: 각각 테이블로 변환 단일 테이블 전략: 통합 테이블로 변환 구현 클래스마다 테이블 전략: 서브타입 테이블로 변환 객체는 상속관계를 지원하기 때문에, 그냥 매핑하면 된다. 결론은 DB에서 세가지 중 어떤 방식으로 물리 모델을 구현하더라도, JPA를 이용하면 모두 객체와 매핑이 가능하도록 지원한다는 점이다. 조인 전략 위의 다이어그램은 조인 전략을 사용하는 경우이고, 각각의 테이블에 중복되는 정보.. 2023. 2. 6.
728x90