장점 관리 및 유지보수 용이 @Entity 클래스에 쿼리에 필요한 테이블 컬럼을 작성하여 실행하면 테이블을 생성 및 업데이트할 수 있다. SQL문을 직접적으로 작성하지 않고 객체를 바탕으로 데이터베이스를 동작시키므로 유지보수가 간결하다. 생산성 향상 JPA를 사용하게 되면 기본적으로 제공되는 CRUD 관련 쿼리들이 있어, 자주 쓰이는 쿼리를 직접 작성하지 않아도 되며, 생성한 객체를 바탕으로 데이터베이스를 다루기 때문에 객체 중심으로 개발할 수 있다. RDBMS 종류에 독립적 MySQL, Oracle, PostgreSQL과 같이 서로 다른 데이터베이스를 사용하려고 할 때 쿼리 문법이 달라도 JPA 문법으로 통합하여 사용할 수 있다. 객체 중심으로 동작하기 때문이다. 단점 복잡한 쿼리문 작성 어려움 JPA..
전체 글
웹사이트를 이용하다보면 아이디 저장, 최근 본 상품, 최근 로그인한 OAuth 타입과 같은 기능들을 볼 수 있다. Cookie, Web Storage를 사용하면 데이터베이스를 사용하지 않고도 데이터를 저장할 수 있는데, 종류와 특징을 살펴보고 어떨 때 쓰면 적합할 지 생각해 보자. Cookie 쿠키란 사용자가 임의의 웹사이트를 방문할 경우 웹 브라우저를 통해 사용자의 컴퓨터에 저장되는 작은 기록파일을 말한다. 서버가 HTTP 응답 헤더의 Set-Cookie에 내용을 넣어 전달하면, 브라우저는 이 내용을 자체적으로 브라우저에 저장한다. HTTP 요청은 Stateless(무상태성)한 특성을 가지고 있기 때문에 사용자의 상태를 저장하기 위해서 사용한다. 속성 쿠키에는 다음과 같이 여러가지 속성이 있다. Nam..
Java에서 ORM 없이 데이터베이스에게 실행할 쿼리를 전달할 때 Statement 또는 PreparedStatement를 사용해 본 적이 있을 것이다. 비슷한 이름의 두 객체가 어떤 차이가 있는지, 어떨 때 쓰는 것이 적합한지를 알고 쿼리를 효율적으로 실행시켜 보자. 쿼리 수행 방식 데이터베이스가 하나의 Statement를 받을 때 데이터베이스 엔진은 먼저 parse와 문법 검사를 진행한다. 그 후 Statement를 수행하기 위한 가장 효율적인 방법을 탐색한다. 탐색 과정에서 어떤 인덱스를 사용할지, 모든 row를 탐색할 것인지 등을 결정하여 쿼리 플랜을 세우게 되는데, 이 계산하는 과정에서 비용이 많이 들게 된다. 쿼리 플랜이 세워지면 데이터베이스는 그에 따라 쿼리를 실행한다. 차이 Statemen..