Spring, Java 개발자 입니다

데이터베이스/Redis

spring boot redis 활용하기

Redis cache 상태를 저장하기 위해서 서버 자체에서 cache 를 구성해서 사용하는 경우도 있지만 오픈소스인 redis 를 이용해서 cache 환경을 구성하는 경우도 많다. 흔히 말해 redis를 사용하면서 얻을 수 있는 장점으로 여러가지 것들을 얘기하지만, 예를 들어 다양한 데이터 구조 혹은 캐싱기능(빠른 계산 결과를 위한) 메세지 브로커 기능 등 사실 이것들을 꼭 redis를 사용해서 구현해야 이득이라고 생각하지는 않는다.  실제로 다양한 데이터 구조는 커스터마이징하게 cache를 구현하는것이 좀더 이득인 경우도 있고 메세지 브로커또한 redis 를 사용할 필요는 없다. 심지어 캐싱기능을 위해서 redis를 사용한다는 것은 말도 안되는 이야기라고 생각한다. 내가 생각하는 redis 의 주 사용..

데이터베이스/Querydsl

QueryDSL 사용 이유와 방법 ②

[데이터베이스] - QueryDSL 사용 이유와 방법 ① QueryDSL 사용 이유와 방법 ① 실무에서 개발자를 하기위해 공부를 하던 시절에는 데이터베이스 라는 것에 대해 깊이 생각하지 않았다. 컴퓨터 프로그래밍 기술이 계속적으로 발전 하고 개발자가 좀 더 편하게 개발할 수 있 eno1993.tistory.com 일반적으로 QueryDSL을 왜 사용하는지 그리고 가장 간단한 조회에 대해서 살펴봤다. 그럼 좀 더 복잡한 조회 와 업데이트 그리고 삭제 방법에 대해서 살펴보도록 하자. 테이블 정의 @Entity @Table(name = "member") public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(na..

데이터베이스/Querydsl

QueryDSL 사용 이유와 방법 ①

실무에서 개발자를 하기위해 공부를 하던 시절에는 데이터베이스 라는 것에 대해 깊이 생각하지 않았다. 컴퓨터 프로그래밍 기술이 계속적으로 발전 하고 개발자가 좀 더 편하게 개발할 수 있도록 도와주는 프레임워크나 라이브러리를 통해서 많은 부분들에 대해서도 생각할 필요가 없어졌고 마찬가지로 JAVA Spring 을 사용하면서 비지니스 로직에만 몰두하는 개발자가 되어 JPA를 어떻게 잘 사용하면 될 까, 혹은 어떤 라이브러리를 써야지 SQL에 의존적이지 않은 개발을 할 수 있을까만 생각을 했던것 같다. 뭔가 점점 바보가 되어가는 느낌이다. 운 좋게 면접관으로 여러번 참여할 수 있는 기회를 얻게 되서 다양한 면접자들의 DB 접근 기술을 확인 할 수 있는데 많은 분들이 QueryDSL을 사용해서 쿼리문을 작성하는 ..

데이터베이스/Sql

JAVA batch insert, update JdbcTemplate

query dsl 을 사용해서 insert 와 update 기능을 구현했는데 한 꺼번에 수많은 데이터를 집어넣어야 하는 경우가 발생해서 성능적인 부분에서 이슈가 발생했다. spring jpa 를 사용해서 batch insert로 데이터를 집어 넣을 수 있지만, @GeneratedValue(strategy = GenerationType.IDENTITY) 를 사용하고 있을 경우 db에 insert 수행이후 id 값을 알 수 있기 때문에 쓰기 지연 기능이 불가, batch insert 사용이 불가능 하다. 따라서 jdbc template을 이용해서 직접 쿼리를 날려줘서 batch insert를 수행해야 한다. 굳이 jpa 를 이용하여 수행할 수 있는 방법이 있지만 key 매핑 전략을 변경해야 하고 어떤 db ..

데이터베이스/Encoding

varchar VS nvarchar 인코딩 방식

Spring JPA 를 통해 DB에 테이블을 만들고 컬럼으로 HashMap 을 지정할 경우 어노테이션을 통해서 따로 추가적인 정의를 해줘야 한다. 실제 실무에서 사용되는 코드를 살펴보던 중 Map 타입의 데이터를 저장하는 테이블을 발견했는데 컬럼의 정의가 "nvarchar"로 정의되어 있었다. 나는 그 이유가 bulk insert를 위한 명시적 columnDefinition 인 줄 알았으나 잘못 된 생각이었다. 우선 varchar와 nvarchar 의 차이를 살펴보자. varcher nvarchar 형태 가변길이 문자열 저장 영어 1byte 2byte 한글 2byte 인코딩 iso_1 유니코드 둘의 중요한 차이는 인코딩 방식이 다르다는 것이다. 컴퓨터의 기본 저장 단위는 1바이트로 8bit를 사용하게 된..

수달하나
'데이터베이스' 카테고리의 글 목록