공부 자료/Spring (64) 썸네일형 리스트형 [Spring Core] 아키텍처로 보는 Spring Framework Module 구성 모듈(Module) : 지원되는 여러가지 기능들을 목적에 맞게 그룹화하여 묶어 놓은 것 : Java 패키지 단위로 묶여 있으며, 이 패키지 안에는 관련 기능 제공을 위한 클래스가 포함됨 : 재사용 가능하도록 라이브러리 형태로 제공되는 경우가 많음 * Spring Framework에서 약 20여개의 모듈을 통해 다양한 기능들을 제공하며, 다양한 아키텍쳐 역시 확인이 가능함 아키텍처에 대한 정리 https://kcode-recording.tistory.com/48 아키텍처(Architecture) - 시스템/소프트웨어/애플리케이션 아키텍처(Architecture) : 건축 분야에서 오래된 용어로써 요구사항을 만족하는 건물을 짓는데 있어서 청사진 같은 역할을 함(건물의 구조물에 대한 컨셉을 잡는 것) : 어떠.. [Spring Core] AOP (Aspect Oriented Programming) AOP(Aspect Oriented Programming)란? : OOP(Object Oriented Programming)은 객체지향 프로그래밍 즉, 객체 간의 관계를 지향하는 프로그래밍 방식 : Aspect(관심)을 지향하는 프로그래밍은 애플리케이션에 필요한 기능 중에서 공통적으로 적용되는 공통 기능에 대한 관심과 연관됨 : 애플리케이션의 핵심 업무 로직에서 로깅이나 보안, 트랜잭션 같은 공통 기능 로직들을 분리하는 것 >> 관심 분리(Separation of Concerns)함으로서 재사용 가능한 모듈로서 사용할 수 있으며, 높은 응집도를 가짐 (SRT 하나의 책임) * 공통 관심 사항(Cross-cutting concern) : 애플리케이션 전반에 걸쳐 공통적으로 사용되는 기능들에 대한 관심사 :.. [Spring Core] DI (Dependency Injection) DI(Dependency Injection)란? : IoC의 개념을 조금 더 구체화 한 것으로 의존성 주입을 의미함 즉, IoC 개념을 구체화시킨 것으로 객체간의 관계를 느슨하게 해줌 (느슨한 결합) / 클래스들 간의 강한 결합을 느슨한 결합으로 만듦 1. What(의존성 주입이란?) : 사용하고자 하는 클래스의 객체를 생성하여 참조하면 의존 관계가 성립(클래스 내부에서 다른 클래스의 객체를 생성할 경우)되며, 클래스 내부에서 참조할 클래스의 객체를 생성하지 않고, 생성자를 통해 외부에서 다른 클래스의 객체를 전달받는 것을 의존성 주입이라고 함 (의존 관계 성립 이후 주입까지 이루어져야 의존성 주입이 일어남) 2. Why(의존성 주입 필요 이유) : 의존성 주입 사용 시 new 키워드를 쓸지 말지 여부 .. [Spring Core] PSA (Portable Service Abstraction) PSA(Portable Service Abstraction)란? : '일관된 서비스 추상화'로 클라이언트가 추상화된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것 : 환경 변화에 상관없이 일관된 방식으로 제공하는 추상화 구조로 인터페이스에서 추상 메서드를 만드는 것 처럼 추상화된 서비스를 통해 환경이 바뀌어도 활용할 수 있어야 하며, DI를 활용해 사용할 객체만 바꿔주도록 구현이 가능함 추가개념) * 추상화(Abstraction) : 클래스의 본질적인 특성만을 추출해서 일반화 하는 것 : 대표적 방법은 추상 클래스와 인터페이스가 존재 * 추상화 사용 이유 : 상위 클래스에서 일반화 시켜놓은 것을 구체화시켜서 사용할 수 있음 (사용하면서 구체화 클래스의 객체를 자신의 타입에 할당하는 것.. [Spring Core] POJO(Plain Old Java Object) POJO(Plain Old Java Object)란? : PO - 순수한 객체를 의미 : JO - 객체지향 프로그래밍 : Java로 생성하는 순수한 객체를 말하며 POJO를 이용해서 프로그래밍 코드를 작성하는 것을 의미 : 객체지향의 원리에 충실하며 다른 환경과 기술에 종속되지 않고, 필요에 따라서 재활용이 가능한 자바 오브젝트 규칙 1. Java나 Java 스텍에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 함 : 자바 언어외 꼭 필요한 API 외에는 종속되지 않음 public class User { private String userName; private String id; private String password; public String getUserName() { return u.. [Spring Core] Spring Framework 소개 [Spring Framework] Spring Framework : 웹 애플리케이션 개발을 위한 여러 Framework들 중 하나 Spring Framework 장점 1. POJO(Plan Old Java Object)기반의 구성 2. DI(Dependency Injection) 지원 3. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원 * 위의 3가지는 게시물 참고 4. Java 언어를 사용함으로써 얻는 장점 : 정적 타입의 언어로서 변수의 타입,메서드의 입력과 출력이 어떤 타입을 가져야 하는지를 강제하기 때문에 여러 사람이 함께 작업하거나 다른 사람의 코드 혹은 내 코드를 수정/보완할 경우 용이하며, 웹 서버 구축에 있어 런타임에 발생하는 오류를 사전에 방지할 수.. [Spring Core] Framework & Library [Framework] Framework란? : 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것 : 애플리케이션을 만들기 위한 틀 혹은 구조를 제공하는 것 추가설명) java에서 Framework의 의미를 보았을 때 Collections Framework를 말할 수 있음 Java 클래스 중 기본적인 뼈대로만 구성이 되어있는 것 = 추상메서드로만 정의된 인터페이스(interface) Collection은 Map/Set/List 같은 인터페이스와 그 인터페이스를 구현한 구현체들의 집합 결론적으로 Framework는 프로그래밍 상에서 프로그래밍을 하기 위한 틀이나 구조를 제공한다고 말할 수 있음 장점 1. 효율적으로 코드를 작성할 수 있음 :.. [Spring Core] IoC (Inversion of Control) IoC(Inversion of Control)란? : '애플리케이션 흐름의 주도권을 Spring이 갖는다'를 의미(제어의 역전) : 개발자가 가지던 제어권을 외부에서 갖는다는 것을 의미(예를들면 생성자명이 변경될 경우 개발자가 일일이 변경이 필요한 것은 개발자가 제어권을 가진다는 것, 이를 개발자가 고치는 것이 아닌 외부에서 자동으로 고쳐주는 것을 외부에서 제어권을 가진다고 함. 이 때 대표적으로 외부에서 제어권을 가지도록 하게 되는 것이 DI) : Library는 흐름 주도권이 개발자에게, Framework는 흐름 주도권이 Framewok에 존재한다고 했을 때 애플리케이션 흐름의 주도권이 뒤바뀐 것을 말함 Ex) Java 콘솔 애플리케이션 일반적인 제어권 public class Main { public.. 이전 1 ··· 5 6 7 8 다음