전체 글

전체 글

    자바에서 제공하는 함수형 인터페이스

    UnaryOperator T의 파라미터 타입과 리턴타입을 갖는다. 추상메소드 apply를 가진다. Function T는 파라미터 타입, R은 리턴타입이다. 추상메소드 apply() 를 가진다. Predicate boolean을 리턴하는 함수형 인터페이스다. 추상메소드 test() 를 가진다. Consumer 리턴이 없는 형태이다. 추상메소드 accept() 를 가진다. Supplier 파라미터가 없는 형태이다. 추상메소드 get() 를 가진다.이를 이용해 Lazy Evalutioan이 가능하다. BiConsumer 파라미터를 두개 받는 Consumer, 리턴이 없다. BiFunction 파라미터를 2개 받고 리턴타입을 한개 받는다. BinaryOperation T타입으로 두개의 파라미터를 받고, T타입을..

    자바 스트림 기초 사용법

    Filtering 필터(filter)은 스트림 내 요소들을 하나씩 평가해서 걸러내는 작업을 수행. 인자로 받는 Predicate 는 boolean 을 리턴하는 함수형 인터페이스로 평가식이 들어가게 된다. Stream filter(Predicate

    git 기초 사용법

    git init : 현재 디렉터리 깃을 사용하도록 초기화 git status : 현재 디렉터리 하위에 존재하는 파일들의 상태를 확인 상태 종류: (untracked, unmodified, modified, staged) git add : 깃을 스테이지 상태로 변경(커밋하기 위해 추가된 상태) git commit -m "message" : 스테이지된 파일들 커밋 ("message" 에 커밋메세지 작성) git remote add origin : origin 이라는 명칭으로(관습상 origin 사용) 원격 서버 주소를 리모트 주소로 설정 git push origin : origin(remote저장소) 에 로컬에 commit된 내역들 push 브랜치 git branch : 브랜치 목록 확인 git branch..

    스프링 비동기 타임아웃 설정 변경

    스프링에서 DeferredResult 를 이용해 비동기로직 구성시 디폴트로 30초가량 초과하면 타임아웃으로 AsyncRequestTimeoutException 이 발생하는 것으로 보인다. 연결시간을 늘리기 위해 application.yml 에 spring.mvc.async.request-timeout 값 설정을 해주었지만 적용되지 않는다.. WebMvcConfigurer 를 상속받은, @EnableWebMvc가 적용된 스프링 mvc 설정파일에 아래 설정을 추가해주니 동작 되었다. @Override public void configureAsyncSupport(AsyncSupportConfigurer configurer) { WebMvcConfigurer.super.configureAsyncSupport(c..

    spring 예외 핸들링

    1. @ControllerAdvice, @RestControllerAdvice 를 적용한 전역 예외 핸들링 설정 클래스 @RestControllerAdvice public class GlobalExceptionHandler { //@ResponseStatus(HttpStatus.UNAUTHORIZED) @ExceptionHandler(value = ExpiredJwtException.class) public ResponseEntity handleBaseException(HttpServletRequest request, ExpiredJwtException e) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("token expired!"); } ..

    톰캣 멀티 인스턴스 생성 방법

    기본적으로 멀티인스턴스(Multi Instance) 를 사용한다는 것은 톰캣에서 공유 가능한 엔진부분은 공유하여 사용하고, 설정파일과 같은 부분은 별도로 생성하여 하나의 톰캣 엔진으로 여러개의 인스턴스를 띄우는 것이다. 톰캣의 Engine부분: bin, lib 톰캣의 Instance 부분: conf, logs, temp, work, webapps 여러개의 인스턴스를 띄우기 위해서는 "톰캣 Instance" 부분을 복사하여 사용해야 합니다. 1. 우선 멀티 인스턴스를 사용하기 위해 필요한 구조를 복사합니다. 저같은 경우에는 /home/app/tomcat8.5/instances 라는 디렉토리를 생성하고 하위에 instance1, instance2 디렉토리를 생성 하였습니다. cp -a conf /home/a..

    vue-cli 3.0대 이상에서 로컬 폰트 적용 방법

    vue-cli 에서 로컬에 다운받아놓은 폰트가 너~~어어어어~~~무 적용이 안되다가 되는방법을 찾아서 기록합니다... 1. src폴더 하위에 fonts 폴더 생성 2. 내가 적용하고싶은 폰트 fonts폴더 하위에 넣음 3. App.vue(가장 루트 뷰객체) 에 폰트 삽입구문 추가 @font-face { font-family: '폰트명'; src: local('폰트명'), url(./fonts/폰트파일.ttf) format('truetype'); /*ttf파일이 아니라면 그 파일 형식에 맞게 변경*/ }

    SpringBoot 에서 mobile리졸버 추가하기

    ranchat 개발을 하는데 모바일쪽 뷰도 추가하기 위해서 각 접속된 기기를 구별할 필요가 생겼어요. 그래서 추가한 스프링 디바이스 리졸버! 우선 제 환경은 Gradle 과 SpringBoot를 사용하고 있어요. gradle에 dependency 를 추가해줘요. compile group: 'org.springframework.mobile', name: 'spring-mobile-device', version: '1.1.5.RELEASE' 인터셉터를 추가 해줘요. //spring mobile 인터셉터 세팅 @Bean public DeviceResolverHandlerInterceptor deviceResolverHandlerInterceptor() { return new DeviceResolverHandl..