본문 바로가기

분류 전체보기

(76)
[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 를 사용해..
디자인 패턴(Design Pattern) - 목적에 따른 분류 디자인 패턴이란? (소프트웨어) 디자인 패턴이란 특정 문맥에서 공통적으로 발생하는 문제에 대해 쓰이는 재사용 가능한 해결책 목적별로 일정한 패턴이 제시되어 있음 완전한 정답이 되는 알고리즘과 달리 현재 상황에 맞춰 최적화된 패턴을 결정하여 사용하는 것이 좋음 대표적으로 구체화된 디자인 패턴은 GoF(Gang of Four) 에서 제시한 23개의 패턴이 있음 * Gang of Four : Erich Gamma, Richard Helm, Ralph johnson, john Vissides, 총 4명을 일컬음 디자인 패턴의 장점 개발자 간의 원활한 협업이 가능 소프트웨어의 구조를 파악하기 용이함 재사용을 통해 개발 시간 단축 설계 변경이 있을 경우 비교적 원활하게 조치가 가능 디자인 패턴은 개발자 세계에서 공..
[JAVA] 리플렉션 API 정리 리플렉션이란? Reflection allows us to inspect or/and modify runtime attributes of classes, interfaces, fields, and methods. This particularly comes in handy when we don't know their names at compile time. Additionally, we can instantiate new objects, invoke methods, and get or set field values using reflection. 클래스에 대한 메타 정보로 런타임시 동적 프로그래밍을 하는 개념인 것 같다. 동적 프로그래밍 하기 위한 객체의 정보에 접근 하기 위해서는 Class 클래스가 사용되..