profile
hyunho

Redis 활용한 분산락

분산락과 Redis분산락 적용 적용 코드분산 서비스 환경에서 여러 요청, 작업이 동일한 자원(공유 자원)에 접근하여 경쟁상태가 발생하지 않도록 원자성을 보장 하는 것이 분산락 입니다.지난번 좌석예매를 통한 동시성 문제 알아보기에서 MySQL Lock을 이용해 공유자원에

2023년 9월 30일
·
0개의 댓글
·

MySQL 분산처리(Replication with docker)

mysql replication 데이터베이스 쓰기와 읽기 전용을 분리하기 위해 테스트로 local환경에 Dokcer를 활용하여 구성한 내용입니다. 환경 정보 MAC OS Mysql 8.0.33 Spring boot 3.1.0 container를 실행 시키기 위한

2023년 8월 30일
·
0개의 댓글
·

[Spring] Custom Exception

API는 각 오류 상황에 맞는 오류 응답 스펙을 정의하고, JSON으로 데이터를 내려주어야한다. 최근 프로젝트를 진행하면서 Error가 발생할시 Client에 정황히 어떤 에러가 발생했는지 알려주기 위해 error code, error message등을 만들어 전달하기

2022년 3월 15일
·
0개의 댓글
·

[SpringBoot_Kafka] kafka를 이용한 채팅서버-1

분산 이벤트 스트리밍 플랫폼docker 환경에 Kafka 설정docker-compose 설치kafka를 docker에서 실행하기 위해서는 docker-ccompose가 설치 되어있어야 한다.kafka는 항상 zookeeper가 실행되어 있어야해서 docker-compo

2022년 1월 18일
·
0개의 댓글
·

[JPA] Querydsl을 이용한 Projection

Projection : Entity의 속성들중 일부 데이터만 가져오는 방법순수 JPA에서 DTO를 조회 할때는 아래 3가지 단점이 있다.JPA에서 DTO를 조회할 때는 new명령어를 사용DTO의 package 이름을 다 적어줘야함생성자 방식만 지원Querydsl에서

2021년 12월 24일
·
0개의 댓글
·

[Spring] spring Interceptor

Interceptor는 Client에서 Server로 요청(Request)객체를 Controller에 도달하기전에 가로체 원하는 작업을 수행후 Handler로 보낼수 있도록 해주는모듈imageInterceptor와 filter는 Servlet 전후에서 실헹디며 AOP

2021년 12월 7일
·
0개의 댓글
·

[Spring]동적 프록시

Java가 기본으로 제공하는.JDK동적 프록시 기술이나 CGLIB같은 프록시 생성 오픈소스 기술을 활용하면 프록시 객체를 동적으로 만들어낼 수 있다.프록시를 적용할 코드를 하나만 만들어두고 동적 프록시 기술을 사용해서 프록시 객체를 만들면 된다.jdk동적 프록시는 인터

2021년 11월 25일
·
0개의 댓글
·
post-thumbnail

[JPA] JPA Auditing

PA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재 (생성일자, 수정일자, 식별자 같은 필드및 칼럼)JPA에서는 Audit이라는 기능을 제공하고 있습니다. Audit은 감시하다, 감사하다라는 뜻으로 S

2021년 10월 6일
·
0개의 댓글
·

[Spring] AOP 사용

관점 기향 프로그래밍(Aspect Object Programming)관점지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 몾듈화하겠다는 것핵심적인 관점은 적용하고자하는 핵심 비지니스 로직부가적인 관점은 핵심 로직을 실

2021년 9월 27일
·
0개의 댓글
·

[Spring] 의존관계 주입

생정자 주입수정자 주입(setter 주입)필드 주입일발 메서드 주입생성자를 통해서 의존 관계를 주입 받는 방법특징생성자 호출시점에 딱 한번만 호출되는 것을 보장불변, 필수 의존관계에 사용생성자가 한개만 있으면 @Autowired를생략해도 자동 주입된다setter 라 불

2021년 9월 13일
·
0개의 댓글
·

[Spring] ComponentScan

설정 정보 없이 자동으로 스프링 빈을 등록이전까지 스프링 빈을 등록할 때 @Bean 이나 XML의 을 통해서 설정정보에 직접 등록할 빈을 나열했다코드가 길어지면 하나씩 등록하기도 번거롭고 실수가 많아진다.Spring에서 설정정보가 없어도 스프링 빈을 등록하는 @Com

2021년 9월 11일
·
0개의 댓글
·
post-thumbnail

[Spring Data JPA] 더티 체킹(Dirty Checking)

Dirty란 상태의 변화가 생긴 정도Dirty Checking은 상태 변경 검사JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스에 자동으로 반영JPA에서는 엔티티를 조회하면 해당 엔티티의 조회 상태를 스냅샷을 만든다.트랜잭션이 끝나는 시

2021년 8월 20일
·
0개의 댓글
·

Spring Data Redis 로 Redis 연동

프로젝트 설정 Gradle application.yml `g

2021년 8월 2일
·
0개의 댓글
·
post-thumbnail

properties와 yml 분리

DB 나 서버 드의 이유로 개발과 운영 프로퍼티가 구분할 피룡가 있을 때application.yml 과 application-dev.yml 파일을 생성application.properties 와 'application-dev.properties\` 파일을 생성Run/D

2021년 8월 1일
·
0개의 댓글
·

[JPA] 양방향 매핑 mappedBy

단방향 매핑이여도 테이블은 연관관계를 갖는다.양방향은 조회 로직이 추가된것.양방향 매핑을 할 때 JPA에 주인이 아닌Entity에 mappedBy를 사용아래 코드에 BOOK Entitiy에 @OneToMany(mappedBy = "book")를 달아주었다.연관관계의 주

2021년 7월 29일
·
0개의 댓글
·

[QueryDSL] 다이나믹 쿼리(Where절 파라미터)

where 파라미터 적용전where 파라미터 적용 \* 조건을 재사용이 가능하다는 장점이 있다.

2021년 7월 22일
·
0개의 댓글
·

Connection Pool

웹 컨테이너(WAS)가 실행되면서 DB와 미리 연결해놓은 객체들을 pool에 저장해두었다가 클라이언트 요청이 오면 connection을 빌려주고 처리가 끝나면 다시 connecrion을 반납받아 pool에 저장하는 방식DB를 접속할때가 가장 부하가 많이 걸린다.그래서

2021년 7월 21일
·
0개의 댓글
·

[JPA] Transactional

@Transactional 트랜잭션, 영속성 컨택스트 transaction begin, commit을자동 수행해준다 .JPA의 객체 변경감지는 transaction 이 commit될떄 , 작동된다 Spring은 @transactional 어노테이션을 선언한 메

2021년 7월 20일
·
0개의 댓글
·

[JPA] Querydsl 페이징 처리

스프링 데이터의 Page, Pageable을 활용하여 조회전체 카운트를 한번에 조회하는 방법과 데이터 내용과 전체 카운트를 별도로 조회 하는 방법을 작성RepositoryRepositoryCustomRepositoryImpl조회 쿼리와 카운트 커리 한번에 조회하는 방법

2021년 7월 14일
·
2개의 댓글
·

[JPA] Querydsl 시작

gradle 추가Spring Data Jpa Custom Repository 적용 Spring Data Jpa에서는 Custom Repository를 JpaRepository 상속 클래스에서 사용할 수 있도록 기능을 지원.Spring Data 공식 문서(https&#x

2021년 6월 29일
·
0개의 댓글
·