일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Design Pattern
- 활성프로브
- Multi Datasource
- Java
- exit code
- 디자인 패턴
- 다중 트랜잭션
- SpringBoot 2.0
- K8s
- SpringBoot
- OneToMany
- openjdk
- JPA
- JDK
- ManyToOne
- mybatis
- chroot exit code
- Multi Transaction
- MaxRAMPercentage
- dirty check
- OracleJDK
- OneToOne
- 종료코드
- Entity
- 영속화
- 다중 데이타소스
- 변경 감지
- 트랜잭션 쓰기 지연
- docker
- ManyToMany
- Today
- Total
목록전체 글 (32)
조금 평범한 개발 이야기

개요 파사드 (FACADE) 패턴은 여러 인터페이스를 가지는 객체들에서 간단하고 구체적인 형태의 인터페이스를 제공하고자 할때 사용 됩니다. 예를 들어 A 클래스와 B 클래스에 있는 인터페이스를 조합해 Facade 클래스에서 새로운 인터페이스 제공 하는 형태로 구성 할때 사용 됩니다. Facade 클래스에서는 흐름을 제어하기 위한 비지니스 로직이 일정 부분 포함 될 수 있습니다. 설명 파사드 패턴은 일정 부분 프록시 (PROXY) 패턴과 유사해 보일 수도 있는데요. 프록시 패턴은 대상 클래스와 동일한 인터페이스를 제공하고 요청 받으면 바로 대상 클래스에게 전달 하는 형태로 구성 됩니다. 하지만 파사드 패턴은 대상 클래스의 인터페이스를 조합하여 일련의 흐름을 제공하는 비지니스 로직을 포함 하는 새로운 인터페..

개요 스트래티지 (STRATEGY) 패턴은 앞서 이야기 드린 템플릿 메소드 (TEMPLETE METHOD) 패턴과 비지니스 로직과 같은 공통으로 반복해서 사용 되는 부분을 세부 구현으로 부터 분리하는 패턴이라는 점에서 동일 합니다. 하지만 템플릿 메소드 패턴은 상속을 사용하고 스트래티지 패턴은 인터페이스를 구현 한다는 점이 차이점으로 볼 수 있습니다. 설명 앞서 템플릿 메소드 패턴에서 설명 드린 클래스 다이어그램과 스트래티지 패턴의 클래스 다이어그램을 비교해 차이점에 대해서 살펴 보겠습니다. 먼저 세부 구현에 대한 부분이 GrinderHandle 인터페이스로 분리되어 있는 것을 볼 수 있습니다. 그리고 실제 비지니스 로직을 가지고 있는 부분이 Grinder 클래스로 도출되어 있으며 Grinder 의 생성..

개요 템플릿 메소드 (TEMPLETE METHOD) 패턴은 비지니스 로직이나 알고리즘과 같이 공통으로 반복해서 사용 되는 부분을 세부 구현으로 부터 분리하는 패턴 입니다. 이것은 스트래티지 (STRATEGY) 패턴과 접근 방식과 내용이 유사하지만 차이점은 템플릿 메소드 패턴의 경우 상속을 이용한다는 점과 스트래티지 패턴은 인터페이스를 이용한다는 점에서 차이가 있습니다. 설명 템플릿 메소드 패턴은 비지니스 로직에 해당하는 공통 부분을 미리 구현해 놓고 세부 구현 부분을 비워 두는 형태로 구성 됩니다. 템플릿 메소드가 정의된 클래스를 상속하는 하위 클래스에서 구현을 강제하기 위해 주로 추상 클래스 형태가 사용 되지만 빈 함수로 구성된 일반 클래스로 구성이 되어도 상관 없습니다. 하지만 이와 같이 템플릿 메소..

