분류 전체보기 954

Provide, Inject 데이터를 자손 컴포넌트 까지 전달

Provide -> Inject 이렇게 전달되는 거임. 일종의 provide에 넣으면 전역변수라고 생각하면 됨. 그리고 inject 해서 받을 거 선택할 수 있음. export default{ data(){ return { message:'Hello Vue!!!' } }, provide(){ return { msg : this.message, msgByApp : "안녕하세요." } } } 이렇게 provide()는 함수로 씀. msg, msgByApp이 전역변수 되는 거랑 비슷하게 보면 됨. 근데, 무작정 전역변수가 아니라 가져와야 됨. 일종의 공유통? {{ msg }} export default{ inject : [ 'msg' ] } 이렇게 '전역변수이름' 해서 받아서, 그 이름 그대로 쓰면 됨. 배열..

Vue.js 2023.10.18

DB 테이블 및 용어 정리

DB는 테이블을 담을 수 있는. 테이블은 표 형태의 단위로 데이터를 표시. 데이터 : 하나의 단편적 데이터 테이블 : 데이터들을 테이블 형태로 표현한 것 DB : 테이블이 저장되는 장소 DBMS : DB를 관리하는 소프트웨어 열 : 세로 열 이름 : 열을 구분하기 위한 이름 데이터 형식 : 각 열에 저장 될 타입. varchar, int, bigint 등 행 : 가로, 하나의 데이터. 기본 키 : 각 행을 구분 할 유일한 열. 아이디, 주민번호 등 중복되어선 안되는 것. 기본 키는 열 중 1개만 지정되어 있어야 함. SQL : DBMS의 언어.

DB 2023.10.18

DB 모델링, 설계

테이블의 구조를 미리 설계하는 것 보통 프로젝트 할 때, 폭포수 모델이라는 것을 채용하는데 1. 프로젝트 계획 : 계획. 어떤 일을 할 지. 2. 업무 분석 : 어떻게 업무가 어떤 식으로 돌아가는 지 분석 3. 시스템 설계 : 앞서 정리한 업무 분석을 어떻게 컴퓨터 시스템 상으로 할지 설계 4. 프로그램 구현 : 앞서 시스템 설계한 것을 실제 구현 5. 테스트 : 테스트 6. 유지보수 : 유지보수

DB 2023.10.18

2. 객체지향과 관계형DB

우리는 객체지향 언어를 이용해 객체를 관계형 DB에 저장한다. 근데, 관계형 DB에 저장하려면 SQL을 작성해야 한다. 이것이 SQL 중심적 개발의 문제점 객체 관계형 DB 에서 개발자가 SQL문을 작성하며 Mapper 역할을 해줘야 함. 기능마다, 다루는 데이터마다 SQL문을 다 작성 해줘야 함.. 또 SQL문 이렇게 다 작성했는데 갑자기 데이터 하나를 더 추가시켜달라고 하면.. 대부분 관계형 DB를 써야 하기에, 객체와 관계형 DB 사이의 패러다임 불일치가 발생한다. 1. 상속 2. 연관 관계 3. 데이터 타입 4. 데이터 식별 방법 1. 상속 DB에는 상속 관계 라는 것이 없다. 가장 비슷한 것은 슈퍼타입, 서브 타입의 관계. 기법중의 하나임. 부모같은 테이블을 만들고, 자식같은 테이블을 만듦. 필..

JPA/JPA 기본 2023.10.18

1. JPA

과거에는 DB와 소통하려면 SQL을 직접 작성해야 했음. 근데 JPA는 기본적인 것들은 SQL조차 작성할 필요가 없음. 우리가 그냥 메소드 쓰면 알아서 SQL 작성해주고 DB에 날려줌. JPA는 단순해 보인다. 수십줄의 코드가 한두줄로 되고, SQL도 자동으로 날려준다. 근데 어려워 한다. 이유는? 1. 객체와 테이블을 올바르게 맵핑하고 설계하는 방법을 모른다. - 기본적인 매핑, 설계 - 기본키와 외래 키 매핑 - 1:N, N:1, 1:1, N:M 매핑 등 2. JPA의 내부 동작 방식을 모른다. - JPA가 어떤 SQL을 만드는 지. - JPA가 언제 SQL을 DB에 날리는 지 그래서 JPA가 안정적인지, 문제없는 시스템인지? 네카쿠배 등 조단위 거래 금액이 넘어가는 다양한 서비스에서 사용, 검증됨.

JPA/JPA 기본 2023.10.18

60. 트랜잭션 전파 활용 7

저번에 만약 try catch로 복구를 시도하려 한다면 여러 고려를 했어야 했다. 근데 사실 간단한 것이 있다. REQUIRES_NEW 하면 그냥 저 트랜잭션만 분리시킬 수 있기 때문에, 다른 트랜잭션에 영향이 안간다. @Slf4j @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; @Transactional public void save(Member member){ log.info("member 저장"); em.persist(member); } public Optional findByUsername(String username){ return em.createQuery("se..