분류 전체보기(363)
-
Springboot - CommandLineRunner(커맨드라인러너)
Springboot - CommandLineRunner(커맨드라인러너) Springboot에서 서버 구동 시점에 초기화작업으로 무엇인가를 넣고 싶다면 사용할 수 있는 방법 중 하나가 CommandLineRunner인터페이스를 상속받는 것이다. @SpringBootApplication 어노테이션이 붙어있는 부트구동 클래스에 CommandLineRunner를 implements하고 run(String... strings)를 Override한다.그리고 해당 run()에 애플리케이션의 초기작업(빈등록 과정 등등)이후 실행할 로직을 작성해주면 된다. 예제 코드는 항공편 예약서비스 예제인데, 애플리케이션 구동 시점에 예약가능한비행편을 알아보기위하여 검색 마이크로서비스 애플리케이션에 초기데이터를 삽입하는 코드이다. ..
2019.02.21 -
Java - ThreadLocal 이란? 쓰레드로컬 사용법!
Java - ThreadLocal 이란? 쓰레드로컬 사용법! ThreadLocal(쓰레드로컬)이란? 쓰레드로컬이란 간단히 얘기하면 하나의 스레드의 작업 흐름동안에 전역변수처럼 무엇인가를 저장하여 사용할수 있다. 일반 변수의 수명은 특정 코드 블록(예, 메서드 범위, for 블록 범위 등) 범위 내에서만 유효하다. { int a = 10; ... // 블록 내에서 a 변수 사용 가능 } // 변수 a는 위 코드 블록이 끝나면 더 이상 유효하지 않다. (즉, 수명을 다한다.) 반면에 ThreadLocal을 이용하면 쓰레드 영역에 변수를 설정할 수 있기 때문에, 특정 쓰레드가 실행하는 모든 코드에서 그 쓰레드에 설정된 변수 값을 사용할 수 있게 된다. 아래 그림은 쓰레드 로컬 변수가 어떻게 동작하는 지를 간단..
2019.02.21 -
Springboot - Rabbitmq를 이용한 비동기 메시징 서비스(리액티브 마이크로서비스)
Spring - Rabbitmq를 이용한 비동기 메시징 서비스 -리액티브 마이크로서비스 Mac OS 환경에서 작성되었습니다. 오늘은 간단히 Spring boot + Rabbitmq를 이용한 비동기 메시징 서비스를 구현해볼 것이다. 일단 이 포스팅을 진행하는 이유는 요즘 시대에는 일체형 애플리케이션이 작은 서비스 단위인 마이크로서비스 단위로 나누어 서비스 단위로 배포하는 아키텍쳐가 대세인듯하다. 이 말은 즉슨, 아주 큰 애플리케이션이 작은 서비스 단위(마이크로서비스)로 나뉘어 각각 단독적으로 독립적으로 실행가능한 상태로 배포가 된다. 이런 경우 마이크로서비스끼리의 통신은 RESTful한 통신도 있지만 메시지 큐와 같은 서비스를 이용하여 비동기적으로 통신하기도 한다.그리고 이 구조를 발행구독구조라고 한다. ..
2019.02.18 -
Github - eclipse(이클립스)와 local repository(로컬레포지토리) 연동.
Github - eclipse(이클립스)와 local repository(로컬레포지토리) 연동 이번 포스팅은 간단하게 이클립스와 로컬 레포지토리 연동입니다. 간단하게 flow를 설명하면, Remote Repository(Github) Local Repository Eclipse(이클립스) 입니다. 혹시나 git에 대한 사전 지식이 없으시다면 이전 포스팅 글을 한번 읽고 와주세요!. ▶︎▶︎▶︎GitHub - 간단한 Git사용법▶︎▶︎▶︎GitHub - Git 사용법 2 첫번째 작업은 원격 레포지토리 생성과 로컬 레포지토리 생성 및 연결입니다. 해당 설명은위의 포스팅에서 참조하시길 바랍니다. 이클립스 & Git(로컬 레포지토리) 연동 로컬 레포지토리와 연동할 프로젝트를 우클릭한 후 Team > Share ..
2019.02.16 -
Java - You need to run build with JDK or have tools.jar on the classpath 오류
Java - You need to run build with JDK or have tools.jar on the classpath 오류 You need to run build with JDK or have tools.jar on the classpath. If this occures during eclipse build make sure you run eclipse under JDK as well (com.myseam.maven:apt-maven-plugin:1.1.3:process:default:generate-sources) 만약 위와 같은 에러가 pom.xml에 났다면? project folder 우클릭 > Properties > Java Build Path > Libraries Tab 에서 JRE..
2019.02.14 -
웹 브라우저를 통해 마이닝 동작하는 악성코드(가상화폐,암호화폐 악성 채굴기)
웹 브라우저를 통해 마이닝 동작하는 악성코드(가상화폐,암호화폐 악성 채굴기)HTML/CoinMiner,JAVA/CoinMiner,JS/CoinMiner,WASM/Cryptojs 암호화폐 시장이 달아오름과 동시에 채굴 방식 또한 점차 다양해지고 있다. PC에 악성 채굴기 실행파일을 몰래 설치하는 악성코드뿐만 아니라1, 웹 브라우저를 기반으로 하여 암호화폐를 채굴하는 방식이 2017년부터 폭증하고 있다. 웹 브라우저 기반으로 동작하는 마이닝 방식은 기존의 실행 파일 기반과는 다르게 악성 자바스크립트(JavaScript)를 이용해 동작한다. 자바스크립트는 추가로 악성 자바(JAVA) 파일 또는 웹어셈블리(WebAssembly) 파일을 로드할 수 있으며, 해당 웹 페이지에 접속했을 때 접속자는 개인 하드웨어 자..
2019.02.13