전체 글

전체 글

    [DB] Json을 RDBMS(MySQL, PostgreSQL)에 저장해도 좋을까?

    우선 키 밸류 형태의 값을 저장하기 위한 대표적인 저장소는 NoSQL입니다.하지만 어떠한 데이터를 저장하느냐에 따라 MySQL을 이용해도 무방한 경우가 있는데 여러 사이트를 참고한 결과를 정리해보겠습니다.아래의 조건을 다 통과한다면 RDBMS에서 사용해도 무방합니다.RDBMS에 저장하기 위한 조건1. 자주 업데이트 할 경우 성능에 영향을 끼친다. 예를 들어, 간단한 구조의 단순한 설정 데이터나 로그 데이터를 저장하는 경우, MySQL의 JSON 컬럼으로 충분할 수 있습니다. 2. 수정 과정이 일반 SQL보다 복잡하다. 3. 몽고 DB에 비해 집계 등 JSON에 대한 다양한 쿼리를 사용하기 어렵다. 4. 저장되는 Json이 크다면 속도 저하가 발생한다. (참고) 얼추 수천글자를 저장하는 케이스가 빈번하..

    인텔리제이 빌드가 느려졌다면..

    아래 내용이 정답은 아닐 수 있습니다.Shift + Ctrl + F8 (Mac: Shift + Cmd + F8)을 누릅니다.또는, 메뉴에서 **Run -> View Breakpoints...**를 클릭합니다.설정된 브레이크 포인트들을 모두 해제합니다.디버깅 모드로 시작 시에 가끔 특정 브레이크 포인트가 빌드 속도에 엄청난 영향을 끼치는 경우가 있습니다. spring: main: lazy-initialization: true위 설정도 로컬 환경 한정에서 꽤 도움 됩니다. 운영은 비추.

    [Spring] DTO는 어디서 변환할까? (feat. DDD)

    MVC와 헥사고날갑자기 뜬금없이 MVC와 헥사고날 이야기를 하는게 웃기지만 이것부터 얘기해보려고 합니다.일반적으로 규모가 작은 MVC 개발 방식(도메인 중심이 아닌 경우)은 일반적으로 모든 서비스 레이어에서 DTO를 파라미터로 받고 return도 DTO로 합니다.헥사고날에서는 계층 간의 시스템적인 완벽한 분리를 추구하기 때문에 서비스 레이어에서는 일반적으로 도메인 객체만을 담당하게 됩니다. 비교는 MVC와 헥사고날로 한 것이지만 더 넓게 보자면  SQL 중심의 개발 방식 vs DDD 개발 방식 을 두고 얘기한 것 이기도 합니다.헥사고날의 코드 구조와 장점헥사고날 코드를 잠깐 구경하겠습니다.Member라는 도메인 객체가 있고 해당 객체를 서비스 레이어에서 다루는 코드 입니다.public class Mem..

    [Spring] R2DBC DatabaseClient 잘 사용하기

    소개Webflux에서 DB 조회를 할 때 선택지가 많지만 개인적으로 가장 접근이 쉬운 방법에 대한 효율적인 공통화 클래스를 소개하고자 합니다.(물론 제 기준..)일단 조회 기능을 다 설명해보려고 합니다.DB 조회 종류ReactiveCrudRepositoryMono findById(ID id); 간단한 조회를 할 때 좋은 선택이 될 수 있습니다.Criteriapublic Flux findAll(Criteria criteria, Class domainType) { return r2dbcTemplate.select(domainType) .matching(query(criteria)) .all(); }동적 쿼리의 유연성이 떨어진고 가독성이 ..