🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 데코레이터 패턴 - 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP) 장식하다라는 의미의 데코레이터 패턴은 프록시 패턴과 유사한 형태를 가지고 있지만 반환값을 가진다는 부분에서 차이점을 보인다. 프록시 패턴 제어의 흐름을 변경하거나 별도의 로직 처리를 목적으로 한다. 클라리런트가 받는 반환값을 특별한 경우가 아니면 변경하지 않는다. 데코레이터 패턴 클라이언트가 받는 반환값에 장식을 더한다. 데코레이터 패턴 - 적용 전 public interface IService { public abst..
빌드 관리 도구? 빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다. 빌드는 코드를 사용 하거나 실행 가능한 형태로 컴파일링, 링킹, 패키징 하는것을 포함한다. 기본적으로 빌드 자동화는 아래와 같은 정형화된 다양한 작업을 스크립팅하거나 자동화 하는 행위이다 종속성 다운로드 소스코드를 바이너리코드로 컴파일 바이너리 코드를 패키징 테스트 실행 프로덕션 시스템에 배포 Maven Maven은 Java용 프로젝트 관리도구로 Apache의 Ant 대안으로 만들어졌다. 빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계를 pom.xml파일에 명시한다. Maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한다음, 로컬시스템의 캐시에 모두 저장한다. 예를 들어, ..
🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 프록시 패턴 - 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP) 프록시는 대리자/ 대변인의 역할을 수행하는 존재를 말한다. 디자인 패턴에서의 프록시는 서비스 메서드의 반환값에 가감하지 않는 것이 특징이다. 다만, 제어의 흐름을 제어하거나 다른 로직을 수행하기 위해 사용하는 패턴이다. ☄ 프록시 패턴 - 전 public class Service implements IService { public String runSomething() { return "서비스 짱!!!"; } } publi..
🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 어댑터 패턴 - 개방 폐쇄 원칙(OCP) 서로다른 두 인터페이스 가이에 통신이 가능하게 하는 것이 가능하다면 어떨까? 이미 나 또한 여러 프로젝트를 하면서 경험한 내용 패턴인데 주로 DBMS를 연결하는 JDBC가 어댑터 패턴을 이용해 다양한 DB 시스템을 단일한 인터페이스로 조작할 수 있게 해주기 때문이다. 이미 앞선 SOLID 포스팅에서 JDBC와 JRE에 대한 이야기를 했으며 이 개념은 어댑터 패턴까지도 사용된다. 즉, 어댑터 패턴은 OCP를 활용한 설계패턴 이라고 할 수 있다. 객체지..
🚀 다형성에서 빠질 수 없는 개념 추상화는 어떠한 객체에 대한 공통 요소를 추출하는 과정 으로 배웠다. 그러나 구체적인 행위를 구현하는 것이 아닌 메소드의 이름만 명시하고 하위 클래스에서 그 행위를 구현하도록 JAVA는 약속했다. 이렇게 행위를 구현화 하는데 필요한 절차가 오버로딩 , 오버라이딩 이라고 하는 것이다. 🌠 오버라이딩 Ride : (말, 자동차 등에) 타다 오버라이딩에 대해서는 상속과 추상화를 배웠다면 익숙한 어노테이션 일것이다. 상위 클라스의 추상메소드를 하위 클라스에서 구체화하는 과정으로 이해하면 충분하다 생각한다. abstract class Animal { void sound() {} } class Dog extends Animal { @Override public void sound(..
목차 내부클래스 내부 클래스의 종류 익명 클래스 내부클래스 내부 클래스안 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 이러한 내부 클래스는 외부 클래스에 대해 두 개의 클래스가 서로 긴밀한 관계를 맺고 있을 때 선언 가능하다. 외부 클래스 내부의 각각의 내부 클래스의 멤버들 간의 접근이 자유로우며 불필요한 클래스를 감춰서 코드 복잡성을 줄일 수 있다. 내부 클래스에서 외부 클래스의 멤버에 손쉽게 접근할 수 있다. 서로 관련 있는 클래스를 논리적으로 묶어서 표현함으로써, 코드의 캡슐화를 증가 외부에서는 내부 클래스에 접근할 수 없으므로, 코드의 복잡성을 줄일 수 있다. class OutterClass{ class InnerClass{ } } 내부 클래스의 종류 정적 클래스 인스턴스 클래스 지역..
👱♀상속를 공부하면 따라오는 것 객체 지향 프로그래밍(OOP)의 특성 중 하나인 상속은 상위 클라스의 기능을 하위 클라스 에서도 가능하도록 부여받는 것으로 확장성, 유연성, 재사용성의 기능을 높여준다. 상속을 공부한다면 추상화를 볼 수 있을 것이고 인터페이스를 공부하게 될 것이고 오버라이딩, 오버로딩 까지 같이 공부하게 된다. 나는 두 기초적인 지식에서 정리가 되지 않았고 이번 기회로 정리하고자 한다. 🚀 abstract 추상 클래스를 알기 전에 추상화에 대한 오해를 풀고 가자 ☄ 추상화 JAVA에서 추상화는 특별한 용어는 아니다. 그저 국어 표현에서 말하는 추상은 실체 간에 공통되는 특성을 추출한 것으로 정리되는 할 수 있는데 개발자가 어떤 객체의 공통되는 특성을 뽑아내어 하나의 공통 객체로 만들어 ..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ SRP(Single Responsibility Principle) : 단일 책임의 원칙 "어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다." 하나의 클래..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ OCP(Open Closed Principle) : 개방 폐쇄 원칙 SW 엔티티(클래스, 모듈, 함수)는 확장에 대해서는 열려있어야 하며 변경에 대해서는 닫혀있어야..
🚀 OOP를 올바르계 설계해 나가는 원칙 OOP의 4대 특성 캡슐화, 상속, 추상화, 다형성은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool 같은 역할이 된다. 도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다. OOP를 기반으로 설계하는 방식을 OOD (Object Oriented Design)이라고 하며 설계 방법을 구체화 하여 정리한 원칙이 SOLID가 되는 것이다. 🌠 SOLID 원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴이 확립한 개념이다. ☄ DIP(Dependency Inversion Principle) : 의존 역전 원칙 자신보다 변하기 쉬운 것에 의존하지 마라 아래 그림에서는 자동차 클래스가 스노우..
- Total
- Today
- Yesterday
- kakao
- security
- 알고리즘
- 매트랩
- 백준
- ajax
- 자격증
- 스프링부트
- C언어
- 프로그래머스
- Algorithm
- java
- 릿코드
- 스프링
- Spring
- 면접
- spring-cloud
- 그래프
- OOP
- 수학
- Matlab
- Solid
- JPA
- springboot
- interview
- nginx
- 자바
- CS
- 디자인패턴
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |