본문 바로가기
반응형

분류 전체보기145

[Lombok] Constructor 정리 Lombok은 도메인 개발시 불필요한 코드의 사용을 줄여주고 강력한 기능을 제공하여 줍니다. 그만큼 잘 알고 써야 하는 것이 맞고 개인적으로는 잘 사용하지 못할것 같으면 사용을 하지 말고 직접 개발하는 것이 맞다고 생각합니다. 그래서 잘 사용하기 위해서 하나씩 정리해보려고 합니다. 자바로 개발을 진행하면서 생성자를 통하여 많은 내용을 진행하게 됩니다. Lombok 에서는 생성자를 생성하여 주는 기능 또한 제공하여 주는데 다음과 같은 어노테이션을 제공합니다. @NoArgsConstructor : 기본 생성자를 만드는데 사용합니다. @AllArgsConstructor : 모든 필드의 생성자를 만드는데 사용합니다. @RequiredArgsConstructor : 필수 생성자를 만드는데 사용합니다. 각각의 기본.. 2022. 2. 1.
Spring Boot Cache 적용 회사에서 Spring Boot Cache를 활용하여 적용할 기회가 생겨서 진행한 내용을 공유드립니다. 모든 소스는 Github에서 확인이 가능합니다.(링크) 캐시(cache)란 프로그램이 수행될 때 나타나는 데이터 지역성을 이용해 메모리나 디스크에서 사용되었던 내용을 빠르게 접근할 수 있는 곳에 보관하고 관리함으로써 두 번째 접근 부터는 보다 빠르게 참조하도록 하는 것입니다. 여기서 데이터 지역성은 어떠한 뜻을 가지고 있을까요? 그 뜻을 먼저 확인해보면, 다음과 같습니다. 데이터 지역성이란? 데이터 접근이 시간적 혹은 공간적으로 가깝게 일어나는 것을 의미합니다. 한 번 참조된 변수는 잠시 후에 또 참조될 가능성이 높습니다. 어떤 데이터에 접근할 때 그 데이터 근처에 있는 다른 데이터도 참조될 가능성이 높.. 2022. 1. 30.
[mac] H2 Database 설치 H2 Database는 자바로 작성된 관계형 데이터베이스 입니다. 주로 자바 애플리케이션에 임베드하거나 클라이언트서버 모드에서 구동하여서 사용합니다. 보통은 로컬 테스트 용으로 사용을 주로 하였는데, 최근에 로컬서버에 올려놓고 테스트를 해보려고 방법을 정리하게 되었습니다. 참조 H2 공식 홈페이지 H2 Github 다운로드 H2를 다운로드 하기 위해서는 다음과 같이 진행하시면 됩니다. 공식 홈페이지 접속 각 OS 플랫폼에 맞게 다운로드 진행 설치 또는 압축 해제 실행 실행 H2 실행은 설치된 폴더로 이동하여 해당 shell 파일을 실행하면 됩니다. H2를 실행하기 위해서는 java가 설치되어 있어야 합니다. $ ./h2.sh 만약 권한이 필요하다는 메시지가 나오면 다음과 같이 추가하여 줍니다. $ chm.. 2022. 1. 24.
[JPA] JPA와 Mybatis 비교 개발자로서 일을 시작하면서 Mybatis의 사용은 거의 80 ~ 90%였습니다. 왜냐하면 어느 프로젝트에서든지 쉽게 접할 수 있었습니다. 그러다보니 어느 프로젝트를 진행하든 Mybatis라는 프레임워크를 만났기 때문에 어렵지 않게 진행할 수 있어서 사실 반가웠습니다. 그래서 JPA는 미지의 영역이었습니다. 그리고 시간이 흘러서 프로젝트를 새롭게 진행하면서 JPA를 접하게 되었습니다. 그때까지만 해도 JPA를 이렇게 알고 있었습니다. Database의 제약없이 변경되도 사용할 수 있다는 것 그러다 이러한 생각이 들었습니다. 단순히 위 기능때문에 그 많은 서비스 기업에서 JPA를 사용하는 것일까? 그리고 나는 개발자로서 Java의 기능을 맞게 사용하고 있는것인가? 라는 생각이 들었고 좋은 기회로 우아한 테크.. 2022. 1. 23.
HTTP Method 정리 개념 HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜입니다. 여기서 프로토콜은 약속, 규약, 협약 을 나타냅니다. 즉, 클라이언트와 서버 사이에 이루어지는 요청과 응답의 규칙을 정의한 것입니다. 이러한 약속된 내용을 통해 HTTP Method는 주어진 리소스에 수행하길 원하는 동작을 나타냅니다. 특징 안전한 메소드(Safe Methods) 안전한 메소드는 서버의 상태를 바꾸지 않는 것입니다. 읽기 작업만 수행하는 메소드는 GET, HEAD, OPTION 가 있습니다. 안전한 메소드는 멱등성 을 갖지만, 멱등성을 가고 있다고 모두 안전한 메소드는 아닙니다. 멱등성(Idempotent Methods) 멱등성은 수학이나 전산학에서 나오는 용어로, 연산의 한 성질을 나타냅니다. 연산을 여러 번.. 2022. 1. 23.
[객체지향] OCP 적용 정리 최근 진행하고 있는 미션에서 코드 리뷰를 통해서 OCP의 대해서 피드백을 받은적이 있습니다. OCP를 적용하면서 진행하였던 내용을 정리하려고 합니다. 상황 현재 외부 프로젝트 준비를 위해서 플랫폼 개발을 진행하고 있습니다. 그 중 API가 하나 있습니다. 이 API는 Elasticsearch를 조회해서 가져온 데이터를 전달하고 있습니다. 사실, 이 API는 기존에는 Database에서 조회한 내용을 전달하였습니다. 하지만 Elasticsearch를 연동하면서 변경되었습니다. 현재 개발 시에는 Elasticsearch를 사용하고 있지만, 외부 프로젝트 상황에 따라서 다른 라이브러리도 변경될 수 있습니다. 문제점 외부 라이브러리를 사용하는 부분에서 다른 라이브러리를 활용하여 다른 방식으로 변경될 수 있습니다.. 2022. 1. 23.
반응형