자바 응용

최지홍·2022년 1월 21일
0

매일 공부

목록 보기
3/40

스프링 프레임워크

  • 프레임워크: 작업 환경. 차, 비행기, 배 같은 운송수단. 대체가 어렵고, 규칙을 따라야함
    • 하나의 애플리케이션을 구축할 때, 모든 애플리케이션의 공통적인 개발 환경을 제공해주는 것
    • 개발에 필요한 화면구현, DB 연동, 개발 환경들에 공통적인 부분을 제공함으로써 개발 시간과 리소스 비용을 절감해 생산성을 높여주는 것
  • 라이브러리: 톱, 망치, 삽 같은 도구. 도구를 선택하여 사용. 비교적 자유로움

EJB

  • 엔터프라이즈 자바빈즈(Enterprise JavaBeans): 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델
    • 비즈니스 객체들을 관리하는 컨테이너를 만들어서 필요할 때마다 컨테이너로부터 객체를 받는 식으로 관리
  • 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션
  • 컴포넌트와 모듈: 어떠한 구조와 기능의 최소 단위
    • 컴포넌트: 실행 중인 소프트웨어의 활동 단위
    • 모듈: 만들어진 산출물의 구현 단위
  • 자바 빈: 자바 객체를 재사용 가능하게 컴포넌트화 시킬 수 있는 코딩 방침
    • 자바로 작성된 소프트웨어 컴포넌트
    • 지켜야 할 사항이 있음
    • 쉽게 말해 규칙성이 있는 데이터 클래스
  • POJO: 오래된 방식의 간단한 자바 오브젝트. 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 “무거운” 객체를 만들게 된 것에 반발해서 사용하게 된 용어
  • AOP
    • OOP를 더욱 보완, 확장하여 OOP를 OOP 답게 사용할 수 있도록 도움
    • AOP 도입 전까지는 객체의 재사용에도 불구하고 필수적으로 반복되는 코드 중복은 여전
    • AOP의 가장 기초 개념은 ‘관심의 분리’
    • 기능을 비즈니스 로직과 공통 모듈로 구분한 후 개발자의 코드 밖에서 필요한 시점에 비즈니스 로직에 삽입하여 실행
    • 핵심 관점(비즈니스 로직) + 횡단 관점(트랜잭션, 로그, 권한 체크 등)
    • 계좌이체, 입출금, 이자계산이라는 로직을 처리할 때, 모두 똑같이 로깅, 보안, 트랜잭션을 처리해줘야 함
    • 하지만, AOP 에서는 로깅, 보안, 트랜잭션이라는 공통 관심을 따로 빼내어 계좌이체, 입출금, 이자계산이라는 핵심 관심에 횡단으로 삽입
    • 각 객체별로 처리했던 것을 각 관점별로 외부에서 접근하는 것이 핵심
    • 개발자는 계좌이체, 입출금, 이자계산과 같은 핵심 기능을 만들고, 공통적인 관심 기능(로깅, 보안, 트랜잭션)을 처리하는 모듈을 분리해서 개발한 후, 필요한 시점에 자동으로 공통적인 관심 기능이 삽입되도록 하는 것
  • DI
    • 의존성: 한 기능을 실행하기 위해 다른 기능(클래스)이 필요한 경우, 의존성이 높음
    • 의존성 주입: 필요한 객체를 직접 생성하는 것이 아닌, 외부로부터 필요한 객체를 받아서 사용하는 것
    • 이를 통해 객체 간의 결합도를 줄이고 코드의 재활용성을 높여줌
    • DI란, 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존 관계가 고정되지 않도록 하고 런타임 시에 관계를 다이나믹하게 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해줌
    • 두 객체 간의 관계를 맺어주는 것을 의존성 주입
  • IoC: 어떤 객체를 사용할지에 대한 책임이 BeanFactory와 같은 클래스에게 넘어갔고, 자신은 수동적으로 주입받는 객체를 사용
  • MVC
    • Model, View, Controller
    • Model: 애플리케이션의 정보, 정보들의 가공. 로직
    • View: 사용자 인터페이스 요소
    • Controller: 데이터와 사용자 인터페이스를 잇는 다리. 이벤트 처리
profile
백엔드 개발자가 되자!

0개의 댓글