본문 바로가기
반응형

프로그래밍이야기43

[Lombok] Constructor 정리 Lombok은 도메인 개발시 불필요한 코드의 사용을 줄여주고 강력한 기능을 제공하여 줍니다. 그만큼 잘 알고 써야 하는 것이 맞고 개인적으로는 잘 사용하지 못할것 같으면 사용을 하지 말고 직접 개발하는 것이 맞다고 생각합니다. 그래서 잘 사용하기 위해서 하나씩 정리해보려고 합니다. 자바로 개발을 진행하면서 생성자를 통하여 많은 내용을 진행하게 됩니다. Lombok 에서는 생성자를 생성하여 주는 기능 또한 제공하여 주는데 다음과 같은 어노테이션을 제공합니다. @NoArgsConstructor : 기본 생성자를 만드는데 사용합니다. @AllArgsConstructor : 모든 필드의 생성자를 만드는데 사용합니다. @RequiredArgsConstructor : 필수 생성자를 만드는데 사용합니다. 각각의 기본.. 2022. 2. 1.
Spring Boot Cache 적용 회사에서 Spring Boot Cache를 활용하여 적용할 기회가 생겨서 진행한 내용을 공유드립니다. 모든 소스는 Github에서 확인이 가능합니다.(링크) 캐시(cache)란 프로그램이 수행될 때 나타나는 데이터 지역성을 이용해 메모리나 디스크에서 사용되었던 내용을 빠르게 접근할 수 있는 곳에 보관하고 관리함으로써 두 번째 접근 부터는 보다 빠르게 참조하도록 하는 것입니다. 여기서 데이터 지역성은 어떠한 뜻을 가지고 있을까요? 그 뜻을 먼저 확인해보면, 다음과 같습니다. 데이터 지역성이란? 데이터 접근이 시간적 혹은 공간적으로 가깝게 일어나는 것을 의미합니다. 한 번 참조된 변수는 잠시 후에 또 참조될 가능성이 높습니다. 어떤 데이터에 접근할 때 그 데이터 근처에 있는 다른 데이터도 참조될 가능성이 높.. 2022. 1. 30.
[JPA] JPA와 Mybatis 비교 개발자로서 일을 시작하면서 Mybatis의 사용은 거의 80 ~ 90%였습니다. 왜냐하면 어느 프로젝트에서든지 쉽게 접할 수 있었습니다. 그러다보니 어느 프로젝트를 진행하든 Mybatis라는 프레임워크를 만났기 때문에 어렵지 않게 진행할 수 있어서 사실 반가웠습니다. 그래서 JPA는 미지의 영역이었습니다. 그리고 시간이 흘러서 프로젝트를 새롭게 진행하면서 JPA를 접하게 되었습니다. 그때까지만 해도 JPA를 이렇게 알고 있었습니다. Database의 제약없이 변경되도 사용할 수 있다는 것 그러다 이러한 생각이 들었습니다. 단순히 위 기능때문에 그 많은 서비스 기업에서 JPA를 사용하는 것일까? 그리고 나는 개발자로서 Java의 기능을 맞게 사용하고 있는것인가? 라는 생각이 들었고 좋은 기회로 우아한 테크.. 2022. 1. 23.
[객체지향] OCP 적용 정리 최근 진행하고 있는 미션에서 코드 리뷰를 통해서 OCP의 대해서 피드백을 받은적이 있습니다. OCP를 적용하면서 진행하였던 내용을 정리하려고 합니다. 상황 현재 외부 프로젝트 준비를 위해서 플랫폼 개발을 진행하고 있습니다. 그 중 API가 하나 있습니다. 이 API는 Elasticsearch를 조회해서 가져온 데이터를 전달하고 있습니다. 사실, 이 API는 기존에는 Database에서 조회한 내용을 전달하였습니다. 하지만 Elasticsearch를 연동하면서 변경되었습니다. 현재 개발 시에는 Elasticsearch를 사용하고 있지만, 외부 프로젝트 상황에 따라서 다른 라이브러리도 변경될 수 있습니다. 문제점 외부 라이브러리를 사용하는 부분에서 다른 라이브러리를 활용하여 다른 방식으로 변경될 수 있습니다.. 2022. 1. 23.
[Spring Boot] 지원 버전 확인하기 최근 회사에서 스프링 부트 버전이 지원 기간이 지나서 변경을 하게 되었습니다. 무엇보다 OSS(Open Source Sofrware)를 사용하기 때문에 지원 버전에 대해서 신경을 쓰지 못하였습니다. 하지만 생각을 해보니 무료로 사용하는 소프트웨어가 문재가 생겼다면, (사실 이런 문제가 생기면 안되겠지만 말이죠) 해당 버전이 지원가능한지부터 확인하는 작업이 필요합니다. 지원 버전 확인 Spring Boot 지원 버전 확인 상세 내용 확인 Branch : Spring Boot 버전 Initial Release : 출시 일자 End of Support : OSS 지원 마감 일자 End of Commercial Support : 유료 지원 마감 일자 현재 일자를 표시해주기 때문에 지원 일자를 좀 더 정확하게 확.. 2022. 1. 23.
[Item6] 불필요한 객체를 생성하지 마라 Effective Java의 Item6에서는 불필요한 객체를 생성하지 마라고 설명을 하고 있습니다. 그 내용 중 여기서는 오늘 생성 비용이 큰 객체의 재사용의 대해서 한 가지 알아보려고 합니다. 사실, 이 내용은 피드백을 통해서 알게된 내용입니다. 1주차 우테캠 Pro 3기 회고 [1주차] 우테캠 Pro 3기 회고 1주차 미션은 문자열 덧셈기와 로또를 구현하는 미션을 진행하였습니다. 진행해왔던 미션을 회고하면서 놓쳤던 부분들을 정리하려고 합니다. 문자열 덧셈기 기간 미션 진행 기간 : 2021.11.02 ~ 2021 lovethefeel.tistory.com 그렇다면 객체의 생성 비용이 크다면 과연 성능상 얼마나 큰 차이가 있을까 궁금하였습니다. 그래서 다음과 같이 실험을 하였습니다. 개발 환경 Java.. 2022. 1. 5.
반응형