일련번호 채번 동시성 높이기1) 데이터가 삽입되는 시점에 실시간으로 현재의 MAX + 1 하는 방식2) MAX 값을 관리하는 별도의 채번 테이블에서 가져오는 방식 2번 방법의 경우 채번 후 다음 처리로 진행하기 전에 채번 테이블 값을 1만큼 증가시켜야한다.채번 트랜잭션과 거래 트랜잭션이 분리되어있을 경우, 거래 중에 채번이 수행되고 그 이후 처리가 롤백 될 경우 채번은 커밋되어있고 거래는 롤백되는 상황이 생겨 데이터의 일관성이 깨진다.autonomous 트랜잭션메인 트랜잭션에 영향을 주지 않고 서브 트랜잭션만 따로 커밋하는 기능수행 방법pragma autonomous_transaction;선분이력 정합성 유지select for update 문을 사용해 레코드에 Lock 설정한다.
비관적 동시성 제어(Pessimistic Concurrency Control)- 사용자들이 같은 데이터를 동시에 수정할 것이라고 가정- 한 사용자가 데이터를 읽는 시점에 Lock을 걸고 조회 또는 갱신처리가 완료될 때까지 이를 유지한다.- Locking은 첫번째 사용자가 트랜잭션을 완료하기 전까지 다른 사용자들이 그 데이터를 수정할 수 없게 만들기 때문에 비관적 동시성 제어를 잘못 사용하면 동시성을 저해받게 된다. 잘 사용하면 동시성 증가시킴. 구현 예시select * from 고객where 고객번호 = :cstno for update;--새로운 포인트 계산update 고객 set 포인트 = :포인트 where 고객번호 = :cstnofor update nowait --> 대기없이 Exception(OR..
문장수준 읽기 일관성(Statement-Level Read Consistency)- 쿼리가 시작된 시점을 기준으로 데이터를 일관성 있게 읽어들이는 것을 말한다.트랜잭션 수준 읽기 일관성(Transaction-Level Read Consistency)- 트랜잭션이 시작된 시점을 기준으로 일관성 있게 데이터를 읽어들이는 것을 말한다. 트랜잭션 고립화 수준(Transaction Isolation Level)레벨0(= Read Uncommitted)트랜잭션에서 처리중인 아직 커밋되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용Dirty Read, Non-Repeateable Read, Phantom Read 현상 발생Oracle은 이 레벨을 지원하지 않음.레벨1(= Read Committed)Dirty Rea..
흔히 말하는 돈이 오고가는 장부를 작성하는 것이 회계이다. 돈이 오고가는 하나의 거래를 전표라는 이름으로 부르고, 하나의 전표가 하나의 분개가 된다. 분개란? 회계처리라고도 불리며, 차변에 어떤 계정이 들어가고 대변에 어떤 계정이 들어가서 금액을 얼마로 하는지 계산하는 것이다. 차변 대변 비용 100,000원 현금 100,000원 T분개라고도 불리는데 위의 형식으로 분개를 표현한다. 이렇게 들으면 차변이 뭐고, 대변이 뭔지 궁금할지도 모른다. 차변은 영어로 ‘Debit’(약칭으로 회계에서는 Dr.이라고 쓴다)이라고 하는 데 돈의 지출, 돈의 사용 및 재산을 나타낸다. 대변은 영어로 ‘Credit’(약칭으로 회계에서는 Cr.이라고 쓴다)이라고 하는데 돈 또는 자금의 원천을 나타낸다. 출처 : 여행신문(ht..

라우팅이란? 라우팅이란 웹 페이지 간의 이동 방법을 말합니다. 라우팅은 현대 웹 앱 형태 중 하나인 싱글 페이지 애플리케이션(SPA,Single Page Application)에서 주로 사용합니다. 라우팅을 이용하면 화면간의 전환이 매끄러울 뿐만 아니라 애플리케이션의 사용자 경험을 향상 시킬 수 있습니다. 뷰, 리액트, 앵귤러 모두 라우팅을 이용하여 화면을 전환하고 있습니다. (이러한 프런트엔드 프레임워크를 사용하지 않고 일반HTML 파일들로도 라우팅 자바스크립트 라이브러리를 이용하여 라우팅 방식의 페이지 이동을 구현할 수 있다.) *SPA : 페이지를 이동할때마다 서버에 웹 페이지를 요청하여 새로 갱신하는 것이 아니라 미리 해당 페이지들을 받아놓고 페이지 이동 시에 클라이언트의 라우팅을 이용하여 화면을..

컴포넌트 간 통신과 유효범위 뷰는 컴포넌트로 화면을 구성하기 때문에 같은 웹페이지라도 데이터를 공유할 수 없습니다. 각 컴포넌트마다 자체적으로 고유한 유효범위(scope)를 갖기 때문이죠! 즉, 다른 컴포넌트 값을 직접 참조할 수 없습니다. 예제1 더보기 예제 1 {{ cmp2Data }} 의 cmp1.data.cmp1Data 가 적용되지 않은 결과를 확인할 수 있다. 즉, local-component2에서 local-component1를 직접 참조할 수 없다. 상/하위 컴포넌트 관계 뷰 프레임워크 자체에서 정의한 컴포넌트 데이터 전달 방법을 따라 데이터를 전달해야한다. 가장 기본적인 방법은 바로 상위(부모) - 하위(자식) 컴포넌트 간의 데이터 전달 방법이다. 상위-하위 컴포넌트의 데이터 전달은 아래와..