Spring/객체지향

Spring/객체지향

스프링 삼각형 : AOP(Aspect-Oriented Programming), PSA(Portable Service Abstraction)

스프링 삼각형 스프링을 이해하는 데는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라고 불리는 IoC/DI, AOP, PSA의 이해가 필수이다. 이전 게시글에서 IoC/DI에 대해 다루었다. https://shout-to-my-mae.tistory.com/425 스프링 삼각형 : IoC(제어의 역전) / DI(의존성 주입) 스프링 삼각형 스프링을 이해하는 데는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라고 불리는 IoC/DI, AOP, PSA의 이해가 필수이다. 스프링 프레임워크는 스프링 삼각형의 조합으로 이해할 shout-to-my-mae.tistory.com AOP (Aspect-Oriented Programming) 관점(Aspect)..

Spring/객체지향

스프링 삼각형 : IoC(제어의 역전) / DI(의존성 주입) + POJO 지향

스프링 삼각형 스프링을 이해하는 데는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라고 불리는 IoC/DI, AOP, PSA의 이해가 필수이다. 스프링 프레임워크는 스프링 삼각형의 조합으로 이해할 수 있다. IoC/DI IoC (Inversion Of Control : 제어의 역전) 이라고도 하는 DI(Dependency Injection : 의존성 주입)을 알아보자. 우선 의존성이란 무엇일까? 의존성 의존성은 new이다. 의사 코드 : 운전자가 자동차를 생산한다. 코드 : new Car(); 의사 코드 : 자동차는 내부적으로 타이어를 생산한다. 코드 : Car 객체 생성자에서 new Tire(); Car는 Tire에 의존한다. 즉 전체가 부분에 의존한다. 의존관계 집합 관..

Spring/객체지향

코드에 SRP 원칙 적용 후 Mock 테스트 작성하기

SRP(Single Responsibility Principle) : 단일 책임 원칙 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다. - 로버트 C.마틴 하나의 클래스에 역할과 책임이 너무 많은 경우 클래스를 각각의 역할과 책임에 따라 분리하자는 원칙이다. SRP 원칙을 통해 클래스 하나가 과도한 책임을 가지는 것을 방지하고, 각 클래스의 책임이 명확해진다. 아래 글에 SOLID에 대해 정리했으니 시간나면 읽어보는 것도 좋다. https://shout-to-my-mae.tistory.com/417 객체 지향 설계 5원칙: SOLID 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계하는 방법과 원칙이 존재한다. SOLID 객체 지향 설계(OOD)의 정수라고 할 수 있는 5원칙이다. ..

Spring/객체지향

객체 지향과 디자인 패턴

객체 지향과 디자인 패턴 객체 지향 특성(캡슐화, 상속, 추상화, 다형성) : 요리도구 객체 지향 설계 5원칙 (SOLID) : 요리도구를 올바르게 사용하는 방법 디자인 패턴 : 레시피 요리도구를 사용하여 요리를 만들때, 하나의 요리에도 표준화된 요리법이 있듯이 프로그래밍에도 표준화된 해결책이 있다. 디자인(설계) 패턴 프로그램을 작성하다보면 비슷 비슷한 상황에 직면하게 되는 경우가 많은데, 그러한 상황에서 이전에 많은 개발자들이 고민하고 정제한 사실 상의 표준 설계 패턴이다. 실제 개발 현장에서 비즈니스 요구사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 best practice이다. 객체 지향 특성과 설계 원칙을 기반으로 구현한다. 스프링 프레임워크 공식적인 정의 ..

Spring/객체지향

객체 지향 설계 5원칙: SOLID

객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계하는 방법과 원칙이 존재한다. SOLID 객체 지향 설계(OOD)의 정수라고 할 수 있는 5원칙이다. SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 SOLID는 소프트웨어에 녹여 내야 하는 개념이다. SOLID를 잘 녹여낸 소프트웨어는 상대적으로 이해하기 쉽고, 리팩터링과 유지보수가 ..

Spring/객체지향

Java가 확장한 객체 지향 (abstract, 생성자, static, final, this, super)

Java가 확장한 객체 지향 java가 객체 지향을 확장하기 위해 사용하는 키워드와 개념을 알아보자. abstract 키워드 - 추상 메서드와 추상 클래스 추상 메서드(Abstract Method) 선언부는 있는데 구현부가 없는 메서드 추상 클래스(Abstract Class) 추상 메서드를 하나라도 갖고 있는 클래스 추상 메서드가 필요한 이유 package abstractMethod01; public class Driver{ public static void main(String[] args){ 동물[] 동물들 = new 동물[3]; 동물들[0] = new 쥐(); 동물들[1] = new 고양이(); 동물들[2] = new 강아지(); for (int i=0;i 메서드 선언은 있되 몸체는 없는 abstr..

Spring/객체지향

Java와 객체 지향 : OOP 4대 특성

자바와 객체 지향 객체 지향은 인간 지향이다. 절차적/구조적 프로그래밍까지의 과정은 기계 종속적인 개발이었다. 구조적 프로그래밍에서 제일 중요한 것은 함수이다. 복잡한 문제를 작은 문제로 분할하여 정복하는 방법이다. 그러나 몇 천, 몇 만 라인의 명령어를 논리적인 단위로 나누어 블록화하여 작성해야한다. 그 후 객체 지향 프로그래밍이 등장했다. 객체 지향의 출발은 "우리가 주변에서 사물을 인식하는 방식대로 프로그래밍할 수 있지 않겠는가?"라는 물음에서 시작되었다. 0,1로 대변하는 기계(컴퓨터)에 맞춰 사고하던 방식을 버리고 현실세계를 인지하는 방식으로 프로그램을 만들자는 것이다. 그래서 객체 지향은 직관적이다. 객체 지향 이해하기 세상에 존재하는 모든 것은 사물, 즉 객체(Object)이다. 각각의 사물..

Spring/객체지향

프로그래밍의 발전 및 Java와 절차적/구조적 프로그래밍

프로그래밍의 발전 기계어 : 초창기 기술, 0과 1 어셈블리어 : 어셈블러(인간의 언어)로 기계어 생성 - 그러나 기계(cpu)마다 서로 다른 어셈블리어 C : 하나의 소스 파일만 만들면 된다. - 기계별 컴파일러 필요 Java : 하나의 소스 파일, 하나의 컴파일러 - 각 기종 별로 JRE만 설치해주면 된다. Java : Write Once Use Anywhere ! CBD(Componenet Based Development) 컴포넌트 기반 개발 애플리케이션을 의미 있는 단위로 구분하고 그 단위를 하나하나씩 부품으로 개발하여 완성하는 방법 SOA(Service Oriented Architecture) 서비스 지향 구조 개발자 입장에서의 개발이 아니라 실제 현식의 업무를 기준으로 개발 그저 용어일 뿐, ..

mint*
'Spring/객체지향' 카테고리의 글 목록