본문 바로가기

전체 글57

젠킨스 Jenkins 젠킨스란? 젠킨스는 웹 서비스의 빌드/테스트/배포 자동화. 즉, CI/CD 환경을 구축하기 위한 도구 중 하나입니다. 이를 통해 소프트웨어의 품질과 개발 생산성을 높일 수 있습니다. 💡 CI ? Continuous Integration의 약자로, 말그대로 지속적인 통합을 의미합니다. 새로운 변경사항이 정기적으로 빌드/테스트되어 공유되는 Repository에 통합하는 것을 말합니다. 이를 통해 여러 개발자는 서로 충돌할 수 있는 문제점을 해결할 수 있습니다. * 형상관리(SVN, Git 등)와의 차이가 무엇인가요? 형상관리는 말그대로 형상에 대해 저장만 합니다. CI 시스템은 형상관리 서버에 저장된 소스코드를 폴링하여 컴파일/테스트/코드 인스펙션 등을 수행하며 신규로 발생한 내역을 검증하고 개발자에게 피드.. 2022. 11. 3.
제어의 역전 (Inversion Of Control, IoC) 제어의 역전(IoC)이란? 프로그램의 흐름(객체의 생성, 소멸과 같은 생명주기 등)을 개발자(Application)가 직접 제어하는 것이 아니라 외부(프레임워크)에서 제어할 수 있도록 하는 것입니다. 이를 위해 Spring Framework에서는 Application을 구성하는 객체(Bean)를 관리하는 데에 IoC Container를 이용합니다. 이 IoC Container를 이용하여 DI, AOP가 가능해집니다. 💡 DI는 IoC를 구현하기 위한 디자인 패턴 중 하나입니다. 1. IoC의 구현 1-1. 프로그래머가 직접 제어하는 방식 public class SampleController { private Book book; public SampleController() { this.book = new.. 2022. 11. 2.
의존성 주입 (Dependency Injection, DI) 의존성 주입이란? 객체를 직접 생성하는 것이 아니라 외부에서 생성 및 주입하는 방식을 의미합니다. 이를 통해 각 모듈 간의 결합도는 낮아지고, 유연성은 높아지게 됩니다. 1. Spring에서의 의존성 주입 강한 결합 객체 내부에서 다른 객체를 생성하는 구조를 말합니다. A 클래스에서 B 객체를 생성하고, B 객체를 C 객체로 바꾸려면 A 클래스를 수정해야 하기 때문입니다. 느슨한 결합 외부에서 생성된 객체를 인터페이스를 통해 넘겨받는 구조를 말합니다. 이렇게 하면 결합도를 낮추고, 런타임 시 의존 관계가 결정되기 때문에 유연한 구조를 가지게 됩니다. 이 때, SOLID 원칙 중 Open Closed Principle을 지키기 위해 전략 패턴(생성자 주입)을 사용합니다. 여기서 생성자 주입의 종류로는, F.. 2022. 10. 23.