반응형 CS19 Hexagonal Architecture 1. Hex 아키텍처 1.1 정의 1.1.1 정의 인터페이스나 기반 요소(infrastructure/presenation)의 변경에 영향을 받지 않는 핵심 코드를 만들고, 이를 견고하게 관리하는 것이 목표로 하는 아키텍처를 의미 합니다. 견고해야하는 핵심 로직이 들어있는 영역을 도메인 영역(Domain)이라고 합니다 interface 기반의 요소는 세부 사항이라고 합니다 데이터 flow는 presentation(세부사항) -> domain(use case/domain) -> infra(세부사항) 이지만, 의존성은 세부사항 -> domain(use case/domain) 로 구성 됩니다 1.1.2 용어 Hex 아키텍처는 Application과 Domain 영역을 분리해서 보여줍니다 domain엔 주로 업무.. 2022. 10. 26. Kotlin DSL Kotin DSL 1. DSL과 Kotlin DSL 정의 정의 1. DSL 영역 특화 언어로서 특정 영역에 대해서만 필요한 기능을 가지고 있는 언어 입니다 모든 문제를 범용적으로 풀어낼 수 있는 범용프로그래밍 언어와 특정 과업 또는 영역에 초점을 맞추고, 그 영역에 필요하지 않은 기능을 없앤 영역 특화 언어로 구분되었습니다 범용 프로그래밍 언어 : C언어. Java ...etc 영역 특화 언어: SQL, HTML ...etc 필요성 API는 사물간의 접전 간의 상호작용하게 해주는 어떤 것을 모두 표현한 말입니다. 그리고 이 interface는 유지 보수가 코드의 품질을 결정 짓습니다 코드의 가독성과 유지 보수성을 증대 시키는 방법은, 불필요한 구문이 없이 간결하고, 이름과 개념이 명확한 interface.. 2022. 10. 7. kotest 로 Kotlin Test Code 작성하기 Kotest Junit의 단점 한눈에 given when then 구분 어려움 중복 코드 많음 -> 이부분은 하위에 중복 코드 제거 부분에서 언급하겠습니다. 테스트 스타일이 한정적 -> 단위 테스트 특화 Junit AssertJ, Mockito를 사용하면 Mocking이나 Assertions 과정에서 kotlin DSL 활용 불가 kotest 장점 nested test code의 가독성을 가져올 수 있음 DSL(Given( When( Then() ) )) 과같은 구성으로 좀더 명확하게 구분을 지을 수 있음 -> 가독성 증가 Kotlin는 멀티 플랫폼이므로 다양한 플랫폼의 스타일이 가능 당양한 test layout 제공 ex) 스칼라, 루비 ...etc kotest 단점 러닝 커브가 존재 의존성 추가 방법.. 2022. 9. 30. Replica 싱크 불일치 이슈 Replica 복제 지연 문제 복제 지연 발생 이슈 원인: Amazon RDS for MySQL은 비동기 복제를 사용하기 때문에 일부 DB 변경 사항이 반영되지 않는 경우가 있습니다 seconds_behind_master: master DB와 slave DB사이에 현재 타임스탬프 간의 차이가 표시하는 것입니다 MySQL 복제를 위한 Thread master slave cf)SHOW PROCESSLIST 명령어를 통해서 내부 process list를 볼 수 있습니다 Binlog Dump Thread replica에 binary log 정보를 전송하는 역할을 담당합니다 현재 master process list 사진에서 ID 7에 해당합니다 Replica IO Thread start slave query가 s.. 2022. 4. 7. 이전 1 2 3 4 5 다음 반응형