본문 바로가기

프로그래밍/Java14

[Java]헥사고날 아키텍처 이번 프로젝트에서 헥사고날 아키텍처를 적용한다고 해서 블로그에 정리했습니다.1. 헥사고날 아키텍처 개요 헥사고날 아키텍처(또는 포트와 어댑터 아키텍처)는 소프트웨어 시스템을 외부 시스템과 격리하여 비즈니스 로직을 중심으로 개발하도록 돕는 아키텍처 패턴입니다.이 아키텍처는 외부 의존성을 관리하고 시스템을 더 쉽게 확장하고 테스트할 수 있도록 합니다.핵심 아이디어는 애플리케이션의 내부와 외부 시스템 간의 상호작용을 포트(Ports) 와 어댑터(Adapters) 라는 추상화로 나누어 설계하는 것입니다. 외부 시스템은 어댑터를 통해 시스템과 상호작용하며, 포트는 애플리케이션 내부의 핵심 도메인 로직과 외부 시스템 간의 인터페이스 역할을 합니다.2. 헥사고날 아키텍처의 구성 요소핵심 도메인(Core Domain).. 2025. 2. 5.
자바 synchronized synchronized? 자바에서 멀티쓰레드를 사용할 경우 무조건 한번쯤은 보게된다. 공유될 가능성이 존재하는 자원에 대해 동기화를 제어할 수 있게 해주는 키워드 입니다. 스레드가 해당 자원에 접근중이고 다른 스레드가 같은 자원에 접근 하려고 하는 경우 접근을 대기시키는 기능을 지원함 코드 예시 메서드에 synchrozied 사용한 경우 해당 메서드는 동시에 오직 하나의 스레드만 실행할 수 있습니다. public synchrozied void incrementCount() { this.count++; } 코드 블록에 synchrozied 사용한 경우 다음과 같이 this(인스턴스 자신을 참조하는) 객체나 특정 객체에 대한 블록에 synchronized 키워드를 붙이면, 해당 객체에 대한 모든 스레드의 접.. 2024. 3. 29.
[Java] List<?> indexof (equals, hascode @Override) import java.util.ArrayList; import java.util.List; import java.util.Objects; public class list { public static class FileUploadModel { private String fieldName = null; private String fileName = null; public FileUploadModel(String fieldName, String fileName) { this.fieldName = fieldName; this.fileName = fileName; } public String getFieldName() { return fieldName; } public void setFieldName(String.. 2023. 11. 4.
[Java] Jsoup를 이용한 웹 크롤링 회사에서 해당 링크에서 이미지를 가져와서 뿌려줄 업무가 있어서 간단하게 정리했습니다. 자세한 내용은 https://jsoup.org/ 참조하시면 상세히 설명이 되어있습니다. jsoup: Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safety jsoup: Java HTML Parser jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS s.. 2023. 6. 15.