개요 Visitor(방문자)패턴은 방문자와 방문 공간을 분리하여 방문 공간이 방문자를 맞이할 때, 이후에 대한 행동을 방문자에게 위임하는 패턴이다. 클래스 다이어그램은 아래 이미지와 같다. 출처: https://brownbears.tistory.com/575 예제 아래 예제는 문서 변환 시스템에 적용한 예제이다. DocumentElement 인...
AWS TGC 내용 정리
2주차 세션: AWS 네트워크의 이해 S3 는 VPC에 종속적이지 않는다. RFC1918 (private IP 표준)에 따르면 사설망 내부 IP대역을 할당시 특정 대역 IP를 미리 사용하기로 약속한다. IP의 앞 구역을 몇자리를 고정할건지에 따라 사용할 IP대역이 결정되며 크게 3가지로 나뉘어진다. I...
MySQL VARCHAR vs TEXT
글자수 제한이 큰 데이터를 저장해야하는 요구사항에 대해 데이터 모델링 작업을 진행하게 되었다. 그러면서 mysql 의 varchar 타입과 text 타입의 차이점에 대한 차이점에 대해 정리하게 되었다. 먼저 결론은 다음과 같다. 물론 DBMS 서버스펙이나 데이터 모델 그리고 유입되는 트래픽에 따라서 미치는 영향도가 다를수 있다는점을 감안해야 한다....
swagger 사용시 패키지가 다른 동일 클래스를 구별하지 못하는 이슈
자바/스프링부트 기반 애플리케이션에서 응답 모델 구현시 inner 클래스명이 겹치다보면 swagger-ui 에서 클래스를 정확하게 구분하지 못하는 이슈가 생길수 있다. 아래 출처 포스팅 내용처럼 use-fqn 옵션을 활용하면 Schema 가 패키지를 포함하여 관리되므로 위와 같은 이슈를 해결할 수 있다. 자세한 내용은 출처 포스팅에 잘 정리되어 ...
[디자인패턴] 상태 패턴(State Pattern)
아래 출처 포스팅이 정리가 잘 되어 있습니다. 기록용으로 남깁니다😊 출처 https://johngrib.github.io/wiki/pattern/state/
AWS ECS 기반 MSA 환경에서 서버리스 스케줄링 아키텍처 구축기
배경 제품 비즈니스 요구사항중 휴직이 시작/종료된 구성원들에 대해 재직상태를 즉시 갱신시켜줘야 하는 요구사항이 도출되었다.(이전까지는 관리자가 수동으로 재직상태를 업데이트 해주는 방식이었음) AWS ECS 기반 MSA 환경에서 첫 스케줄링이 필요한 요구사항이었고 이를 해결하고자 시작하게 되었다. 클라우드 아키텍처 설계 이전까지 사내 프로젝트들은 모...
AWS 서버리스 아키텍처 기반 2,000여명 고객사 인사데이터 동기화 시스템 구축기
배경 임직원 규모가 1,000명 이상인 기업에선 자사 인사 관리 시스템(HCM)과 외부 서드 파티 솔루션의 임직원 데이터를 이중화 관리해야 하는 번거로움이 존재한다. Open API가 구축되지 않은 상황에서 위 문제를 해결하기 위해 고객사에서 동기화 시스템 구축을 제품 도입 조건으로 제안하게되어 시작하게 되었다. 클라우드 아키텍처 설계 이전까지 사...
[클린아키텍처] 12 ~ 14장
‘클린 아키텍처’ 기술 서적에 대해 학습했던 내용을 정리하기 위한 목적의 TIL 포스팅입니다.🙆♂️ 4부 - 컴포넌트 원칙 SOLID 원칙이 벽과 방에 벽돌을 배치하는 방법을 알려준다면, 컴포넌트 원칙은 빌딩에 방을 배치하는 방법을 설명해준다. 큰 빌딩과 마찬가지로 대규모 소프트웨어 시스템은 작은 컴포넌트들로 만들어진다. 1...
클린아키텍처 내용 정리
‘클린 아키텍처’ 기술 서적에 대해 학습했던 내용을 정리하기 위한 목적의 TIL 포스팅입니다.🙆♂️ 1부 - 소개 1장 - 설계와 아키텍처란? 목표는? 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는데 투입되는 인력을 최소화하는데 있다. 새로운 기능을 출시할 때 마다 비용이 증가한다면 나쁜 설계라 볼수 있다....
[Java] HashSet은 어떠한 이유로 순서를 보장하지 않을까
HashSet 은 중복을 허용하지 않고 순서를 보장하지 않는다는 것은 많은 이들이 알고 있을 것이다. 그러면 어떠한 이유로 인해 순서를 보장하지 않을까? 라고 접근해봤을때 아주 잘 정리된 포스팅이 있어 여기를 참고하면 좋다.(✨정독 강추✨) 짧게 요약하면 다음과 같다. HashSet 은 내부적으로 HashMap 으로 구현되어 있다. Key Ob...