💡CI/CD에 활용되는 Jenkins에 대하여 학습하여 정리하였습니다.JenkinsJenkins는 오픈소스 자동화 서버로, 소프트웨어 개발 과정에서 지속적인 통합과 지속적인 배포(CI/CD)를 돕는 도구입니다.다양한 플러그인과 함께 사용되며, 이를 통해 빌드, 테스트, 배포와 같은 작업을 자동으로 실행할 수 있습니다. CI/CD 파이프라인Jenkins의 특징Java Runtime Environment에서 동작합니다.다양한 플러그인들을 활용하여 각종 자동화 작업을 처리할 수 있습니다.일련의 자동화 적읍의 순서들의 집합인 pipeline을 통해 CI/CD 파이프라인을 구축할 수 있습니다.플러그인들을 조합해 파이프라인을 구축할 수 있습니다. Jenkins PluginsCredentials Plugin배포에 ..
💡소프트웨어 설계를 위한 디자인 패턴에 대하여 정리하였습니다. 디자인 패턴(Design Pattern)디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제를 해결하기 위한 재사용 가능한 해결책을 뜻합니다.디자인 패턴은 반복적으로 나타나는 설계 문제에 대한 최적화된 해결 방안을 정리한 것이며, 구체적인 코드를 제시하기보다는 문제를 해결하는 방법론과 구조적인 틀을 제공합니다.디자인 패턴의 목적검증된 설계 패턴을 사용하여 코드의 재사용성을 높입니다.설계 패턴을 적용하여 명확한 코드 구조와 유지보수를 쉽게 합니다.변경에 유연하게 대처할 수 있는 구조를 만들어 확장성을 높입니다.소프트웨어 개발자 간에 문제 해결 방법에 대한 공통적인 용어와 접근 방식을 제공합니다.객체 지향 4원칙디자인 패턴은 객체 지향 설계의 ..
💡우아한테크코스 인터뷰 과정에서 받았던 질문 중인 상속과 조합의 차이에 대하여 정리하였습니다. 개요상속과 조합은 객체지향 프로그래밍에서 객체 간의 관계를 모델링하는 중요한 개념입니다.두 개념은 코드 재사용과 객체 간의 관계를 명확히 하는 데 도움을 줍니다.“상속보다 조합을 사용하라”라는 말이 있는데, 그 이유를 알아보려 합니다.상속(Inheritance)상속은 자식 클래스가 부모 클래스의 속성과 메서드를 물려받는 개념입니다.부모 - 자식 관계를 형성하며, 자식 클래스는 부모 클래스의 기능을 확장하거나 재정의할 수 있습니다.is - a상속은 A는 B이다(A is B)라는 관계를 나타내며, 자식 클래스는 부모 클래스의 일종으로 간주합니다.이를 활용하면 부모 클래스에서 정의된 속성 및 메서드를 자식 클래스에..
💡객체 지향 프로그래밍에서 사용되는 개념인 값 객체(Value Object)에 대하여 기록하였습니다. Value Object값 객체는 객체 지향 프로그래밍에서 불변하며, 주로 고유한 식별자(ex> ID 값)이 없고 데이터 그 자체로 의미를 갖는 객체를 말합니다.두 객체가 같은 속성 값을 가지고 있다면 동일한 것으로 간주하며, 본질적으로 데이터를 담는 그릇으로 분류합니다.불변성값 객체는 생성된 이후 상태가 변하지 않는 특징이 있습니다.값 객체의 속성 값이 변경되면 새로운 값 객체를 생성해야 합니다.동등성두 값 객체는 그 속성 값이 같으면 동일한 것으로 간주됩니다.객체의 참조가 다르더라도 같다면 동일한 객체로 취급합니다.식별자값 객체는 식별자가 없으며, 데이터 자체가 중요합니다.그 데이터의 값이 같으면 두..
💡이벤트 처리와 관련 된 개념인 Throtting과 Debounce에 대하여 학습한 내용을 기록하였습니다. 개요Throttling와 Debounce는 자주 사용 되는 이벤트나 함수들의 실행되는 빈도를 줄여서 효율적인 성능 개선을 가져오기 위한 개념입니다.검색 시 자동 완성 기능에 주로 활용되며, keyboard가 한자씩 입력될 때마다 API로 데이터를 가져오게 되면 사용자의 의도와 무관하게 많은 요청이 발생합니다.이를 줄이기 위해서 특정 단위마다 api 값을 가져오도록 요청할 수 있는데, 이러한 방식이 Throttling과 Debounce에서 활용됩니다.두 방법 모두 사용자 인터페이스에서 빠르게 발생하는 이벤트를 제어하고 불필요한 처리를 줄이기 위한 방법이지만, 처리 방식에 차이가 있습니다.Thrott..
💡 가장 자주 접했던 객체 지향 설계에 대하여 학습하였습니다. 객체 지향 프로그래밍(OOP)프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 기법입니다.명령형 프로그래밍인 절차지향 프로그래밍의 단점을 보완하기 위하여 등장하였습니다.절차지향 프로그래밍무엇을 어떤 절차로 할 것인가를 중점으로 두고 있으며, 순차적인 처리를 중요시 하는 프로그래밍 기법입니다.프로그램 전체가 유기적으로 연결되도록 하며, 대표적으로 C언어가 있습니다.실행속도가 빠르지만, 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다는 단점이 있습니다.절차지향 프로그래밍에서 개선점절차지향 프로그래밍은 모듈을 재활용하기 어렵기 때문에 대규모 프로젝트..