분류 전체보기 (78) 썸네일형 리스트형 [JAVA]옵저버 패턴 예제 옵저버 패턴으로 트위터 같은 커스터 마이즈된 알림 시스템을 설계하고 구현할 수 있다. 다양한 신문 매체(뉴욕 타임즈, 가디언, 르몽드)가 뉴스 트윗을 구독하고 있으며 특정 키워드를 포함하는 트윗이 등록되면 알림을 받고 싶어한다. 우선 다양한 옵저버를 그룹화할 Observer 인터페이스가 필요하다. Observer 인터페이스는 새로운 트윗이 있을때 주제(Feed) 가 호출할 수 있도록 notify라고 하는 하나의 메서드를 제공한다. public interface Observer { void notify(String tweet); } public class NYTimes implements Observer { @Override public void notify(String tweet) { if(tweet !.. [JAVA] stream으로 데이터 필터링 하기 요즘 스트림을 공부하고 있다가 SQL 문에서가 아닌 자바단에서 필터링을 동적으로 할 수 있는 방식을 만들어 보았다. null 일 경우에는 체크가 되지 않고(true 로 필터링 되지 않음) null 이 아닐 경우에는 체크하여 각 필드와 같은 데이터를 리스트로 반환한다. 스트림을 사용하면 for문과 달리 직접 요소를 반복하지 않아 편리하고 가독성이 좋은 것 같다. 아래는 멤버리스트를 조회하는 클래스인데 조건 필드에 데이터가 있을 경우에만 비교해서 리스트를 반환해준다. public class MemberTest { private List members; public MemberTest(List members) { this.members = members; } public List getByRequest(Str.. [Spring boot] Spring actuator 사용하기 - health check, healthIndicator custom 1. 스프링 액추에이터란? 스프링 액추에이터는 애플리케이션에 대한 모니터링 정보를 엔드포인트를 통해 제공한다. db, matrix 등의 상태 정보를 제공하며 만약 actuator/health(기본값) 을 통해 접근하면 애플리케이션의 건강 상태를 (up, down.. 등으로) 제공 받을 수 있다. 또한 다양한 설정을 통해 사용자에 맞게 수정 가능하다. Actuator endpoints let you monitor and interact with your application. Spring Boot includes a number of built-in endpoints and lets you add your own. For example, the health endpoint provides basic app.. [JAVA] 람다식 실용예제 - 실행 어라운드 패턴 실행 어라운드 패턴 자원처리에 처리하는 **순환 패턴 Recurrent pattern 은 자원을 열고, 처리한 다음에, 자원을 닫는 순서로 이루어 진다. 설정과 정리 과정은 대부분 비슷하다. 실행 어라운드 패턴은 실제 자원을 처리하는 코드를 설정과 정리 두 과정이 둘러싸는 형태를 갖는다. 아래의 코드에서 기존의 설정, 정리과정은 재사용하고 processFile 메서드만 다른 동작을 수행하도록 명령 할 수 있다. 1단계 : 동작 파라미터화 public String processFile() throws IOEception { try(BufferedReader br = new BufferedReader(new FileReader("data.txt"))) { return br.readLine(); } } 2단계.. [Book] 햇빛은 찬란하고 인생은 귀하니까요 - "선택할 수 있는것과 선택할 수 없는 것" -1- 뜻대로 할 수 없는 일이 많다. 부모를 선택하는 일. 국적을 선택하는 일 우리는 자신을 구성하는 모든 요소를 거의 선택할 수 없다. 죽는 날을 선택하는 것도 그러하다. 물론 스스로 목숨을 끊는 비극도 있을 수 있고 이민을 떠나 귀화하는 방법도 있겠지만 애초에 태어난 국적은 어찌할 수가 없다. 누군가는 부유한 나라의 국적을 갖고 태어나 세계 어디를 가나 대접을 받고 누군가는 가난한 나라의 일원으로 태어나 지구촌 곳곳에서 천덕꾸러기 취급을 당한다. 작은 고무보트 한 척에 생사를 걸고 유럽으로 건너와 구걸 행각을 벌이는 난민을 볼 때는 대상이 없는 분노가 올라온 나머지 무력감마저 든다. 누구나 이런 삶을 선택하고 싶어 하지 않는다는 걸 알기에. 피부색도, 부모도, 국적도 아무것도 선택할 수 없었던.. [JAVA] 전략 패턴 - 동작 파라미터화 [출처 : 스프링 인 액션] 우리가 어떤 상황에서 일을 하던 소비자 요구사항은 바뀐다. 예를들어 농부가 재고 목록 조사를 쉽게 할 수 있도록 돕는 애플리케이션이 있다고 가정하자. 농부는 이렇게 말할 것이다. "녹색 사과를 모두 찾고 싶어요" 첫번째 시도 : 녹색 사과 필터링 enum Color { RED, GREEN} public static List filterGreenApples(List inventory, Color) { List result = new ArrayList(); for (Apple apple : inventory) { if(apple.getColor().equals(color) { result.add(apple); } } return result; } 그 다음날 농부는 이렇게 말할 수.. [JAVA] JDK 버전별 정리 JDK 버전별 변화와 특징을 정리하였다. 1996년 자바 개발 키트(JDK 1.0) 1997년 자바 1.1 자바 1.0 스레드 락, 심지어 메모리 지원했지만 저수준 기능을 온전히 활용하기 어려움이 있다. JDK 5 특징) 자바 5는 이전 버전과 비교해서 언어적으로 큰 변화가 있었다, 스레드 풀, 병령 실행 컬렉션의 강력한 도구 도입 릴리즈) 1. 제너릭 자바 5의 가장 중요한 신규 기능이다. 기존에 컬렉션 프레임워크를 이용해 발생할 수 있는 ClassCastExption 을 컴파일 시간에 검증 할 수 있다. 이러한 컴파일 검증 기능 뿐만 아니라 코드에 대한 데이터를 명확히 해서 가독성을 높일 수 있다. 2. for 루프 개선 for each 구문을 사용할 수 있다. 3. 컨커런스 API API 를 사용해.. 이전 1 2 3 4 5 6 ··· 12 다음