일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자료구조
- Mendix
- Bruteforce
- algorithm
- 재귀
- 프로그래머스
- 트리
- 집합
- 자바
- 해시맵
- lcap
- git
- microflow
- 멘딕스
- MySQL
- SQL
- 반효경교수님
- 이분탐색
- 그래프
- 알고리즘
- 완전탐색
- 백트래킹
- dfs
- Recursion
- Sort
- 가중치없는그래프
- 매개변수 탐색
- 스택
- 정렬
- domain model
- Today
- Total
목록BackEnd/Spring (3)
mondegreen
IoC(Inversion of Control) 프로그램의 제어의 흐름을 직접 하는 것이 아니라 외부에서 관리하는 경우 제어의 역전이라고 한다. 여기서 프레임워크와 라이브러리의 차이도 알 수 있는데 만약 내가 작성한 코드가 직접 제어를 담당한다면 라이브러리이고 그렇지 않다면 프레임워크라고 할 수 있다. DI(Dependency Injection) 애플리케이션 실행 시점에 외부에서 실제 구현 객체를 생성한고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존 관계가 연결되는 것을 의존관계 주입이라고 한다. 객체 인스턴스를 생성하고 그 참조값을 전달해서 연결되는데 의존관계 주입을 사용함으로써 클라이언트 코드를 변경하지 않고 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있다. "정적인 클래스 의존관계..
1. SRP 단일책임의 원칙 기능을 변경했을 때 연계되는 변경이 많다면 단일 책임 원칙을 지키지 못한 것 -> 하나의 클래스는 하나의 책임만 가져야 한다. 2. OCP 개방폐쇄의 원칙 소프트웨어 요소는 확장에는 열려있고 변경에는 닫혀 있어야 한다. 즉, 다형성 특징을 활용해서 확장은 가능한 반면 변경은 없는 것을 말한다. 단, 스프링의 DI(컨테이너)를 함께 활용해야 가능하다. 3. LSP 리스코프 치환의 원칙 자동차의 경우 엑셀을 밟으면 앞으로 가는 기능을 구현해야 한다. 하위 클래스도 엑셀이라는 인터페이스를 상속받았을 때 앞으로 가는 기능을 구현해야 한다. 뒤로 가게 구현한다면 LSP 위반 -> 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 4...
스프링이란, 객체 지향 언어인 자바의 강력한 특징을 살려냄으로써 좋은 객체 지향 애플리케이션을 개발할 수 있게 돕는 프레임워크 (EJB로 개발할 당시에는 EJB에 의존적이었기 때문에 자바의 객체 지향 특성을 다 잃어버리는 한계가 있었음) 따라서 인터페이스(역할)을 안정적으로 잘 설계해야 클라이언트에게 영향을 주지 않고 기능을 다양하게 변경할 수 있다(구현) => 즉, 확장 가능한 설계라고 말할 수 있다.