개요 커맨드(COMMAND) 패턴은 디자인 패턴 중 가장 단순한 형태의 디자인 패턴 입니다. 커맨드 패턴은 대체로 인터페이스에 한개의 함수를 가지게 됩니다. 하지만 꼭 한개의 함수를 가지는 것은 아니며 경우에 따라 여러개의 함수로 구성 되기도 합니다. 설명 커맨드 패턴을 이용하면 어떤 것이 좋은지에 대해 의아할 수도 있겠지만 이를 활용하면 객체가 동작되기 위해 외부의 변수에 의존되는 현상을 막고 함수 자체를 캡슐화 하여 행위 자체에 집중할 수 있게 만들어 줍니다. 즉 클래스 자체를 커맨드의 함수로 추상화하여 바라 보게 해줄 수 있다는 것 이죠. 이것은 호출하는 대상이 커맨드의 상세 동작에 대해 알지 못하더라도 단지 이벤트에 의해 해당 커맨드를 실행 시키기만 하면 된다는 것을 의미 합니다. 그리고 호출 당..
쿠버네티스 준비 대시보드 설치 계정과 권한 계정 생성 계정 토큰 조회 대시보드 로그인 대시보드 삭제 쿠버네티스 (kubernetes) 쿠버네티스는 컨테이너화 되어 있는 서비스를 배포하고 손쉽게 스케일링 및 관리를 할 수 있는 오케스트레이션 도구 입니다. 쿠버네티스는 모든 명령은 커멘드(kubectl) 기반으로 이루어지지만 쿠버네티스에 구성된 서비스를 한눈에 확인하기 쉽게 하기 위해 gui 도구인 대시보드 (dashboard)를 별도로 설치해야 합니다. 준비 테스트 환경은 mac에서 작업이 진행되기 때문에 먼저 대시보드를 사용하기 전에 docker desktop for mac 이 설치되어 있어야 합니다. docker desktop 다운로드 https://hub.docker.com/editions/commu..
준비 CustomText CustomTextType CustomImage 이미지 변환 소스코드 준비 문득 블로그를 하다가 보니 글 자주 작성하진 않아 리스트가 휑해 보이는 것도 있겠지만 필연적으로 기술 블로그이다 보니 이미지가 없어 왠지 글이 허전해 보인다는 생각이 들었습니다. 그래서 머라도 채워 넣을까 하는 생각에 TEXT를 간단하게 IMAGE로 변환해 주는 사이트를 찾다가 그냥 귀찮아서 로그를 만들기 위한 용도로 코드를 작성해 봤습니다. 순전히 개인적으로 사용할 목적으로 만들었기 때문에 실제 사용할 때 부족한 부분이 발생할 수 있다는 점 염두해 주시길 바랍니다. 먼저 프로젝트에서 lombok 라이브러리를 사용할 예정이니 다운로드 후 프로젝트 환경설정에 추가해 줘야 합니다. lombok download..
개요 Object와 MSA 메시지 주도 MSA 메시지 브로커 RabbitMQ vs Apache Kafka 개요 이번에는 Spring Cloud Stream의 기능과 사용법에 대해서 설명하도록 하겠습니다. Spring Cloud Stream 은 RabbitMQ, Apache Kafka 등과 같은 메시지 브로커와 연결할 수 있는 공통 기능을 제공해 줍니다. 이것은 각기 다른 메시지 브로커들을 하나의 인터페이스로 사용할 수 있게끔 추상화시킨 라이브러리라고 할 수 있습니다. 이 때문에 어떤 종류의 메시지 브로커를 사용하는지와 상관없이 항상 동일한 소스 코드를 이용해 동일한 메시지 전송을 구현할 수 있게 해 줍니다. Spring Cloud Stream 은 메시지 브로커의 종류와 상관없이 동일한 인터페이스로 메시지..

모든일이 끝난 다음날 차가운 맥심 아이스 커피를 마시며 일기를 쓰고 있다. 문득 올해는 여름 해수욕을 한번도 하지 못했다는 사실이 떠올라 언젠가 가기로 했던 강릉 바닷가를 가기로 했다. 때마침 이번주가 강릉 바닷가 마지막 개장이라고 하니 더는 미룰 수 없었다. 하지만 당연하게도 주말 연휴이기 때문에 해가 중천이 되어서 눈을 떴고 그냥 가지말까 라는 생각이 강하게 들었지만 자신과의 싸움을 이겨내고 길을 나서기로 했다. 출발이 늦은 관계로 점심은 간단히 빵과 우유로 해결하고 저녁은 물회를 먹어야 하나 막국수를 먹어야 하나 둘다 먹기에는 시간이 부족한데 라며 괜히 설랜 기분으로 길을 나섰다. 하지만 역시 연휴 주말이였다. 차가 정말 막혔는데 다들 어디로 가는 것인가 ? 서울에 사람이 이렇게 많았나 ? 혼자 속..