전체 글

전체 글

    [Github Action] gradle을 이용한 java CI 구성하기

    Github Action Github 저장소를 기반으로 소프트웨어 개발 workflow를 자동화 할 수 있는 도구 장점 별도의 서버 설치가 필요 없다. 비동기 ci/cd가 가능하다. github 이벤트에 대한 작업을 제공해준다. yaml로 사용하기 때문에 개발자들에게 친숙하다. github 마켓 플레이스를 통해 공유 가능 단점 캐싱이 필요할 경우 자체 캐싱 메커니즘을 작성해야 함 (엔터프라이즈에선 actions/cache를 지원하지 않는다고 한다. 참고) 젠킨스에 비해 문서가 적다. (아무래도 출시 일자가 차이가 나기 때문인듯) 구성요소 workflow 프로젝트를 빌드, 테스트, 패키지, 릴리스 또는 배포하기 위한 전체적인 프로세스 여러개의 job으로 구성되며 디폴트로 병렬 실행한다. event 기반으로..

    [Design Pattern] 구조 패턴 - 퍼사드 패턴

    github 코드 https://github.com/yaini/Spring_Study/tree/spring-3-design-pattern-structural/design-pattern/src/main/java/structural Facade 건물의 출입구로 이용되는 정면 외벽 부분 즉, 건물 안쪽은 복잡할지라도 사용자는 건물의 정면만 볼 수 있도록 해준다는 뜻이다. 퍼사드 패턴 클래스 라이브러리와 같은 어떤 소프트웨어의 커다란 코드 부분에 대한 간략화된 인터페이스를 제공한다. 소프트웨어 라이브러리를 쉽게 사용할 수 있게 해준다. 라이브러리의 세부 코드에 의존하는 일을 감소시켜 준다. 전체 코드 public class Facade { public static void main(String[] args) {..

    [Design Pattern] 구조 패턴 - 브리지 패턴

    github 코드 https://github.com/yaini/Spring_Study/tree/spring-3-design-pattern-structural/design-pattern/src/main/java/structural 브리지 패턴 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴 기능과 구현에 대해 두 개의 별도의 클래스로 구현 구현부는 객체에서 동작을 처리하기 위해, 추상부는 확장을 위해 존재한다. 어댑터 패턴이 추가 요구사항을 위해 기능을 추가하는 반면 브리지 패턴은 설계 진행 중에 의도적으로 레이어를 분리시킨다. Abstraction: 기능 계층의 추상 인터페이스 RefindAbstraction: Abstraction을 상속하여 기능을 제공하는 클래스 Implemen..

    [Design Pattern] 구조 패턴 - 어댑터 패턴

    github 코드 https://github.com/yaini/Spring_Study/tree/spring-3-design-pattern-structural/design-pattern/src/main/java/structural 어댑터 다른 전기나 기계 장치를 서로 연결해서 작동할 수 있도록 만들어 주는 도구 어댑터 패턴 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴 호환성이 없는 인터페이스를 함께 동작할 수 있도록 만들어 준다. 또한 기존 클래스의 소스코드를 수정하지 않고 기존 인터페이스에 맞춰서 동작이 가능하도록 한다는 장점이 있다. 객체 어댑터 class CardObjectAdapter implements Card{ TrafficCard trafficCard; public ..

    [Design Pattern] 구조 패턴 - 컴포지트 패턴

    github 코드 https://github.com/yaini/Spring_Study/tree/spring-3-design-pattern-structural/design-pattern/src/main/java/structural 컴포지트 패턴 복합 객체와 단일 객체를 동일하게 취급할 때 사용하는 패턴 객체들의 관계를 트리 구조로 구성하여 전체-부분 관계로 표현할 수 있다. Component 복합 객체와 단일 객체가 동일하게 가지는 속성과 기능을 가진 인터페이스 Leaf 컴포지트 패턴에서 단일 객체를 의미한다. 트리구조에서 Composite의 자식 역할을 한다. Composite 컴포지트 패턴에서 복합 객체로 Component 인터페이스를 통해 자식 객체를 관리한다. 컴포지트 패턴의 가장 대표적인 예가 폴..

    [Design Pattern] 구조 패턴 - 데코레이터 패턴

    github 코드 https://github.com/yaini/Spring_Study/tree/spring-3-design-pattern-structural/design-pattern/src/main/java/structural 데코레이터 패턴 주어진 상황 및 용도에 따라 객체에 대한 책임을 덧붙이는 패턴 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 대안 자바는 다중 상속을 지원하지 않기 때문에 추가해야 할 기능의 종류가 많은 경우 데코레이터 패턴을 사용할 수 있다. 데코레이터 클래스와 데코레이터를 적용할 클래스는 합성 관계를 통해 표현된다. 합성(has-a) 관계 생성자에서 필드에 대한 객체를 생성하는 경우 전체 객체가 없어지면 부분 객체도 없어진다. 상속에 의해 코드를 재사용하는 것 대신, 객..