다시 웹, 백엔드로/스프링 43

AOP

AOP (Aspect Oriented Programming) 관점지향 프로그래밍MVC 웹 어플리케이션에서는 Web Layer, Business Layer, Data Layer 로 정의Web Layer: REST API 제공, Client 중심의 로직 적용Business Layer: 내부 정책에 따른 logic 개발, 주로 해당 부분을 개발Data Layer: 데이터베이스 및 외부와의 연동 처리  주요 Annotation   횡단 관심AOP 는 메소드들 또는 특정 구역에 반복되는 로직들을 한 곳으로 몰아서 코딩을 할 수 있게 해줌 공통적인 기능들 로그통신메서드 실행 시간 확인인코딩, 암호화 기능  예제   - 메서드 실행 시 argument와 return 값에 대한 추적 log          - 메서드 ..

IoC / DI

IoC / DI IoC (Inversion of Control)Java 객체를 new 로 생성해 개발자가 관리하는 것이 아닌 Spring Container 에 모두 맡김 (싱글톤 형태로 관리됨)프레임워크로 제어의 객체 관리의 권한이 넘어감, '제어의 역전' 이라고 함 DI (Dependency Injection)장점의존성으로부터 격리시켜 테스트에 용이함DI 를 통해 불가능한 상황을 Mock 과 같은 기술을 통해 안정적인 테스트 가능코드를 확장하거나 변경 할 때 영향을 최소화함 (추상화)순환참조를 막을 수 있음  예제 - 자바       - 스프링   - IEncoder 는 같음                   feat. 패스트캠퍼스 - Java/Spring 웹 개발 마스터 초격차

스프링의 핵심

스프링의 핵심 SpringSpring 1.0버전은 2004년 3월 출시20여가지로 구성 (https://spring.io/projects/spring-framework)스프링의 핵심기능 (DI, AOP, etc) 제공, 필요한 모듈만 선택해 사용 가능현재 대부분 서버들이 단일 아키텍처 (모놀리스)에서 마이크로서비스 아키텍처로 변환 중 -> 스프링도 진화하고 있는 상태스프링부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티에 중점을 둠 Spring 의 과제'테스트의 용이성', '느슨한 결합' 에 중점을 두고 개발2000년 초반, 자바 EE 애플리케이션은 작성/테스트가 매우 어려웠음, 느슨한 결합이 된 애플리케이션 개발이 힘든 상태였고, 데이터베이스와 같이 외부에 의존성을 두는 경우 단위..