profile
내 머릿속 지우개

[GraphQL] Header 활용하기

GraphQL은 헤더를 활용할 수 있다만약 GraphQL에 헤더를 넣고 활용하고 싶다면 Inteceptor를 활용하면 된다WebGraphQlInterceptor 를 사용해서 WebGraphQlRequest에 있는 header를 GraphQLContext에 넣어서 이를

2023년 2월 14일
·
0개의 댓글
·

[GraphQL] Spring boot 시작하기

build.gradle

2023년 2월 10일
·
0개의 댓글
·

[GraphQL] 소개

GraphQL은 서버에서 데이터를 가져오기 쉽게 만든 쿼리 언어이다. GraphQL는 서버사이드에서 GraphQL로 작성된 쿼리를 받아서 결과를 처리해서 클라이언트에게 응답하는 역할을 한다. 하나의 GraphQL은 Query와 Mutation으로 나눠 요청을 개념적으로

2023년 2월 10일
·
0개의 댓글
·

[모던 자바 인 액션] 병렬 데이터 처리와 성능

병렬 스트림 컬렉션에 parallelStream을 호출하면 병렬 스트림이 생성된다. 병렬 스트림이란 각각의 스레드에서 처리할 수 있도록 스트림 요소를 여러 청크로 분할한 스트림을 말한다. parrallel()이나 sequential()로도 병렬 혹은 순차 스트림으로

2022년 12월 29일
·
0개의 댓글
·

[MySQL] 인덱스

들어가며 해당 포스트는 Real MySQL 8.0 (1권) 을 보며 공부한 내용을 기록하기 위해 작성한 포스트이다.

2022년 12월 11일
·
2개의 댓글
·

[MySQL] 엔진과 잠금의 종류

해당 포스트는 Real MySQL 8.0 (1권) 을 보며 공부한 내용을 기록하기 위해 작성한 포스트이다.MySQL 서버에서의 잠금은 크게 MySQL 엔진 레벨 잠금과 스토리지 엔진 레벨 잠금으로 구분할 수 있다.MySQL 엔진 레벨 잠금의 특징은 모든 스토리지 엔진에

2022년 12월 4일
·
2개의 댓글
·

[JPA] 락을 이용한 재고 관리

JPA 락킹 포스트 에서 JPA 가 DB 에 락을 거는 방법에 대해서 학습을 했었다. 해당 포스트는 JPA 락킹 포스트 에서 공부했었던 내용과 거기에 추가적인 내용을 더해 예제를 만들어보며 락킹을 공부했던 내용을 기록하고자 작성하게 됐다.이전 포스트 작성한 바와 같이

2022년 11월 27일
·
0개의 댓글
·

[JPA] Second-Level Cache

Hibernate는 1차 캐시를 제공한다. 1차 캐시는 영속성 컨텍스트에 존재하고 따라서 영속성 컨텍스트와 생명주기가 동일하다. 즉, 트랜잭션이 종료되면 1차 캐시도 종료된다. 서로 다른 isolation에서의 concurrent를 보장하고자 하는 요구가 생긴다면 2차

2022년 11월 8일
·
0개의 댓글
·

[JAVA] Atomic 과 동시성

해당 포스트는 Effective JAVA Item.78 중 Atomic 과 volatile 에 대해서 공부한 과정을 기록하기 위해 작성했다.공유 중인 가변 데이터에 여러 개의 스레드가 동시에 접근하게 되면 Race Condition이 발생할 수도 있고, 가시성 문제가

2022년 10월 31일
·
0개의 댓글
·

[모던 자바 인 액션] 람다로 리팩터링하기

람다의 이해와 활용을 공부하기 위해서 모던 자바 인 액션의 3장과 9장을 요약해 포스트를 작성하고자 한다.함수형 인터페이스는 오직 하나의 추상 메서드만 갖는 인터페이스를 말한다. 함수형 인터페이스는 람다 표현식으로 추상 메서드를 직접 전달할 수 있기 때문에 전체 표현식

2022년 10월 28일
·
0개의 댓글
·

[모던 자바 인 액션] 스트림으로 데이터 모으기

