일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Open Closed Principle
- 스택메모리
- solid
- Java
- Runtime data Area
- 단일책임원칙
- 개방-폐쇄 원칙
- 객체지향
- Native Method Stack
- Spring
- 자바 heap
- Class Loader
- 스택
- 개방폐쇄원칙
- Single Responsibillity Principle
- Data Structure
- 객체지향 설계 5원칙
- stack메모리
- Execution Engine
- 자바
- 실행 엔진
- CS
- 자료구조
- pc register
- Spring SOLID
- Heap
- 단일 책임 원칙
- Stack
- JVM
- 의존성 역전 원칙
- Today
- Total
목록Framework/Spring (6)
Juuunew 살아남기
스프링 컨테이너 Spring Framework는 스프링 컨테이너를 통해 객체(Bean)들을 관리한다. Spring Framework에서 Bean은 객체를 말한다. ApplicationContext 인터페이스를 스프링 컨테이너라 한다. BeanFactory 인터페이스를 상속받은 하위 인터페이스 BeanFactory가 제공하는 기능 외 자원 처리 추상화, 메시지 및 국제화와 이벤트 지원 등을 제공 XML 기반 방식과 어노테이션 기반의 자바 설정 클래스로 생성가능. 어노테이션 기반을 살펴보면 Controller - @Controller, @RestController Service - @Service Repository - @Repository 해당 어노테이션들의 내부를 타고 들어가다 보면, @Component..
의존성 역전 원칙 - DIP 프로그래머는 "추상화에 의존해야지, 구체화에 의존하면 안된다." 쉽게 이야기해서 구현 클래스에 의존하지 말고, 인터페이스에 의존하라는 뜻 역할과 구현을 철저하게 분리할 것. 쉽게 예를 들면 현대의 소나타, 아반떼, 싼타페 들은 자동차의 모델명이다. 그럼 여기서 자동차는 인터페이스가 될 것이고 소나타, 아반떼, 싼타페 등 모델들은 자동차 라는 인터페이스를 구현한 클래스 라고 볼 수 있다. 계속 예제로 사용하였던 서비스센터의 코드를 다시 한번 보자. public class User { private final Laptop needRepair; public User(Laptop needRepair) { this.needRepair = needRepair; } } // Service..
인터페이스 분리 원칙 - ISP 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다. 인터페이스가 명확해지고, 대체 가능성이 높아진다. 분리하면 정비 인터페이스 자체가 변경되어도 운전자 클라이언트에 영향을 주지 않음 클라이언트의 관심사에 따라 알맞게 인터페이스를 분리해주어야 하는 인터페이스 분리 원칙은 어떻게 보면 단일 책임 원칙과 상당히 유사하다고 생각된다. 단일 책임 원칙과 개방-폐쇄 원칙에서 예시로 들었던 서비스 센터를 다시 한번 예시로 들어보려 한다. public interface ServiceCenter { /** * 노트북 */ // 키보드 void keyboard(); // 모니터 void monitor(); // 트랙패드 void trackpad(); /** * 스마..
리스코프 치환 원칙 - LSP (Liskov Substitution Principle) 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다. 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다. 인터페이스가 명확해지고, 대체 가능성이 높아진다. 부모 클래스를 상속하는 자식 클래스는 부모 클래스의 규약을 무시하거나 오버라이딩하는 것을 자제해야 한다. 가장 많이 보이는 정사각형과 직사각형 예제를 함께 살펴보자. 아래 직사각형 객체가 있다. 직사각형의 너비와 높이를 get/set 할 수 있으며, 너비와 높이를 곱하여 자신의 넓이를 구하는 메서드가 존재한다. // 직사각형 Class public class Rectangle { prot..
개방-폐쇄 원칙 - OCP (Open Closed Principle) 확장에는 열려있고, 변경에는 닫혀있는 기존의 코드를 변경하지 않으면서(Closed), 기능을 확장할 수 있도록(Open) 설계해야한다. 다형성을 활용해 볼 것. 단일 책임 원칙에서 예시로 들었던 서비스센터를 이어서 활용해 보겠다. // ServiceCenter 인터페이스 public interface ServiceCenter { public void repair(); } // LaptopServiceCenter 구현 클래스 public class LaptopPart implements ServiceCenter{ @Override public void repair() { System.out.println("노트북 수리"); } } // ..
SOLID 원칙은 클린 코드의 저자 로버트 마틴이 정리한 객체지향 설계의 다섯 가지 원칙으로 모듈화, 캡슐화, 확장 용이성, 구성 용이한 컴포넌트 등을 고려한 소프트웨어의 구축을 위한 설계이다. SRP (Single Responsibility Principle) : 단일 책임 원칙 OCP (Open Closed Principle) : 개방-폐쇄 원칙 LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 DIP (Dependency Inversion Principle) : 의존 역전 원칙 의 앞글자들을 따와 SOLID 원칙이라 부른다. 단일 책임 원칙 - SRP 소프트웨어 설계 시..