인기 글
-
Hibernate, JPA, Querydsl는 과연 좋은 도구일까?
Photo by Annie Spratt on Unsplash 오늘도 여전히 사이드프로젝트를 진행하며 함께 하는 형님과의 대화에서 또다른 깨달음을 얻었습니다. 들어가기 최근 회사에서 시간이 남아, Querydsl 을 사내서비스에 적용하는 방안을 고려하기 위해서 학습하던 중, 나왔던 이야기입니다. Querydsl, SwaggerCodegen, ProtocalBuffer 등의 도구들은 이전에 가졌던 문제를 제 3의 관점으로 넘겨, 개발자는 비지니스 로직에만 집중 할 수 있게 해준다는 관점에서 좋은 도구라는 이야기를 남겼었습니다. 그러나, 이전에 지인과 식사를 하면서 가볍게 Querydsl과 Jpa 의 단점을 이야기 하면서 나눴던 부분에 대해서 내용을 남겨두면 좋겠다 싶어 이렇게 포스팅하게 되었습니다. 우리가 ..
2020.10.16
-
HTTP 304 Not Modified의 이해 및 예제(with. spring)
1. HTTP 상태 코드 1.1 응답 메시지 & 상태라인 After receiving and interpreting a request message, a server responds with an HTTP response message. 요청 메시지를 받고 해석한 뒤에, 서버는 HTTP 응답 메시지를 보낸다. Example: HTTP/1.1 304 Not Modified Date: Fri, 07 Sep 2012 14:51:43 GMT Server: Apache/2.2.22 (Win32) mod_jk/1.2.37 Connection: Keep-Alive Keep-Alive: timeout=5, max=94 ETag: "d00000001f216-1e7-4c908f1fc4d6e" The first line o..
2020.11.14
-
헥사고날 아키텍처(Hexagonal Architecture) 코드로 이해 해보기
EventsJdbcEntityRecordPublishedEventService 이 부분은 '만들면서 배우는 클린 아키텍쳐' 의 책을 보고 배운점과 느낌점을 설명합니다. 헥사고날 아키텍쳐란 무엇인까요? 헥사고날 아키텍쳐는 레이어드 아키텍처(Layered Architecture)의 단점을 해결하기 위해 나왔습니다. 어떻게 해결했는가? 바로 의존성의 역전법칙입니다. 우리가 흔히 아는 레이어드 아키텍쳐는 위에서 아래로 의존성을 가진 형태를 의미합니다. 여기서 만약 의존성 역전 법칙을 활용하면 아래와 같은 아키텍쳐로 변경되어집니다. 이런 형태를 각 계층마다 적용하다 보니, 핵사고날 아키텍쳐의 형태를 띄게 됩니다. 육각형 안에는 도메인 엔티티와 상호작용하는 유즈케이스가 있고, 모든 의존성을 엔티티를 향해 있습니다...
2022.04.29
-
build.gradle 에서 다양한 방식으로 변수 사용하기.
들어가기 다양한 방법들 build.gradle 에서 변수를 사용하는 방식은 아래와 같습니다. 사실 위 System.xxx 의 경우 gradle에서 제공하기 보다는 Java에서 제공한다는 말이 맞습니다. 그러나 제목과 같이 build.gradle 에서 사용하는 방법이므로, 포함시키겠습니다. task printTask(){ println(System.getenv("X_USER")) println(project.getProperties()["X_USER"]) println(System.getProperty("X_USER")) } > "xxx" ./gradlew printTask "xxx" 여기서 xxx 하는 것에 따라서 변수를 다르게 넣을 수 있습니다. System.getenv("X-USER") // 시스템의..
2020.09.04
-
Mock 객체란 무엇일까? 왜 써야될까?
아래 내용은 위 책에서 말하는 4장 TDD with Mock 에서 내용을 발췌했습니다. TDD를 공부하면서 Mock 이라는 용어는 너무나도 많이 나오고, 실제로 테스트 프레임워크를 사용하면 Mock 객체를 많이 사용되게 된다. 그놈의 Mock! Mock 객체를 사용해서, 테스트를 용이하게 만들수 있고, 아직 만들어지지 않은 개념을 활용해 내가 만들고자 하는 객체를 구체화시킬 수 있는 도구라는 사실은 알았다. 그러나 문제점은 여기에 있었다. 주로 Mockito 프레임워크를 사용하는데, 각 Mock 객체가 어떤 역할을 하는지 이해하기 어려웠다. 더하여, 어떻게 활용해야 하는지도, 이해하기 어려웠다. 이번 장에서는 다시한번 Mock을 써야하는 이유, 그리고 Mock 객체가 어떤 역할을 하는지, 마지막으로 어떻..
2021.03.11