생성자 주입을 통한 OOP
·
Study/OOP
개요 먼저 스프링을 공부하기 앞서 자바 공부와 OOP 공부를 병행하며 간단한 자바 코드를 객체지향 설계에 맞게 구현하려고 한다. 이젠 게시글에서 객체지향 프로그래밍은 역할, 구현을 분리한다. 이를 자바에 적용시키기 위해 역할-인터페이스, 구현-인터페이스를 구현한 클래스, 구현 객체로 나뉜다 했던 것을 생각하며 간단한 코드를 작성했다. 요구사항 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용..
객체 지향 특징과 SOLID 원칙
·
Study/OOP
객체 지향 특징 추상화 캡슐화 상속 다형성 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들어준다. 그렇다면 객체 지향적 프로그래밍 방법은?? 역할과 구현을 분리 역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다. 장점 클라이언트는 대상의 역할(인터페이스)만 알면 된다. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다. 그렇다면 어떻게 자바에서 역할과 구현을 분리할까? 역할 - 인터페이스 구현 - 인터페이스를 구현한 클래스, 구현 객체 다형성의 본질 인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. 다형성의 본질..
스프링 프레임워크와 스프링 부트
·
Study/Spring
스프링 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케줄링 테스트: 스프링 기반 테스트 지원 언어: 코틀린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링과 3rd party(외부) 라이브러리 자동 구성 메트릭, 상태 확인, ..
젠킨스 잡 생성 후 빌드까지
·
Study/Jenkins
저번 글에서 젠킨스란 무엇이고 젠킨스 설치까지 완료했으니 이젠 젠킨스를 활욜해볼 차례이다. 간단하게 잡을 생성해보겠다. 잡 생성 1. 젠킨스로 접속해 로그인하고 홈에서 좌측 상단에 새로운 item을 선택합시다. 2. Freestyle Project를 생성해준다 3. General은 읽어보고 필요한 경우 작성하면 되고 그 밑에 소스 코드 관리에 Git으로 들어간다. Repository URL에는 깃허브에 등록된 프로젝트의 주소를 넣어주고 Credential을 등록해주기 위해 Add -> Jenkins를 클릭해준다 4. Credential 등록 kind는 그대로 두고 ID와 Poassword는 깃허브 계정임의 주의하자. 5. 저장 후에 홈으로 나와서 지금 빌드 클릭 그럼 좌측하단에 빌드 기록으로 빌드 성공을..
Jenkins란 무엇이며 Jenkins 설치까지
·
Study/Jenkins
Maven과 Gradle 빌드 도구에 대해 알아봤었는데 이번엔 마지막으로 Jenkins에 대해 알아보는 시간을 가져보겠습니다. Jenkins란? 자바로 작성된 오픈 소스 소프트웨어로 지속적통합(CI), 지속적 배포(CD)를 제공한다. 웹 앱 형태로 제공되고 있어 어떠한 환경에서도 손쉽게 설치할 수 있으며 도커를 사용해 설치할 수도 있다. 또한 천 개 이상의 플러그인으로 다양한 시스템과 연동할 수 있다. 개발자가 소스를 추가, 수정한뒤 형상관리 도구에 저장하면 자동으로 읽어 빌드 및 테스트를 진행한다. 통합 프로세스를 거쳐 검증하여 코드의 문제를 감지하고 빠른 피드백을 제공한다. 주요 기능은? 형상관리 도구와의 연동 소스 코드 체크아웃 웹 인터페이스 테스트 보고서 생성 빌드 및 테스트 자동화 실행 결과 통..