💡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 값)이 없고 데이터 그 자체로 의미를 갖는 객체를 말합니다.두 객체가 같은 속성 값을 가지고 있다면 동일한 것으로 간주하며, 본질적으로 데이터를 담는 그릇으로 분류합니다.불변성값 객체는 생성된 이후 상태가 변하지 않는 특징이 있습니다.값 객체의 속성 값이 변경되면 새로운 값 객체를 생성해야 합니다.동등성두 값 객체는 그 속성 값이 같으면 동일한 것으로 간주됩니다.객체의 참조가 다르더라도 같다면 동일한 객체로 취급합니다.식별자값 객체는 식별자가 없으며, 데이터 자체가 중요합니다.그 데이터의 값이 같으면 두..
💡REST API와 RESTful API에 대하여 정리하였습니다. RESTRepresentational State Transfer의 약자로 자원을 이름(자원이 표현)으로 구분해 해당 자원의 상태(정보)를 행위로 주고 받는 것들을 의미합니다.자원의 표현에 의한 상태 전달[자원] : 해당 소프트웨어가 관리하는 모든 것으로 문서, 그림, 데이터, 소프트웨어 자체 등[표현] : 그 자원을 표현하기 위한 이름[상태 전달] : 데이터가 요청되는 시점에 자원의 상태를 전달하며, 주로 JSON 활용REST는 기본적으로 웹의 기존 기술과 HTTP를 활용하여 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일입니다.REST는 네트워크에서 Client와 Server 사이의 통신 규약을 가지는 아키텍처입니다.어떤 자원에 대..
💡이벤트 처리와 관련 된 개념인 Throtting과 Debounce에 대하여 학습한 내용을 기록하였습니다. 개요Throttling와 Debounce는 자주 사용 되는 이벤트나 함수들의 실행되는 빈도를 줄여서 효율적인 성능 개선을 가져오기 위한 개념입니다.검색 시 자동 완성 기능에 주로 활용되며, keyboard가 한자씩 입력될 때마다 API로 데이터를 가져오게 되면 사용자의 의도와 무관하게 많은 요청이 발생합니다.이를 줄이기 위해서 특정 단위마다 api 값을 가져오도록 요청할 수 있는데, 이러한 방식이 Throttling과 Debounce에서 활용됩니다.두 방법 모두 사용자 인터페이스에서 빠르게 발생하는 이벤트를 제어하고 불필요한 처리를 줄이기 위한 방법이지만, 처리 방식에 차이가 있습니다.Thrott..