-
몰입Books/자기계발 2020. 9. 14. 01:46
https://book.naver.com/bookdb/book_detail.nhn?bid=4320224 몰입 1 간절히 원하는 것을 이루기 위해 잠재력을 깨우는 '몰입'을 하라!뉴턴, 아인슈타인, 에디슨과 같은 과학자들, 워렌 버핏과 같은 투자자들, 빌 게이츠와 같은 세계적인 CEO들… 이들처럼 각자의 분 book.naver.com 몰입 - 황농문 지음, 요즘들어서 하나의 일에 집중을 잘 못하고 있는것 같다. 특히, 집중을 해야할 타이밍에 주변 환경에 눈을 돌리면서 불필요한 다른일(유튜브나 게임같은것들..)을 해버리기 일쑤고, 해야할 일에 쉽게 집중하지 못하는 문제가 있었다. 이런 문제를 안고있던 찰나, 컴퓨터를 하다가 우연히 내 방 책장 한 켠에 꽂혀있던 '몰입'이라는 책을 보았고, 이 책을 통해 혹시..
-
2. Observer Pattern카테고리 없음 2020. 4. 13. 13:04
1. 옵저버 패턴? 위키백과 정의) 옵저버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. 나만의 정의) 출판사(subject) + 구독자(observer) = 옵저버 패턴 출판사를 주제(subject), 구독자를 옵저버(observer)라고 부른다는 것만 외우자. 현실적인 예와 비교해보자면, 구독자들이 출판사에 구독을 신청하면, 출판사는 새로운 책이 출간될 때마다 구독자들에게 책을 나눠주고 구독자들이 구독을 원치않으면 구독을 취소할..
-
Filter, Interceptor 정리SW개발/Spring 2020. 3. 22. 21:52
이번에 개발중인 제품에서 토큰인증과 권한을 filter에서 모두 처리하면서 Error가 인증관련 문제로 나타나는 문제가 있었다. 그리고 이 부분은 결과적으로 Filter에서는 인증을, Interceptor에서는 권한체크를 담당하도록 구조를 변경하였는데, 이와 관련하여 Filter와 Interceptor가 각각 어떠한 일을 하는지 정리하고자한다. 1. 개요 클라이언트의 요청(servlet request)이 서버의 controller에 도달하기 전에 위의 그림과 같은 단계를 거치게 된다. 그냥 요청하면 컨트롤러에서 바로 처리해주면 될텐데 굳이 저러한 과정을 거치는 이유는 무엇일까? 생각해보면 간단하다. controller에 도착하기 이전에 미리 해주어야 할 것들이 있기 때문이다. 예를들어, 로그인을 할 때,..
-
Java Exception개발언어/Java 2020. 3. 16. 01:10
1. 개발자가 마주하는 Error 종류 Java의 Error에는 컴파일에러, 런타임에러, 논리적에러가 존재한다. 컴파일에러는 말 그대로 컴파일 과정에서 발생하는 에러이고, 런타임에러는 프로그램이 Run 중일때(Run-time) 발생하는 에러이다. 또한, 논리적 에러는 실제 정상적으로 코드가 잘 돌아가고 있지만, 개발자가 논리적으로 의도한 것과 다르게 동작하는 것을 의미한다. 2. Java의 Exception 우리는 여기서 분명하게 구분해야할 것이 있다. 바로 Error와 Exception이다. 우리는 보통 Exception을 예외처리라는 것으로 처리한다. 여기서 예외처리에서 예외(Exception)이라는 말은, 개발자가 예상 가능한 에러를 의미한다. 그리고 그 예상 가능한 것을 발생하지 않도록 처리하는 ..
-
예외 처리개발언어/Java 2020. 3. 15. 20:57
1. 예외(Exception)처리 방법 try { // 예외가 발생할 여지가 있는 코드영역 } catch (예외종류 참조변수) { // 예외가 발생하면 처리할 내용 } finally { // try-catch 블록이 끝나면 무조건 실행되는 영역 } 앞서 말했듯이, 예외는 예상 가능한 문제를 말한다. 그리고 우리는 위의 코드를 사용하여 예상 가능한 문제에 대한 대응을 할 수 있다. 위 코드에서 기억해야 할 점은, try 블록에서 예외가 발생하지 않으면 finally 블록만을 실행하고, try 블록에서 예외가 발생하면 catch 실행 후 finally 블록을 실행한다는 점이다. 아래의 예시를 보자. 위의 내용은 try-catch를 사용하지 않고 NullPointerException이 발생하는 코드인데, ar..
-
3. 데코레이터 패턴(Decorator Pattern)카테고리 없음 2020. 2. 26. 13:03
1. Class Diagram 1) 기본구조 2) 실제 사용예 2. Decorator Pattern? 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에, 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계 하는 것. 즉, 기본 틀은 만들어 놓고 여러가지를 추가할 수 있도록 설계된 디자인 패턴. 3. OCP (Open-Closed Principle) OCP(Open-Closed Principle)는 하나의 디자인 원칙이다. 그리고 이 디자인 원칙은 Decorator Pattern을 구성하는데 있어서 중요한 역할을 한다. OCP(Open-Closed Principle) 클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서..
-
2. 옵저버 패턴(Observer Pattern)카테고리 없음 2020. 2. 25. 13:05
1. Class Diagram 2. Observer Pattern? * 옵저버 패턴의 구성요소 출판사 + 구독자 = 옵저버패턴 출판사 = 주제(subject) 구독자 = 옵저버(observer) 옵저버 패턴의 구성요소만 외우자. 이걸 좀 더 자세하게 풀어서 이야기하면, 구독자들이 출판사에 구독을 신청하면, 출판사는 새로운 책이 출간될 때마다 구독자들에게 책을 나눠준다고 생각하자. 그리고 구독자들은 구독을 원치않으면 구독을 취소할 수도 있다는 것과 동일한 개념. 즉, 하나의 주제(Subject)객체에 여러 옵저버(Observer) 객체들이 구독을 신청(add)하면, 주제 객체는 변경사항이 생길때마다(update) 옵저버들에게 변경데이터를 전달한다. 그리고 옵저버들은 해당 데이터가 더 이상 필요하지 않다면 ..
-
1. Strategy Pattern개발기초/Design Pattern 2020. 2. 24. 12:54
0. Strategy pattern? 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있습니다. 1. Strategy pattern을 구성하는 3대 요소 1) 전략 메서드를 가진 전략 객체 2) 전략 객체를 사용하는 컨텍스트(전략 객체의 사용자/소비자) 3) 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트(제3자, 전략 객체의 공급자) 2. Strategy Pattern 예제 (출처: https://limkydev.tistory.com/84) Strategy.java (전략 인터페이스 정의) public interface Strategy { void runStrategy(); } Star..