개발

· 개발
간단한 프로젝트를 수행할 때에는 JpaRepository가 제공하는 메서드만으로 충분히 쿼리 구현할 수 있었지만 기능이 복잡해지면서 JpaRepository의 @Query를 사용해 쿼리를 직접 작성해야 하는 경우가 많아졌습니다.@Query는 문자열을 사용해 쿼리를 작성하기에 타입세이프하지 않고 쿼리 작성에도 불편함이 있습니다.그래서 이번 프로젝트에서는 타입세이프 하고 복잡한 쿼리도 편리하게 작성하기 위해 jOOQ를 도입하고 사용해 보았습니다. jOOQ 사용 세팅의존성jOOQ는 spring boot starter에 포함되어 있어 아래와 같이 간단히 의존성을 추가할 수 있습니다.implementation org.springframework.boot:spring-boot-starter-jooq jOOQ Cod..
· 개발
다중 칼럼 인덱스 사용 시 주의점: 다중 컬럼칼럼 인덱스에서 각 인덱스를 구성하는 칼럼은 첫 번째 칼럼부터 차례대로 정렬되고, N번째 인덱스 칼럼은 N-1번째 인덱스의 정렬에 의존해서 정렬된다. 따라서 앞선 인덱스를 통해 추출되는 데이터가 적어지는 방향으로 다중 칼럼 순서를 정의해야 한다. (카디널리티가 높은 순에서 낮은 순) 참고 링크https://studyandwrite.tistory.com/553https://jojoldu.tistory.com/243 where 절, on 절 그리고 실행순서create table ARTICLE_MST( id bigint auto_increment primary key, member_id bigint ..
· 개발
org.webjars:swagger-ui 의존성을 사용하여 Swagger-UI를 만든다면 이미지가 포함된 multipart/form-data 요청에 대해서는 Swagger 스펙을 작성하기 힘들다는 문제가 있습니다.mockMvc .perform( post(URL) .contentType(MediaType.APPLICATION_JSON) .content(content)) .andExpect(status().is2xxSuccessful()) .andDo( document( "postMember", resource( Reso..
· 개발
동시성 문제다수의 스레드가 동시에 공유 자원에 접근할 때 발생한다. 애플리케이션 개발에서의 동시성다중 스레드애플리케이션 개발에 주로 사용하는 스프링 부트의 경우 Tomcat을 내장하고 있다.Tomcat은 다중 요청을 처리하기 위해, 부팅할 때 Thread Pool을 생성한다.애플리케이션에서는 미리 생성한 Thread Pool의 Thread를 통해 유저의 요청을 처리한다.이때 Thread는 동시에 공유 자원에 접근 할 수 있고 그 결과 동시성 문제가 발생할 수 있다. 공유 자원애플리케이션 개발에서 공유자원은 DB에 저장된 정보가 대표적일 것 같다. DB 공유 자원DB에 저장된 정보에 접근하여 정보를 변경할 수 있는 고객이 여러 명이다. 글작성자재목내용조회 수좋아요위와 같은 정보를 저장하고 있는 글 의 경우..
· 개발
들어가며동시성 문제가 일어나는 여러 가지 상황이 있겠지만 저는 2가지 상황을 떠올릴 수 있었습니다.요청에 의해 처리되는 데이터가 중요한 동시성카프카로 동시에 들어오는 중복된 발주를 수신하는 경우검수/검품 이슈 등록 시 더블 클릭, 네트워크 이슈로 인해 중복된 요청이 동시에 들어오는 경우선착순과 같이 순서가 중요한 동시성선착순 쿠폰 차감이번 글에서는 "순서가 중요한 동시성" 문제를 어플리케이션에서 어떻게 해결할 수 있을지 고민한 내용을 정리해보려 합니다.Redisson 분산락다중 어플리케이션 환경에서 동시성 문제 해결하기 위한 솔루션을 검색하며 Redisson을 활용한 분산락에 관한 내용을 접할 수 있었습니다.// 특정 이름으로 락 정의 RLock lock = redissonClient.getLock(ke..
· 개발
학교에서 진행하는 캡스톤에서 위치 기반 프로젝트를 진행하게 되어 해당 프로젝트를 위해 준비하였던 것을 이번 글을 통해 공유해보려 합니다. GIS(Geographic Information System)GIS는 위치 정보를 컴퓨터 데이터로 변환하여 효율적으로 활용하기 위한 정보시스템입니다.해당 시스템을 지원하는 데이터베이스로 MySQL GIS와 PostgreSQL PostGIS가 존재합니다. MySQL GIS보다 PostgreSQL PostGIS가 보다 더 좋은 성능을 보이고 보다 많은 공간 데이터를 위한 연산 함수를 지원하지만 데이터 베이스 종류로는 MySQL을 선택하였습니다.해당 프로젝트에서 공간 데이터를 처음 다루며 만날 문제에 대해 고민하고 해결하는 과정에서 아직 학습되지 않은 PostgreSQL은 ..
belljun
'개발' 카테고리의 글 목록 (2 Page)