본문 바로가기

SpringBoot - resourceLoader가 jar에 포함된 File을 찾지 못하는 에러(classPath 사용시 발생) ResourceLoader classPath롤 이용해 파일을 찾는 경우 getFile() 사용시 에러 ResourceLoader classPath롤 이용해 파일을 찾는 경우 getFile() 사용시 에러1. 상황상황은 이렇습니다. SpringBoot를 이용해 서버를 구축하는 도중 file을 가져와야할 상황이 발생했고, 해당 파일은 classpath를 통해 접근할 수 있도록, src/main/resources/ 경로에 포함시키기로 했습니다. 또한 classpath 에 존재하는 파일에 쉽게 접근할 수 있도록 Spring에서 제공하는 ResourceLoader를 이용하기로 했습니다. 위그림을 보면, resourceLoader를 통해 성공적으로 file을 불러온것을 볼 수 있습니다. 하지만, 이 프로그램을 ja..
작성일: 2020. 1. 8. 17:17
Java - Stream 이란? (Stream과 Collection, Stream 각 연산) 1. Stream 이란 Stream에 대해 알아보도록 하겠습니다. 이 글은, 모던 자바 인 액션이라는 책을 기반으로 작성되었습니다. 1. Stream 이란 데이터 처리연산을 지원하도록 소스에서 추출된 연속된 요소입니다. 1) 연속된 요소Collection과 마찬가지로, Stream은 특정 요소 형식으로 이루어진 연속된 값 집합 인터페이스를 제공합니다. Collection의 경우에는 시간과 공간의 복잡성과 관련된 요소의 저장 및 접근 연산이 주를 이루고, Stream의 경우에는 filter, sorted, map과 같은 데이터를 처리하기 위한 계산식이 주를 이룹니다. 2) 소스Stream은 Collection, 배열, I/O 자원 등의 데이터 제공 소스로 부터 데이터를 소비합니다. 3) 데이터 처리연산St..
작성일: 2020. 1. 5. 18:35
javascript - 실행컨텍스트와 Hoisting(호이스팅) 그리고 ScopeChaning(스코프 체이닝) 호이스팅과 실행컨텍스트 이번 포스팅은 Javascript의 Execution Context(실행컨텍스트)와 `Hoisting(호이스팅) 그리고 Scope Chaining(스코프체이닝)에 대해 알아보도록 하겠습니다. 실행 컨텍스를 이해해야지만, 이 포스팅에 담기는 내용들인 Scope Chaining과 hoisting에 대한 이해가 수월합니다. 이번 포스팅역시 코어자바스크립트라는 책을 기반으로 작성되었습니다. 1. 실행 컨텍스트(Execution Context)란?javascript의 Execution Context(이하 실행컨텍스트)는 code 실행시 필요한 정보들(필요한 환경들)을 모아놓은 객체 입니다. javascript는 코드를 실행하며, 필요한 환경정보들(ex. 변수, 함수 등..)들을 모아 이를 ..
작성일: 2019. 12. 1. 11:28
SpringBoot - Profile에 따른 properties(yml) 파일 설정하기 1. properties 파일 관리의 불편함 이번 포스팅에서는 Spring에서 설정시 사용되는 application.properties를 활성화된 Profile에 따라 변경하여 적용하는 방법에대해 알아보도록 하겠습니다. Spring IOC 컨테이너의 기능(Environment , Profile) - https://galid1.tistory.com/514 profile에 대한 개념은 위의 글을 참조해주세요. 1. properties 파일 관리의 불편함기존 제가 운영하던 서버의 application.yml 파일입니다. 주석으로 처리됀 부분이 보이시나요?? 현재는 local에서 개발을 하고 있기 때문에, ssl설정을 잠시 주석으로 처리하고, port 역시 8080을 이용했습니다. 이렇게 이용을 하다가 배포를 ..
작성일: 2019. 11. 28. 17:03
javascript - 불변객체와 복사(얕은복사와 깊은복사) 1. 불변객체 Javascript의 불변객체와 값 복사에 관하여 포스팅을 진행하겠습니다. 본 포스팅은 코어자바스크립트라는 책을 기반으로 작성되었습니다. 1. 불변객체1.1 불변객체란 https://galid1.tistory.com/622 우선 불변객체에 관해서 잘 모르시다면 위의 글을 먼저 읽어보시는 것을 추천드립니다. (JAVA로 작성되어 있지만, 참조형의 개념을 아신다면 크게 문제없이 읽을 수 있습니다.) 간단히 말씀드려 불변객체란 어떤 객체내부의 프로퍼티들을 변경할 수 없도록 되어있는 객체를 일컫습니다. 그렇다면 언제 이런 불변객체가 필요할까요? 1.2 불변객체의 필요성 (기본형데이터와 참조형데이터의 차이)문제상황xlet people1 = { name : "A", gender : "male", ag..
작성일: 2019. 11. 24. 19:41
javascript - javascript의 메모리와 데이터할당 (데이터 할당의 자유와 효율성) 1. 메모리와 데이터 javascrip의 메모리와 데이터 그리고 데이터할당에 대해서 알아보도록 하겠습니다. 본 포스팅은 코어자바스크립트라는 책을 기반으로 작성되었습니다. 1. 메모리와 데이터1.1 데이터 단위 존재의 이유컴퓨터는 0과 1로 모든 데이터를 표현합니다. 이렇게 0과 1만 표현할 수 있는 하나의 메모리 조각을 bit라고 표현합니다. 그런데 Byte와 같은 단위들은 왜 생겨났을까요?? 화폐간단합니다. 우리 일상생활에서도 찾아볼 수 있는데요 바로 화폐입니다. 10원짜리 동전으로도 100만원 1000만원을 표현할 수 있지만, 이는 매우 비효율적입니다. 예를들어 카드가 없던시절 매우 비싼 명품을 산다고 했을때, 이를 10원짜리 동전으로 계산하고 거스름돈을 받는다고 생각을 해보면, 시간이 매우 많이 소..
작성일: 2019. 11. 21. 23:37
React - LifeCycle 메소드 (성능개선, 업데이트 라이프 사이클 주의사항) 이번 포스팅에서는 React의 LifeCycle에 대해 알아보도록 하겠습니다 이번 포스팅에서는 React의 LifeCycle에 대해 알아보도록 하겠습니다. 본 포스팅은 리액트를 다루는 기술이라는 서적을 참고하여 작성되었습니다. 1. 라이프 사이클 메소드 종류라이프 사이클 메서드의 종류는 크게 3가지로 나뉩니다. 아래에서 조금더 자세히 보시죠. 1.1 마운트첫번째 종류는 마운트입니다. 우선, 마운트란 DOM이 생성되고 웹브라우저상에 나타나는 것을 의미합니다. 마운트시 호출되는 라이프사이클 메소드들마운트시 호출되는 라이프 사이클 메소드들은 시간순서대로 정렬하여, 아래와 같습니다.constructor : 컴포넌트 생성시 호출되는 클래스 생성자 메소드 getDerivedStateFromProps : props에..
작성일: 2019. 10. 30. 22:05
Java - LocalDateTime, LocalDate 날짜 차이 구하기 (관련 이슈처리) LocalDateTime 1. 문제 상황App의 Server를 개발하던 중, 회원가입 부분을 구축하는 상황이었습니다. 회원가입시에는, 사용자의 출국날짜를 입력받게 되는데요, 이때 회원가입 진행 시간이 출국날짜 최소 하루 전이어야 하는 상황이었습니다. 날짜를 나타내는 데이터 타입의 경우 출국 시간까지를 표현하기 위해 LocalDateTime을 사용중이었고, 현재 일(Day)과 출국일(Day) 사이의 일수를 계산하기 위해 Duration 을 사용하였습니다. 이와 같은 상황에서 테스트를 거의 통과하는듯 싶었으나, 출국날짜를 회원가입이 가능한 최소 날짜인 내일로 지정하여 테스트를 하면 계속해서 도메인 제약사항에 걸려 Exception을 발생시켰습니다. 2. 원인 분석원인을 찾기 위해 위와 같이 두 날짜의 일수 ..
작성일: 2019. 10. 22. 18:50