자바니또의 Tech상자
Popular posts
-
[ Spring ] enum의 원하는 상태 값을 DB에 저장하기
[ Spring ] enum의 원하는 상태 값을 DB에 저장하기
2022.03.23JPA를 사용하면서 엔티티의 상태 값 중 enum이 있을 때 enum의 순서(상수 값)나 이름(문자열 값)이 아니라 원하는 데이터를 저장하고 꺼내고 싶을 수 있습니다. JPA 2.1부터는 AttributeConverter를 제공하여 이것이 가능하도록 해줍니다. (JPA 구현체 중 Hibernate 5 기준입니다.) 문제 상황 예시 은행 코드 enum인 BankCode가 있습니다. DB에 저장할 때 BankCode의 코드 값이 DB에 저장되고, 엔티티로 직렬화 할 때도 코드 값을 통해 가능하도록 하고 싶습니다. 엔티티는 다음과 같습니다. @Entity public class BankTransaction { @Id @Column(name = "bank_transaction_id") private Long i.. -
[ Spring ] Request Param을 enum으로 받기
[ Spring ] Request Param을 enum으로 받기
2022.03.23요청 파라미터를 enum으로 변환하여 다루고 싶은 경우가 있습니다. 예를 들어 은행 코드와 같은 경우 004, 009와 같이 각 코드는 어떤 은행인지 알 수 있는 아이덴티티 역할을 합니다. 문자열과 enum의 이름이 같다면 자동으로 컨버팅해주지만 그렇지 않다면 다음과 같은 문제점이 있습니다. 휴먼 에러가 발생하기 쉽습니다. 프로젝트에 중간에 참여한 사람은 익숙하지 않아 알아보기 쉽지 않습니다. 별도의 유효성 체크가 필요합니다. Spring에서는 문자열을 enum으로 변환해주는 컨버터를 직접 만들어 적용시킬 수 있습니다. 문제 상황 예시 요청 파라미터로 은행코드를 받아 거래내역을 조회 하는 상황을 예로 들어보겠습니다. enum을 사용하지 않는다면 다음과 같이 작성할 수 있습니다. @GetMapping("/.. -
[토크ON세미나] Spring Cloud 를 활용한 MSA 기초
[토크ON세미나] Spring Cloud 를 활용한 MSA 기초
2022.03.23MSA(Microservice Architecture)란 단어를 들은 후 궁금해서 검색해 본 적이 있습니다. 글로 개념은 알 것 같았지만 직접 해보지 않았기 때문에 여러 것들을 검색해보다 실습형의 무료 세미나 영상을 보게 되었습니다. 영상 링크 세미나 목표 MSA와 Monolith의 차이점을 안다. Spring Cloud와 Netflix oss를 사용하여 실습해보면서 MSA를 간단하게 만들어본다. Circuit Breaker를 이해하고 Hystrix를 사용해본다. Client side Load Balancing을 이해하고 Ribbon을 사용해본다. Service registry를 이해하고 Eureka를 사용해본다. API Gateway를 이해하고 Zuul을 사용해본다. 후기 영상의 총 길이는 3시간 반정.. -
우아한테크세미나 - 우아한 객체지향 (feat. 조영호님)
우아한테크세미나 - 우아한 객체지향 (feat. 조영호님)
2022.01.19이번 포스팅은 객체지향 설계에 대해 고민하고 있을 때 좋은 참고가 된 세미나 내용에 대한 정리입니다. 유튜브에 1시간 40분 정도 길이의 영상이 있는데, 사실 이 영상을 3번째 보고 이제야 이해가 되어 포스팅을 하게 되었습니다. 개인 프로젝트와 여러 개념에 대해 더 알게 되면서 저도 성장했는지 매번 볼 때마다 이해도가 달랐습니다. 책도 그렇고 영상도 그렇고 사람은 아는 만큼 보인다고 볼 때마다 느끼는 점이 다른게 참 재미있는 것 같습니다. 이번 포스팅은 단순히 제가 중요하다고 생각한 포인트를 정리한 것입니다. 강의의 핵심인 의존성을 이용해 설계를 발전시키는 것은 담기가 힘듭니다. 꼭 영상을 한번 보는 것을 추천드립니다. 목차 세미나 목표 클래스 의존성의 종류 의존성 사이클 협력 설계하기 Aggregate..
Recent posts
-
[ Spring ] enum의 원하는 상태 값을 DB에 저장하기
[ Spring ] enum의 원하는 상태 값을 DB에 저장하기
2022.03.23JPA를 사용하면서 엔티티의 상태 값 중 enum이 있을 때 enum의 순서(상수 값)나 이름(문자열 값)이 아니라 원하는 데이터를 저장하고 꺼내고 싶을 수 있습니다. JPA 2.1부터는 AttributeConverter를 제공하여 이것이 가능하도록 해줍니다. (JPA 구현체 중 Hibernate 5 기준입니다.) 문제 상황 예시 은행 코드 enum인 BankCode가 있습니다. DB에 저장할 때 BankCode의 코드 값이 DB에 저장되고, 엔티티로 직렬화 할 때도 코드 값을 통해 가능하도록 하고 싶습니다. 엔티티는 다음과 같습니다. @Entity public class BankTransaction { @Id @Column(name = "bank_transaction_id") private Long i.. -
[ Spring ] Request Param을 enum으로 받기
[ Spring ] Request Param을 enum으로 받기
2022.03.23요청 파라미터를 enum으로 변환하여 다루고 싶은 경우가 있습니다. 예를 들어 은행 코드와 같은 경우 004, 009와 같이 각 코드는 어떤 은행인지 알 수 있는 아이덴티티 역할을 합니다. 문자열과 enum의 이름이 같다면 자동으로 컨버팅해주지만 그렇지 않다면 다음과 같은 문제점이 있습니다. 휴먼 에러가 발생하기 쉽습니다. 프로젝트에 중간에 참여한 사람은 익숙하지 않아 알아보기 쉽지 않습니다. 별도의 유효성 체크가 필요합니다. Spring에서는 문자열을 enum으로 변환해주는 컨버터를 직접 만들어 적용시킬 수 있습니다. 문제 상황 예시 요청 파라미터로 은행코드를 받아 거래내역을 조회 하는 상황을 예로 들어보겠습니다. enum을 사용하지 않는다면 다음과 같이 작성할 수 있습니다. @GetMapping("/.. -
[토크ON세미나] Spring Cloud 를 활용한 MSA 기초
[토크ON세미나] Spring Cloud 를 활용한 MSA 기초
2022.03.23MSA(Microservice Architecture)란 단어를 들은 후 궁금해서 검색해 본 적이 있습니다. 글로 개념은 알 것 같았지만 직접 해보지 않았기 때문에 여러 것들을 검색해보다 실습형의 무료 세미나 영상을 보게 되었습니다. 영상 링크 세미나 목표 MSA와 Monolith의 차이점을 안다. Spring Cloud와 Netflix oss를 사용하여 실습해보면서 MSA를 간단하게 만들어본다. Circuit Breaker를 이해하고 Hystrix를 사용해본다. Client side Load Balancing을 이해하고 Ribbon을 사용해본다. Service registry를 이해하고 Eureka를 사용해본다. API Gateway를 이해하고 Zuul을 사용해본다. 후기 영상의 총 길이는 3시간 반정.. -
우아한테크세미나 - 우아한 객체지향 (feat. 조영호님)
우아한테크세미나 - 우아한 객체지향 (feat. 조영호님)
2022.01.19이번 포스팅은 객체지향 설계에 대해 고민하고 있을 때 좋은 참고가 된 세미나 내용에 대한 정리입니다. 유튜브에 1시간 40분 정도 길이의 영상이 있는데, 사실 이 영상을 3번째 보고 이제야 이해가 되어 포스팅을 하게 되었습니다. 개인 프로젝트와 여러 개념에 대해 더 알게 되면서 저도 성장했는지 매번 볼 때마다 이해도가 달랐습니다. 책도 그렇고 영상도 그렇고 사람은 아는 만큼 보인다고 볼 때마다 느끼는 점이 다른게 참 재미있는 것 같습니다. 이번 포스팅은 단순히 제가 중요하다고 생각한 포인트를 정리한 것입니다. 강의의 핵심인 의존성을 이용해 설계를 발전시키는 것은 담기가 힘듭니다. 꼭 영상을 한번 보는 것을 추천드립니다. 목차 세미나 목표 클래스 의존성의 종류 의존성 사이클 협력 설계하기 Aggregate.. -
[DB] Query Cache ?
[DB] Query Cache ?
2022.01.16목차 Query Cache란? MySQL Query Cache의 문제점 대안 Query Cache란? Query Cache란 SQL 실행 결과를 메모리에 저장해 둔 것을 의미합니다. SQL을 수행하면 [Query Parsing] -> [Optimization] -> [Execution] 과정을 거쳐 디스크에서 데이터를 읽습니다. 하지만 Query Cache를 사용하면 이러한 과정을 생략하고 같은 SQL이라면 메모리에서 바로 결과 값을 찾아서 사용할 수 있습니다. 몇 개의 레코드를 찾기 위해 몇 백만개의 레코드를 읽는 무거운 쿼리가 자주 사용된다면 Query Cache로 큰 이점을 얻을 수 있습니다. MySQL Query Cache의 문제점 MySQL은 자체적으로 Query Cache 기술을 지원했지만 5.. -
[DB] Index ( Clustered & Non-Clustered )
[DB] Index ( Clustered & Non-Clustered )
2022.01.16쿼리를 잘 짠다는 것의 척도가 되는 1순위는 성능일 것입니다. 이번 포스팅에서는 대다수의 성능의 원인이 되는 인덱스에 대해 공부한 내용을 적어보려합니다. 혹시나 잘못된 정보가 있다면 댓글로 알려 주시길 바랍니다. 목차 Index란? Index 저장 구조 인덱스 특징 Clustered Index & Non-Clustered Index Index 사용시 주의사항 Index란? 인덱스는 실생활에서 쉽게 볼 수 있습니다. 예를 하나 들면, 책의 찾아보기와 같습니다. 책의 찾아보기는 원하는 정보를 빠르게 접근할 수 있도록 도우면서 동시에 찾아보기 목록 또한 빠르게 찾을 수 있도록 사전순으로 정렬되어 있습니다. DB의 인덱스도 다르지 않습니다. Index는 원하는 데이터를 빠르게 조회하기 위해 정렬된 찾아보기와 같..