일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- REACT
- gradle
- vue
- MFA
- cloud native
- UsernamePasswordAuthenticationFilter
- Filter
- openapi3
- SpringBoot
- Crawling
- SpringRESTDocs
- SWAGGER
- Flyway
- JavaScript
- stopPropogation
- preventdefault
- cheerio
- OpenStack
- AuthenticatoinProvide
- axios
- Spring Batch
- Spring Security
- Reduxpender
- vuejs
- Spring REST Docs
- T-OTP
- tasklet
- 리액트
- Pender
- MSA
- Today
- Total
목록전체 글 (87)
Miracle Morning, LHWN
객체지향 쿼리언어 복잡한 검색 조건을 사용하여 엔티티 객체를 조회할 수 있는 다양한 쿼리기술이다. JPQL : Java Persistence Query Language Criteria 쿼리 : JPQL 을 편하게 작성하도록 도와주는 API 혹은 빌더 클래스 모음 네이티브 SQL : JPA 에서 JPQL 대신 쿼리를 직접 사용할 수 있다. QueryDSL : 쿼리처럼 JPQL 을 편하게 작성하도록 도와주는 빌더 클래스이며, 비표준 오픈소스 프레임워크이다. 그 외 JDBC, MyBatis 와 같은 SQL 매퍼 프레임워크 # JPQL 엔티티 객체를 조회하는 객체 지향 쿼리이다. 문법은 SQL 과 유사하지만 좀 더 간결하며, SQL 을 추상화하기 때문에 특정 DB 에 의존하지 않는다. String jpql = ..
# 프록시 데이터가 실제 필요할 때 데이터를 불러오는 지연 로딩을 사용하는 경우 실제 엔티티 객체 대신 사용되는 가짜 객체이다. - 처음 사용할 때 한번만 초기화된다. - 프록시 객체가 초기화되면 실제 엔티티에 접근할 수 있다. - 프록시 객체는 원본 엔티티를 상속받은 객체이므로 타입체크 시 주의해야한다. - 영속성 컨텍스트에 실제 엔티티가 존재하는 상황이라면 프록시가 아닌 실제 엔티티를 반환한다. - 초기화는 영속성 컨텍스트의 도움을 받아야 한다. 따라서 준영속 상태의 프록시를 초기화하면 문제가 발생한다. # 즉시 로딩 (EAGER LOADING) 엔티티를 조회할 때 연관된 엔티티도 함께 조회한다. # 지연 로딩 (LAZY LOADING) 연관된 엔티티를 실제 사용할 때 조회하며, 연관된 엔티티는 프록..
연관관계 매핑 객체의 참조와 테이블의 외래키를 매핑하는 것이다. 연관관계 매핑하는 방법은 아래와 같다. (1) ORM : 참조를 사용, 방향성이 있다. (2) RDB : 외래키 (Join Key) 를 사용하며 항상 양방향이다. (3) 방향은 단방향/양방향이 있다. (4) 1:1, N:1, 1:N, N:N 관계로 다중성이 있다. (5) 객체를 양방향 연관관계로 만들려면 연관관계의 주인이 필요하다. # 다대일 (N:1) 연관관계 - user 와 team 이 있고, user 는 하나의 team 만 소속 가능하다. - user 와 team 은 다대일 관계이다. (1) 객체 연관관계 - User 객체는 User.team 필드로 team 객체와 연관관계를 맺는다. - User 객체와 Team 객체는 단방향 관계이다..
엔티티 매니저 특정 작업을 위해 데이터베이스에 액세스하는 역할을 담당한다. 엔티티를 DB 에 등록/수정/삭제/조회(CRUD) 하는 역할이며, 엔티티와 관련된 일을 처리하는 엔티티 관리자이다. - 엔티티 매니저 팩토리는 설정 정보를 읽어와 DB 커넥션 풀도 생성하기 때문에 엔티티 매니저 팩토리를 생성하는 비용이 크다. 따라서 엔티티 매니저 팩토리는 어플리케이션 전체에서 딱 한번만 생성하고 공유해서 사용해야 한다. - 엔티티 매니저는 데이터베이스 커넥션과 밀접한 관계가 있으므로 스레드간에 공유하거나 재사용하면 안된다. - 사용이 끝난 엔티티 매니저는 반드시 종료해야 한다. 엔티티 매니저 팩토리 엔티티 매니저 엔티티 매니저 팩토리는 생성 비용이 크기 때문에 DB 를 하나만 사용하는 어플리케이션이라면 일반적으로..
ORM (Object Relational Mapping) : 객체 - 관계 매핑 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑 (연결) 해주는 것이다. ORM DataBase 데이터 객체 (클래스) 테이블 연관 관계 속성 (관계 매핑) FK 혹은 Join Key # ORM 의 장점 - 객체 지향적이기 때문에 개발자가 비즈니스 로직 및 코드 자체에 집중할 수 있다. - 관념적 코드 (Boilerplate code) 가 없거나 적어진다. (선언문, 할당 등) → 객체에 대한 코드를 작성하기 때문에 가독성이 올라간다. - 코드의 재사용, 유지보수의 편리성이 증대된다. - DBMS 의 종속성이 줄어든다. (객체의 관계를 바탕으로 SQL 을 자동으로 생성하기 때문) ※ Boilerplate code : 각종..
// Hello.js import React from 'react'; function Hello() { return Hello React! } export default Hello; # 리액트 컴포넌트는 (1) 함수 형태로 작성하는 방법, (2) 클래스 형태로 작성하는 방법이 있다. # 리액트 컴포넌트에서는 XML 형식의 값을 반환해줄 수 있음 → JSX export default Hello; 위 코드는 'Hello'라고 정의한 컴포넌트를 내보내겠다!는 의미. → 다른 컴포넌트에서 Hello를 불러와서 사용할 수 있다. UI 조각이라고 이해하면 쉬움! (하단 참고) → 컴포넌트를 여러 번 재사용 할 수도 있다. // App.js import React from 'react'; import Hello fr..
JavaScript 는 "DOM 을 직접 건드리며 업데이트 하는 방식" 이고, React 는 "아예 다 날려버리고, 처음부터 새로 만들어서 보여주는 방식" 이다. # React에서는 Virtual DOM이라는 것을 사용하기 때문에 속도의 걱정이 없다. (Virtual DOM은 실제 보여지는 DOM이 아닌, 메모리에 가상으로 존재하는 DOM) → 업데이트가 필요한 곳의 UI를 Virtual DOM을 통해 렌더링! → 기존에 보여지고 있는 DOM과 비교하여 차이점을 감지한 후, 이를 실제 DOM에 patch! # Node.js : Javascript Runtime. > npm : Node.js를 설치하면 같이 설치되는 Package Manager. 프로젝트에 사용되는 라이브러리를 설치하고, 해당 라이브러리..