영속성 컨텍스트(entityManager)엔티티를 영구 저장하는 환경 EntityManager.persist(entity) 코드를 사용해 저장한다. 영속성 컨텍스트는 논리적인 개념이다. 영속성 컨텍스트는 엔티티를 관리하기 때문에 엔티티의 생명주기를 이해해야 한다. 엔티티의 생명주기 비영속(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) 영속성 컨텍스트에 관리되는 상태 준영속(detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed) 삭제된 상태 영속성 컨텍스트의 이점 한 트랙잭션 내에서 1차 캐시 역할을 한다. 1차 캐시로 반복 가능한 읽기 (Repetable Read) 등급의 트랜잭션 격리 수준을 데이터베이스가 아닌 애플리케이션 차..
배열에 루프를 실행하면서 루프 바디에서 배열을 수정하는건 위험할 수 있다. 뜻하지 않게 종료 조건을 바꿀수도 있으니까 이런 경우 널리쓰이는 패턴은 감소하는 인덱스를 써서 배열 마지막 요소에서 루프를 시작하는 방법이다. 이렇게 하면 배열에 요소를 추가하거나 제거해도 종료 조건이 바뀌는 일은 없다. for(let i=0; i= 0; i--){ if(isPrime(bigArrayOfNumbers[i) bigArrayOfNumbers.splice(i,1); }
원시타입 문자형(String) 숫자형(Number) 논리형(Boolean) undefined null 심볼(Symbol) 객체타입 자바스크립트에는 문자열,숫자,불리언,null,undefined, 심볼의 여섯가지 원시타입과 객체타입이 있다. 자바스크립트의 모든 숫자는 배정도 부동소수점 숫자(더블)입니다. 배열은 특수한 객체이며 객체와 마찬가지로 매우 강력하고 유연한 데이터 타입입니다. 날짜,맵,셋,정규표현식 등 자주 사용할 다른 데이터 타입들은 특수한 객체 타입입니다.

간단한 시나리오를 만들어 비동기 처리하는 법을 정리하고자 한다. (에러 처리부분은 빠짐) 시나리오: 음료를 고른다음 결제를 한다음 기다렸다가 음료를 받는다. 음료선택 -> 결제 -> 음료 받기 사이사이에 대기시간 있다. 커피 문제 실행결과 콜백으로 해결 function generateRanNum(){ return Math.floor(Math.random()*(5000-500+1)) + 500; } function coffeeSelect(coffee,callbackFunc){ var spendTime = generateRanNum() setTimeout(function(){ document.getElementById("text").innerHTML += coffee +" 선택!(1) / 소요시간: ${sp..