일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- proxy pattern
- SQL
- 트랜잭션
- 스프링부트
- 자바
- 객체지향프로그래밍
- 관점지향프로그래밍
- spring boot
- Spring Security
- request
- network
- Filter
- aop
- 인터셉터
- Spring
- 스프링
- MYSQL
- aspect
- response
- Interceptor
- java
- 디자인패턴
- 스프링 시큐리티
- http
- OOP
- git
- exception
- mybatis
- Redis
- RestControllerAdvice
- Today
- Total
목록객체지향프로그래밍 (5)
장쫄깃 기술블로그
객체 지향 설계 5원칙 - SOLID 객체 지향 설계의 정수라고 할 수 있는 5원칙이 집대성되었는데, SOLID 원칙이다. SOLID는 각 5가지 원칙의 앞 머리 알파벳을 따서 부르는 이름이다. SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 SRP(Single Responsibility Principle) : 단일 책임 원칙 어떤 클래스를 변..
상속(Inheritance)이란? 상속은 객체들 간의 관계를 구축하는 방법이다. 상속은 기존 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것이다. 하위 클래스들에서 사용할 공통된 메소드를 상위 클래스가 제공해주고, 하위 클래스들은 상위 클래스에서 없는 기능을 추가하거나 재정의한다. 기존 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것 상속의 장점 1. 코드를 재사용할 수 있다. 하위 클래스들이 공통으로 사용할 기능을 상위 클래스에 적용하고, 하위 클래스는 필요할 때 기능을 추가하거나 재정의 하면 되기 때문에, 공통 코드를 재사용할 수 있다. public class Bird { public void fly() { System.out.println("푸드덕 푸드덕"); }..
캡슐화(Encapsulation)란? 객체의 속성(data fields)과 행위(methods)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉한다. 캡슐화는 객체 내부의 속성이나 행위를 외부에서 직접 접근할 수 없게 하는 것이다. 흔히 은닉과 혼동하는 경우가 많은데, 은닉화란 캡슐화를 통해 얻어지는 '실제 구현 내용 일부를 외부에 감추는 효과'이다. 객체의 속성과 행위를 묶으면 응집도가 올라가므로 자율적인 객체가 된다는 장점이 있다. 자율적인 객체가 되면 다른 객체의 영향을 덜 받기 때문에 자신의 상태를 스스로 잘 처리할 수 있게 된다. 그런데 이 상황에서 캡슐화가 이루어지지 않으면 외부에서 내부 속성에 접근하여 사용할 수 있기 때문에 결합도가 높아지고 응집도가 낮아지게 된다. 이렇게 되면 ..
추상화(Abstraction)란? 컴퓨터 과학에서 추상화는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려내는 것을 말한다. 추상화는 이처럼 구체적인 사물들 간의 공통점을 취하고 차이점을 버리는 일반화를 사용하거나, 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것을 말한다. 핵심은 불필요한 코드를 제거하고 중요한 부분을 살려 단순하게 만드는 것이다. 추상화 예제 추상화란 공통적인 부분을 취하고 차이점을 버리는 것이라고 했다. 예를 들어 SuperCar, SnowCar, FastCar가 있다고 하자. public class SuperCar { public void move() { System.out.println("슈퍼하게 달립니다."); } } ..
객체 지향 객체 지향이란 현실 세계의 객체 모델을 바탕으로 프로그램을 구조화하고 개발하는 프로그래밍 기법을 말한다. 전통적인 프로그래밍 언어는 크게 객체 지향 프로그래밍 언어(Object Oriented Programing Language; OOP)와 절차 지향 프로그래밍 언어(Procedure Oriented Programming Language; POP)로 구분된다. 이는 과거 프로그래밍 언어의 구조적 특징에 따른 분류이며, 최근에 널리 쓰이고 있는 프로그래밍 언어들은 기본적으로 객체 지향에 기반을 두고 있다. 자바의 경우 JDK8에서부터 이러한 최신 경향을 반영하기 시작했다. 절차 지향은 순서대로 진행되며 순서가 틀려서는 안되고 어느 한 부분이 오류가 나면 그다음부터 전체적으로 마비가 되는 순차적인..