본문 바로가기

728x90

OOP

(6)
[Design Pattern] Creational - 팩토리 메소드 패턴 (Factory Method Pattern) Java 기준으로 객체를 생성할 때는 new 연산자를 통해서 Class Template 을 사용하여 Object Instance 를 찍어낸다. Interface 역할체를 생성할 때는 다음과 같은 연산을 통해서 구현체를 지정하기도 한다. Pizza a = new CheesePizza(); Pizza b = new PepperoniPizza(); 이와 같은 방식은 해당 로직이 있는 클래스에서 Concrete 구현체인 CheesePizza 와 PepperoniPizza 에 대한 의존성이 발생하게 된다. 만약 의존성 없이 이를 해결할 수 있다면, 유지 보수에 훨씬 용이할 것이다. 다음과 같이 Type 을 받아서 생성만을 전담하는 Class 를 만들어보자. public class SimplePizzaFactory..
[UML] Statechart Diagram 에 대해 알아보자 Statechart Diagram 이란 용어에서도 알 수 있듯이, 상태 기반의 다이어그램이다. 이 다이어그램은 State 상태가 정해져 있는 (Enumeration 이 많이 등장하는) Finite State Machine 이라고 많이 부르는 다이어그램이다. 참고로 다음에 또 나올 Activity Diagram 도 있는데, Activity Diagram 은 Flow Chart 이다. Statechart 와 연관성이 있는 부분은, Flow Chart 에서의 한 State 가 Statechart Diagram 에서는 한 Flow (실선) 으로 매핑된다 (다음에 더 연관지어서 알아보게 됨). Statechart Diagram 1) 기본 개념 1_1) State State 란 state machine 의 상태로,..
[UML] Sequence Diagram 에 대해 알아보자 개발할 것도 많은데.. 그려야 할 UML 들이 참 많은 것 같다. 하지만 그만큼 중요한 영역이니, SW 설계의 UML 중 가장 중요한 Diagram 중 하나인 Sequence Diagram 에 대해 더 알아보자. Interaction Diagram 에는 4가지 종류가 있는데, Sequence Diagram, Timing Diagram, Communication Diagram, Interaction Overview Diagram 이 있다. 사용하고자 하는 Interaction Diagram 은 Functional Requirement(Use Case) 별로 하나씩 그리게 된다. (Class Diagram 이 관계에 집중했다면, Interaction Diagram 은 Class 간 Communication ..
[UML / OOP] Class 간 관계에 대하여 SW 설계에서 UML 을 공부하다보면 등장하는 5가지 Class 관계가 있다 (OOAP). 이 Class 관계도는 SW 를 설계할 때 어떤식으로 SW를 설계할지에 대해서 확실한 그림을 잡아주기 때문에 상당히 중요한 역할을 하고, 커뮤니케이션에서도 중요한 역할을 하는 것 같다. 개발 실무적인 영역으로만 학습을 많이 했다면 처음 들어보는 관계일 수도 있지만 절대 어려운 개념들은 아니니, 한 번 이해해보는 기회가 되면 좋을 것 같다. 이제 배울 내용은 SW를 구현하기 전 설계 단계에서 Class 간 관계를 설계해 놓을 때 많이 사용하고 표시해두는 관계이다. 실무적인 공부만 하다가 다음과 같은 정보를 많이 접하는 것 같았다. Class 들이 서로 의존한다 == Class 코드 안에 다른 Class 가 등장하여 ..
[Java] OOP, 객체 지향의 5대 원칙 (SOLID) Java 로 프로그램을 하게 될 경우, Java 의 언어적 특성인 객체지향 (OOP) 특성을 잘 반영하는 것이 중요합니다. 결국 모든 앱은 유지 보수 측면이 매우 중요한데, 이 OOP 측면을 잘 지키면, 유지 보수 및 관리에 큰 이점을 가져갈 수 있기 때문입니다. 이것이 어떻게 보면 Java 를 사용하는 이유라고 볼 수도 있을 것 같습니다.  객체 지향 설계에서 앱을 더욱 가독성 있고, 유연하고, 유지 보수 측면에서 유리하게 설계하기 위해서 제안되는 다섯가지 원칙을 SOLID 라고 합니다. Rober C. Martin 에 의해 제안된 이 다섯가지 원칙을 살펴보겠습니다.  굳이 다섯 포스트 만들면서 하나하나 까야할 내용은 아닌 것 같습니다. 차피 직접 설계해보시지 않으면 완전한 자신의 것이 되기는 힘들고,..
[Spring 기본] Spring을 시작하며 Spring 개발을 시작한지 거의 2년이 다되어 가지만, 아직 Spring 이란 친구와 너무 먼 사이 같다고 느끼는 찰나에 해당 강의를 만나게 되었습니다. 스프링 핵심 원리강의는 어느정도 현업을 하다가 와서 그런지 정말 잘 짜여진 강의 라고 느껴졌고, Spring 이 어떤 친구인지 조금 더 자세히 알아볼 수 있는 시간이 되었던 것 같습니다. 항상 정리를 하며 복습을 해야 진짜 공부한 것이라고 생각해서, 포스트를 작성하게 되었으니, 그냥 글 읽듯이 쭉쭉 읽으시며 조 금은 도움이 되었으면 좋겠습니다. Spring Spring 이란 Java 언어를 기반으로 한 웹 프레임워크 이지만, 웹 뿐만 아니라 (아직 웹 외의 프로그램은 본 적 없습 니다) 다양한 앱을 만들기 위한 Framework 입니다. Spring ..