스트림을 사용하면서 항상 마무리를 Collect(Collectors.toList()) 혹은 Collect(Collectors.toSet()) 으로 맺어왔다. 원래도 스트림에 대해서 무지하다고 느끼고 있었지만 모던 자바 인 액션 속 Collector 관련 내용을 보며 나

2022년 10월 26일
·
0개의 댓글
·

[JPA] @Transactional 과 동시성

JPA는 다양한 방법으로 동시성 처리를 지원한다. Lock을 걸수도 있고, Transaction의 격리 수준을 조절할 수도 있다. 프로젝트를 진행하며 동시성을 고려해본 경험이 없기 때문에 동시성 처리를 위한 공부를 하며 새롭게 알게 된 내용들을 정리하고자 하기 위해 작

2022년 10월 24일
·
0개의 댓글
·

[JAVA] Future & ForkJoinPool

Future ? 비동기적인 연산의 결과를 표현하는 클래스로 멀티스레드 환경에서 처리된 데이터를 다른 스레드로 전달할 수 있다. 내부적으로 Thread-safe하게 구현되어있기 때문에 synchronized를 사용하지 않아도 된다. 1. 기본 예제 submit()으

2022년 10월 22일
·
0개의 댓글
·

[JAVA] Predicate

arugment를 받아서 boolean type을 반환하는 Functional Interface반대 결과값 returnPredicate를 사용하면 Stream의 filter로 사용할 수 있다는 장점이 있음Stream에 Predicate를 적용해보자.김 씨이며 이름이 2

2022년 10월 20일
·
0개의 댓글
·

[DB] 옵티마이저 & 실행계획 & INDEX

옵티마이저는 SQL 명령을 수행할 때 최적 경로를 찾아주는 역할을 하는 DBMS의 핵심 엔진을 말한다. SQL 실행 시 옵티마이저는 여러가지의 실행계획 을 세우고 이 실행계획들의 예상 비용을 정리해서 제일 효율적인 실행계획에 따라서 쿼리를 수행한다.옵티마이저는 실행계획

2022년 10월 19일
·
0개의 댓글
·

[JPA] 다양한 value type 매핑 방법

들어가며 DB를 설계하다 보면 엔티티와 라이프 사이클을 함께 하지만 식별자를 가지지 않고 오직 값만 가지고 있는 Value Type(값 타입) 을 종종 사용하게 된다. 본 포스트는 Entity와 Value Type을 매핑하는 다양한 방법에 대해서 공부하기 위해 작성했

2022년 10월 15일
·
0개의 댓글
·
post-thumbnail

[Spring AOP] custom validaton 적용 이슈

신입 프로젝트를 진행하면서 유효성 검증을 위해서 제공되는 Util을 사용해야 하는 이유로@Valid를 사용하지 못하는 상황이었다. Util을 반복적으로 작성하는게 귀찮아서 AOP를 적용하려는 과정에서 AOP가 적용되지 않은 문제가 발생했다.내가 의도했던 바는 다음과 같

2022년 10월 7일
·
0개의 댓글
·

[JPA] 잠금의 종류

부끄럽지만 JPA를 사용하면서도 어노테이션을 통해 잠금이 가능하다는걸 알지 못했다. 그래서 이것들을 정리해보고자 한다.현실적으로 데이터 갱신 시 경합이 발생하지 않을 것이라고 보고 잠금을 거는 기법이다. 예를 들어서 회원 정보 수정과 같은 경우는 회원 본인에 의해서 수

2022년 9월 12일
·
0개의 댓글
·

[JAVA] HashMap 은 어떻게 동작할까

본 포스트는 NAVER D2 - Java HashMap은 어떻게 동작하는가?를 참고해 HashMap가 어떻게 충돌 가능성을 줄이는지에 대해 구체적으로 다룰 것이다.HashMap과 HashTable은 둘 다 '키에 대한 해시 값을 사용해 값을 저장하고 조회하며 키-값 쌍

2022년 7월 27일
·
0개의 댓글
·

multi-threaded?

들어가기 전 multithread의 instruction 처리에 대해서 concurrency 인지 parallel 인지에 대해 명확한 이해가 없었다. multithread 이면 단순히 parallel(병렬적)하게 instruction을 처리한다고 생각했다. 문득 생

2022년 7월 26일
·
0개의 댓글
·