인기 글
-
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
-
[Vue] vue-router에서 Hash Mode Vs History Mode 차이점은 무엇인가?
들어가기 최근 Vue 를 사용하게 되면서 Hash Mode와 History Mode에 대해서 의문점을 가지게 되었습니다. Vue.js에 router 관련된 설정을 추가하면서 다음과 같은 설정에 직면하게 되었습니다. import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ mode: 'history', base: process.env.BASE_URL, routes: [ { .... } ] }) 여기서 history와 hash를 String으로 작성하여 설정할 수 있습니다 그렇다면 이 둘의 차이점은 무엇일까? 대체 무슨 차이이지? Hash mode Hash mode는 모든 URL을 HASH(..
2020.12.08
-
Template Pattern(템플릿 패턴) VS Strategy Pattern(전략 패턴)
Photo by Mike Meyers on Unsplash 들어가기 대부분의 디자인 패턴 책에서는 이 두가지를 비교해서 설명합니다. 왜 일까요? 이 두가지 패턴은 데이터를 은닉화 시켜 구현될 수 있도록 도와주는 패턴입니다. 각각의 쓰이는 상황은 다르지만, 결론부터 이야기하면 잘 짜여진 코드는 템플릿 패턴에서 전략 패턴으로 손쉽게 전환할 수 있고, 반대로 전략패턴에서 템플릿 패턴으로 손쉽게 변경가능하다고 합니다. 그럼 왜 그런지 한번 살펴봅시다. 템플릿 패턴이란 무엇인가? 하위 클래스에서 구체적으로 처리하는 디자인 패턴 개인적으로 패턴을 어렵게 생각하면 끝없이 어렵고 쉽게 생각하면 너무 쉽게 생각하는 경향이 있다고 생각합니다. 그런 예시로 템플릿 패턴도 포함됩니다. 부주제로 '하위 클래스에서 구체적으로 처..
2020.09.27