profile
hyunho

Mysql 분산처리(Replication with docker)

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

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

JdbcTemplate batchUpdate()를 활용한 Bulk Insert

use case는 다음과 같습니다. 관리자가 공연을 등록할 때 공연장 좌석 정보 데이터도 함께 등록이 되는 상황입니다.위 코드를 보면 jpa에서 제공해주는 saveAll() 을 활용하여, 좌석 정보를 저장 하는 로직을 작성하였는데 확인 결과가 insert가 생성하려는

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

좌석예매를 통한 동시성 문제 알아보기

공연 좌석 예약 서비스프로젝트를 진행하면서 동시성 문제를 해결 해야했습니다.동시성 문제를 해결하기 위한 여러 방법중 가정 먼저 RDB(mysql)의 LOCK에 대해 정리 하였습니다.좌석 중복 선택 방지 정책 (동시성 제어)공연 등록 시점공연에 예매할 수 있는 좌석들을

2023년 7월 11일
·
0개의 댓글
·
post-thumbnail

Docker환경에 Nginx 로드밸런싱 구축

Nginx 로드밸런싱 구축 사전 준비 사항 도커 nginx container image 가져오기 docker pull nginx application image 준비 도커에 띄울 application 이미지 생성하기 위해 dockerfile을 작성 하였습니다.

2023년 5월 21일
·
0개의 댓글
·

[Querydsl] SQL Function

좌표 간 거리를 계산해 가까운 거리 순으로 데이터를 가져오기 위해 MySQL에 ST_Distance_Sphere()함수를 사용할 것이며. 현재 진행하는 프로젝트에서는 Querydsl을 사용 하기때문에 Querydsl에서 SQL Function사용을 통해 쿼리를 작성해야

2022년 8월 15일
·
1개의 댓글
·

[Docker] Dockerfile

📝정리Docker를 이용해 jar파일을 배포하면서 프로젝트에 환경변수 설정을 하는 부분이 있어 Dockerfile에 환경 변수를 추가하였습니다. 환경 변수 추가를 위해 Dockerfile에 대한 조사를 하면서 학습한 내용을 정리하려고 합니다. Dockerfile은 D

2022년 8월 14일
·
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개의 댓글
·

[Spring] @Value

스프링에서 Properties를 읽는 방법가독성이 좋고 문법이 이해하기 수월Property설정값의 깊이에 따라 들여쓰기를 해서 구조를 훨씬 쉽게 파알할 수 있다.Spring boot starter에 SnakeYAML라이브러리가 기본적으로 내장되어 있어 Spring b

2021년 12월 30일
·
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개의 댓글
·

[Java] ThreadLocal

Spring에서 Bean을 Singleton으로 관리하기때문에 여러 thread가 bean객체에 접근을 하게 되면 동시성 문제가 발생하며, 이 문제점을 해결하기 위해 ThreadLocal을 사용 한다.ThreadLocal은 해당 thread만 접근할 수 있는 저장소를

2021년 11월 17일
·
0개의 댓글
·

[Docker] docker를 이용한 jar파일 배포

jar의 기본 이름은 프로젝트명-0.010-SNAPSHOT이다.이름은 바꾸려면 build.gradle에서 아래처럼 설정을해주면 된다.archivesBaseName : 프로젝트 이름archiveFileName : jar로 변환할 이름스크린샷 2021-10-22 오후 1

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

[AWS] 아마존 리눅스 서버 기본설정

EC2(Amazon Linux 2)설치가능한 jdk확인list java\*jdk-develyum에는 설치가능한 JDK가 1.8까지만 존재하기 때문에 JDK11을 설치하기 위해서는 Amazon이 제공하는 OpenJDK(Amazon Coretto)를 다운받아 설치 할 수

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

[AWS] EC2

Elastic Compute CloudEC2 는 aws에서 제공하는 성능, 용량 등으 ㄹ유동적으로 사용할 수 있는 서버(AWS에서 리눅스 서버 또는 윈도우 서버를 사용한다라고 하면 EC2를 이야기하는것)리전 선택AWS의 서비스가 구동될 지역스크린샷 2021-10-13

2021년 10월 19일
·
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개의 댓글
·