UML(Unified Modeling Language) 훑어보기 디자인 패턴을 보면서 UML을 볼 일이 많아졌는데 긴가민가한 부분들이 있어서 다시한번 정리하는 시간을 가지려고 한다. 디자인패턴 강의를 들을때 'UML도 결국 언어다.' 다른 개발자들과 소통하기 위해 사용하는 도구이다. 라는 말이 기억에 남는다. UML을 공부하면 전세계 개발자들이 공유한 설계도 이해할 수 있겠지. 이는 곧 실력 향상으로 이어질것이라 믿는다. is-a has-a 관계? is-a는 흔히말하는 상속관계이다. has-a는 is-a와 반대되는 의미로, 속한다, 가진다 정도로 보면될듯. 화살표 방향이 이해가 안가. 화살표가 나아가는곳이 주체가 되고, 화살표가 가리키는 요소가 대상이 된다. A가 B를 참조한다. 화살표의 모양이 의미하는것이 무엇일까? 클래스간의 관계 1) Generalization .. 2021. 8. 10. Concurrency Patterns Single Threaded Execution 한번에 한 Thread만 접근할 수 있도록 하자 = 이런 영역을 임계영역이라고 한다. JAVA에서는 synchronized 키워드로 임계영역 구현 가능. Thread간의 Conflict 발생 있음. (하나의 Thread가 lock을 점유해서 다른 Thead들이 기다리는 상태) LockObject Guarded Suspension 처리 될때까지 기다린다. wait(), notify() 메서드를 이용해서 다른 Thread의 작업이 끝날때까지 기다렸다(wait) 작업이 끝났다는 알림이 오면(notify) 실행한다. https://en.wikipedia.org/wiki/Guarded_suspension Balking Guarded Suspension와 비슷하지만 다.. 2021. 8. 9. Java Synchronization https://www.javatpoint.com/synchronized-block-example Synchronized Block in Java - javatpoint Synchronized block in java with examples and difference between java synchronized method and synchronized block with examples on static synchronization, synchronized method, synchronized block, inter-thread communication etc. www.javatpoint.com * Thread 해당 예제에서, 두개의 쓰레드는 하나의 객체를 공유한다. ** 각각의 고유한 객체를 가지면.. 2021. 8. 6. 재사용 가능한 디자인 패턴 기반 코딩기술 강의 정리 - Abstract superclass Superclass = 상위클래스. 부모클래스 http://tutorials.jenkov.com/java/abstract-classes.html Abstract Class는 바로 인스턴스화 될수 없다. Abstract Class는 서브클래스에서 구현해야하는 Abstartc Method와, 로직이 구현된 Method를 동시에 가진다. (이런 점이 인터페이스와는 다르다!) 어떻게 쓸 수 있을까! 공통적으로 실행하는 로직을 묶을수 있다. - 예를들어.. 소켓통신 API를 구현한다고 했을때, 소켓을 열고, 닫고하는 부분을 추상클래스의 메서드로 구현해놓고. 서브클래스에서 비즈니스 로직만 구현을 하면 API 가져다 쓰는 입장에서는 소켓통신하는 부분을 신경쓰지 않아도 된다. public abstract class M.. 2021. 8. 5. 재사용 가능한 디자인 패턴 기반 코딩기술 강의 정리 - Interface Interface Problem 사실 나는 interface에 대해 이렇게 이해했었다. Solution // FilenameFilter는 interface이고 accept메서드 하나를 가진다. public void clientCode(){ FileDialog dialog = new FileDialog(parent, "select - ", FileDialog.LOAD); //Interface. FilenameFilter filter = new FilenameFilter(){ @Override public boolean accept(File dir, String name) { return name.endsWith(".xml"); } }; //client Code dialog.setFilenameFilter(.. 2021. 8. 2. 재사용 가능한 디자인 패턴 기반 코딩기술 강의 정리 - Delegation Pattern In Java에서 소개하는 디자인패턴은 GoF보다 비교적 간단하다. GoF에서의 디자인 패턴은 보다 큰 규모의 프로젝트에서 사용할수 있을것 같은데, PiJ에 있는 패턴은 지금 알게 모르게 사용중이거나, 바로 업무에 적용할 수 있을정도의 소소한 패턴들이다. 하지만 강의에서는 이런 소소한 패턴들을 확장시켜 나가면 결국 GoF처럼 규모있는 패턴으로 발전하게 된다고 한다. Delegation 위임 Problem A클래스에서 B클래스의 메서드를 사용할 수 있는 방법은 어떤것이 있을까? 가장 쉽게 떠올릴 수 있는게 상속이겠지. 아래의 예시를 보자. 엄마, 개발자, 아내, 국민은 각각의 doJob() 메서드를 가진다. 그리고 각자 자기의 일을 한다. public class Person { private.. 2021. 8. 2. 이전 1 2 3 4 5 6 7 ··· 47 다음