본문 바로가기
반응형

프로그래밍이야기43

[JPA] Converter 활용하기 Converter 활용을 통한 내용을 일전에 작성한적이 있었습니다. - [리팩토링] 코드 JPA Converter 두번째 내용으로 @Enumerated 를 활용할 수 없을때 @Converter 를 활용하는 방법에 대해서 공유드리려고 합니다. Jpa에서 Enum 활용 하나의 필드가 요소, 멤버라 불리는 명명된 값의 집합을 이루는 상수 역할을 하는 식별자가 필요할 때 enum과 @Enumerated 를 활용하였습니다. 예를 들어, 아이템을 저장하는 테이블에는 아이템의 상태를 관리하는 필드가 있습니다. Status 라는 필드는 활성화(ENABLE)와 비활성화(DISABLE) 상태를 갖고 있습니다. public enum Status { ENABLE, DISABLE } 그래서 해당 필드는 @Enum.. 2022. 8. 21.
[Spring&JPA] 이력 구현해보기 데이터베이스를 사용하면서 이력 관리를 위해서 이력 테이블을 사용하는 일들이 많이 있습니다. 먼저 이력 관리에 대해서 알아보고 이력의 종류는 어떤것이 있는지도 알아보겠습니다. 그리고 마지막으로 이력 관리를 위한 구현 방법에 대해서 알아보겠습니다. 이력 관리 데이터는 현재의 프로세스만 처리하고 버리는 것이 아니라 각 상태의 따른 데이터를 처리 및 기록합니다. 예를 들어, 주문 상태의 따른 이력 정보가 있다고 가정하였을 때, 이 주문 정보는 임시저장, 주문 등록, 주문 접수, 진행 중, 주문 완료, 주문 취소 등 각각의 상태에 따라 이력이 관리 됩니다. 이렇게 각 상태의 대한 이력을 기록하고 관리하는 것을 이력 관리라고 합니다. 이력 관리 대상 선정 이력 관리를 한다고 하면 하지 않았을 때와 비교하였을 때 많.. 2022. 8. 21.
[Spring] 비동기(@Async) API 처리 예시 비동기 처리를 위한 API 설계를 위해서 개념과 관련된 내용에 정리를 진행한 후 Spring boot를 이용하여서 비동기 처리를 위한 방식에 대해서 예제를 진행하면서 정리해보도록 하겠습니다. 먼저, 동기와 비동기에 대한 개념부터 정리해보도록 하겠습니다. 동기와 비동기 비동기는 데이터의 요청과 결과과 동시에 일어나지 않는다는 것을 의미합니다. 동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것을 이야기합니다. 개념적인 부분도 의미를 파악해볼순 있겠지만 예시를 들어서 좀 더 설명을 해보도록 하겠습니다. 비동기 커피숍에서 커피를 마시기 위해서 커피숍에 들어갔습니다. 커피를 주문받는 직원과 커피를 만드는 바리스타 직원이 있습니다. 커피를 주문받는 직원에게 커피를 주문하니 진동벨을 주었고 주문받은 커피.. 2022. 7. 23.
[Java] List와 ArrayList List와 ArrayList의 비교를 통해서 인터페이스와 구현체에 대해서 알아보도록 하겠습니다. 또한 이러한 구조의 문제점은 무엇이고 장점은 어떤 부분이 있는지도 확인해보도록 하겠습니다. 자바에서는 전체 사용자수, 오늘 등록한 주문수 등 복수의 형태의 데이터를 저장하여 활용하기 위해서는 List 를 사용합니다. 아래는 샘플 코드입니다. List lists = new ArrayList(); 그렇다면, 왜 이렇게 사용할까? 그 내용을 알아보기 위해 정리합니다. List List 는 선형 자료구조로 순서를 가진 항목들이 모여 있습니다. 먼저 List 는 Collection 의 하위 인터페이스입니다. public interface List extends Collection 2022. 7. 9.
[JPA] 엔티티 식별자 생성 방식 테이블을 설계하면서 기본키는 어떠한 논리적 근거를 가지고 설계를 해야할까요? 먼저 기본키의 제약 조건의 특징부터 알아본다면 다음과 같습니다. null일 수 없습니다. 유일해야 합니다. 변하면 안됩니다. 그래서, 이러한 값을 현실세계에서의 값을 가져와서 기본키로 설정하곤 합니다. 주민등록번호 사원번호 주문번호 등등 다음 보도자료는 주민등록번호를 금지하는 제도입니다. - 주민등록번호, 이제는 함부로 수집하지 못한다! 이 제도 도입을 통해서 기존에 주민등록번호를 기본키로 설정한 시스템들은 힘들게 수정을 하였을 것입니다. 기본키는 수많은 외래키와 인덱스와 연관관계가 있기 때문에 수정을 하는 것에 있어서 많은 문제를 불러올 수 있습니다. 그리고 지금 현실세계에서 주민등록번호 또는 사원번호가 기본키를 만족할지 몰라.. 2022. 7. 9.
[Springboot] 어플리케이션 환경설정 profile 별 관리방법 SpringBoot를 사용하면서 application.yml 을 많이 사용합니다. 실제 프로젝트 환경에서는 로컬, 개발, 품질, 운영 환경으로 관리하기 때문에 서버별로 습관적으로 환경설정 파일을 분리하여서해서 profile 수만큼 application.yml 을 생성해서 사용하였습니다. 물론, 이렇게 사용하면서 지금까지 문제되는 사항은 없었습니다. 하지만 공통적으로 설정된 정보가 변경되었을시에 해당 파일만큼 수정을 해야한다는 것이 불편하게 느껴졌습니다. 만약 공통설정 정보를 따로 관리한다면 어떻게 될까요? profile 의 종속적인 설정 정보를 제외한 공통 환경 설정 정보를 따로 관리하여서 만약 정보가 변경된다면 공통 설정 정보만 변경하여도 모든 profile의 환경 설정 정보가 반영이 됩니다. 외부 설.. 2022. 6. 23.
반응형