본문 바로가기

전체 글

(381)
[JPA] 객체를 활용한 개발 하이버네이트와 자바 퍼시스턴스 프로그래밍 인터페이스의 작동 방식과 객체를 불러오고, 수정하고, 저장하는 효율적인 방법을 알아본다. 트랜잭션이 어떤식으로 작동하는지, 그리고 왜 대화형 처리가 새로운 애플리케이션 설계 방식을 제시할 수 있는지 이해하게 될 것이다. 그러고 나면 객체 수정 시나리오를 최적화하고, 복잡한 쿼리를 작성하며, 성능과 확장성 향상을 목적으로 최적의 Fetch 및 Caching 전략을 적용할 수 있게 될 것이다. 먼저 영속 객체와 영속 객체의 생명주기, 영속화 상태의 변경을 일으키는 이벤트부터 시작한다. 영속성 생명주기는 반드시 확실하게 이해하고 있어야 한다. 영속성 생명주기 하이버네이트는 투명한 영속화 메커니즘을 제공하므로 객체가 영속상태를 표현하든 메모리 상에만 존재하는 임시 상태를..
[JPA] 하이버네이트 캐싱 시스템 하이버네이트에서 캐시를 활성화해 로컬과 분산 애플리케이션에서 데이터 조회 속도를 올릴수 있는 방법을 살펴본다. 객체/관계형 영속화 계층을 사용하는 애플리케이션이 직접 JDBC를 사용해 구축한 애프리케이션보다 성능이 좋을 것이라는 주장의 가장 주요한 이유는 캐싱이 가능하다는 데 있다. 비록 대부분의 애플리케이션은 캐싱 없이도 받아들일만한 성능을 낼 수 있게 설계돼야 하겠지만, 주로 읽기 연산을 처리하는 애플리케이션이나 데이터베이스에 중요한 메타데이터를 유지하는 애플리케이션에서는 캐싱이 성능에 막대한 영향을 주게 된다. 더욱이 고도의 동시성 처리를 수행하는 애플리케이션이 수천개의 온라인 트랜잭션을 처리할 수 있을 정도까지 확장하려면 대개 캐싱을 통해 (여러) DB서버의 부하를 줄일 필요가 있다. 이 과정에서..
[JPA] 왜 ORM을 사용해야 하는가? 하이버네이트를 마스터하고 싶다면, 하이버네이트가 제공하는 플러시, 페치, 캐시 기능의 다양한 옵션과 동작 원리를 깊이 있게 공부해야 한다. 이러한 것을 마스터해야 하이버네이트를 사용한 대화형 요청 처리를 구현하거나 성능 최적화를 할 수 있게 될 것이다. 하이버네이트 사용하기 이전의 목표. 하이버네이트를 사용해서 도메인 클래스가 하나인 간단한 CRUD 애플리케이션을 만들겠다 일대다 관계에 있는 도메인 클래스 두 개를 매핑하고 두 도메인 클래스에 대한 CRUD 애플리케이션을 만들겠다. 다형성을 지원하는 계층 구조의 도메인 클래스를 만든 뒤 그것에 대한 CRUD 애플리케이션을 만들겠다. 관계형데이터베이스가 ORM의 일부를 차지하고 있다면 당연히 다른 한 쪽은 자바 애플리케이션에서 SQL을 사용해 데이터베이스로..
[수학] 통계에서 로그를 사용하는 이유? 로그를 통한 정규화? 정규화(normalization)란 패턴 인식에서의 전처리의 일종으로 볼 수 있다. 식별처리를 용이하게 하기 위해서, 대상이 되는 패턴의 모양을 어느 기준에 따라 조정하는 조작이다. 예를 들면 문자인식에서, 문자를 일정한 크기로 변환하는 것을 크기의 정규화(normalization of size), 위치를 일정한 장소로 이동하는 것을 위치의 정규화(normalization of position)이라고 한다. 모멘트는 패턴 공간 중에서 위치와 크기를 정규화하여 그 후에 특징을 추출하거나, 먼저 특징 추출하여 그 후 특징공간 중에서도 정규화하여도, 같은 결과를 얻을 수 있는 유일한 수학적인 특징매개변수이므로 많이 쓰인다. 이 성질을 모멘트 특징만이 평행이동과 신축을 허용한다고 한다. 음성, 문자, 화상 등에..
[수학] 로그를 왜 사용하는가? (로그의 유래와 의미) 출처: https://m.blog.naver.com/sbssbi69/90159024636 다른 사람들보다 조금더 신경을 써서 한분야를 깊게 생각한다면 월등히 뛰어난 능력을 얻게 된다. 지식은 넓이도 중요하지만 깊이도 중요하다. 특히 수학처럼 몇천년에 걸쳐 쌓아온 학문의 경우 깊게 이해하면 능력을 향상을 꽤할 수 있다. 그 분야에 재미가 붙고 자신감이 생기면, 쉽게 잊어버리지 않게 되고, 마지막으로 체계적인 줄기가 세워지므로 어떤 문제에도 해결능력을 스스로 찾게 된다. 로그/상용로그/자연로그에 대한 기초 개념을 살펴본다. 이것들은 왜 만들어졌고? 어디에 쓸모가 있고 효용이 있는지? 이것들을 발견한 것이 어떤 역사적 의미가 있고, 덕분에 무엇이 발전될 수 있었는지?를 알아본다. 1. 복잡한 계산을 간단하게 ..