절차지향과 객체지향 프로그래밍 패러다임의 진화 과정에서 애플리케이션이 점점 커지면서 그 코드가 복잡하고 이해하기 힘들며 변경에 불리했던 절차지향 프로그래밍에 단점을 해결하고자 객체지향 프로그래밍이 탄생하였다. 두 패러다임은 다양한 차이가 존재 하지만 이 글은 캡슐화와 정보은닉 내용을 중심으로 살펴본다. 절차지향 프로그래밍 방식의 단점 1. 데이터와 그 프로세스가 흩어져 있어 데이터 구조 변경이 생겼을 때 흩어져 있는 프로세스들을 찾아 수정하기 힘들다. 2. 데이터를 다양한 프로세스들에서 쉽게 참조할 수 있다보니 데이터 구조 변경시 수정 해야할 프로세스가 너무 많았다는 단점있다. 위와 같은 절자치향 패러다임의 단점을 캡슐화와 정보은닉을 통해 해결하였다. 캡슐화 캡슐화는 데이터와 그 로직(method)를 클..
DAO ( Data Access Object ) 정의 DAO의 풀 네임은 Data Access Object 이다. 이름 그대로 데이터베이스에 접속하는 객체이다. 데이터베이스 접속 이라는 역할을 가진 다 수의 로직을 하나의 객체로 모아 관리가 쉽도록 해준다. VO ( Value Object ) 정의 값이 같은면 동일하다고 간주되는, 식별성 없는 객체 (예 : Address, Color ) JPA의 Value Type 혹은 일급 컬렉션 역시 Value Object의 한 종으로 포함 됨. DTO ( Data Transfer Object ) 정의 레이어, 네트워크등 데이터가 이동할 때 Data Holder 역할. Why? 원격 호출 시, 여러 데이터를 하나씩 보내는 것은 네트워크 호출및 코드의 가독성에 부정적인..
오버라이딩 (Overriding) Overriding? 상위 클래스(부모 클래스)의 메소드와 동일한 시그니처의 메소드를 하위 클래스(자식 클래스)에서 구현한 것을 얘기한다. 이렇게 다양한 메서드가 있을 때 실제 생성된 객체에 구현된 메소드를 호출한다. 오버라이딩 조건 오버라이딩하는 메서드를 가진 클래스와 상속 혹은 구현관계에 있어야 한다. 메서드의 시그니처와 리턴타입을 가져야 한다. 부모클래스의 메서드와 접근제어자는 다를 수 있지만, 접근 제어자의 범위가 확장되어야 한다. Why? 타입(Type)은 표현할 수 있는 방법이라고 할 수 있다. 예를 들어 개와 인간과 같은 포유류 들은 젖샘이 있어 수유를 한다는 공톰점을 공유한다. 또한 개와 인간은 모두 걷는다 하지만, 개는 네 발로 걷고 우리는 두 발로 걷는..
SOLID 로버트 C.마틴이 제시하고 마이클 페더스가 정리한, 객체지향 설계 5원칙 SRP, OCP, LSP, ISP, DIP 단일 책임 원칙( SRP: Single Responsibility Principle) 하나의 객체에 하나의 책임만 부여해야 한다. 상세 하나의 객체에 여러 책임이 부여되면, 각 책임이 서로 변경에 영향을 받을 수 있는 의존성을 가지게 될 수 있다. 이 때문에, 하나의 객체는 하나의 책임만 부여하여 결합도를 낮춰야 한다. 개방 폐쇄 원칙 (OCP: Open Closed Principle) 확장에는 열려있고, 변경에는 닫혀있어야 한다. 상세 확장은 가능하게 하여, 애플리케이션 변화에 대응할 수 있어야 하지만, 그 변화가 지금 애플리케이션 전체에 영향이 가지 않도록 폐쇄되어 있어야 한..
- Total
- Today
- Yesterday
- 장애 해결기
- 뾰족함
- 객체 풀
- 클린 아키텍처
- pass by value
- OOP
- 메모리 단편화
- 수평 분할
- 외부 단편화
- 동적 타입 언어
- Object Pool
- ATDD
- 정적 타입 언어
- pass by reference
- Session
- java
- Clean Architecture
- 육각형 아키텍처
- SpringBoot 2.2
- pool
- multimap
- 메모리 파편화
- 내부 단편화
- 수직 분할
- Sticky Session
- Memory Fragmentation
- 세션 불일치
- 컴포짓 패턴
- RestAssured
- 동적 디스패치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |