전체 글
스프링 부트와 RabbitMQ를 사용한 리액티브 마이크로 서비스
publisher와 subscriber가 외부의 메시지 큐(RabbitMQ)와 연결되어 있는 애플리케이션을 만들어보자. Rabbitmq 설치 - 자세한 설치법은 검색을 해서 찾아보면 간단하게 나온다. - 하단의 내용은 local docker가 설치되어 있을때 docker-compose.yml을 작성할때 붙혀넣으면 된다. rabbitmq: image: rabbitmq:management ports: - "5672:5672” // 연결 포트 - "15672:15672” // 관리자 페이지 포트 (localhost:15672) Maven 의존성 추가1234 org.springframework.boot spring-boot-starter-amqpColored by Color Scriptercs Sender 클래..
[공유] 자바 유료화 관련 글 공유
자바 유료화 관련해서 궁금해서 알아보던중 좋은 글을 작성해주신 분들이 있어서 공유합니다. 결론적으로 개인 개발환경에서 Oracle JDK를 사용하는건 상관없고 솔루션같이 상업적으로 사용 되는 부분에서는 OpenJDK를 사용하면 된다는 건가...아직도 잘 모르겠다. 시간이 지나면 답이 나오겠지.http://jsonobject.tistory.com/395 http://dev.zepinos.com/phame/post/view/2/oraclejdk_%EC%9D%98_%EC%9C%A0%EB%A3%8C%ED%99%94_%EA%B7%B8%EB%9E%98%EC%84%9C_java_%EB%8A%94_%EB%A7%9D%ED%96%88%EB%8B%A4/
리액티브 마이크로 서비스 정리
동일한 마이크로서비스는 서로 공유 및 통신하게 되어있다. 예를 들면 주문과 결재, 배송서비스들은 서로 공유되어있다. 이 서비스들의 호출 관계를 단순하게 동기 방식으로 호출하게 된다면 강한 의존성을 가지게 되기 때문에 마이크로 서비스의 강점을 충분하게 살릴 수 없다. 결국 모노토릭 서비스와 크게 다를게 없어진다. 그래서 도입되는 개념이 리액티브 마이크로 서비스이다. 리액티브 프로그래밍은 회복성(resilient), 응답성(responsive), 메시지 기반(message driven), 탄력성(elastic) 이렇게 4가지 기둥이 존재한다. 서로간에 마이크로서비스가 독립적으로 되어있기 때문에 특정 부분에 문제가 발생하면 해당 마이크로서비스의 복제본이 이를 대체할 수 있다. 하지만 이렇게 격리가 되었다고 해..
Maven Scope 정리
Maven Scope 정리 pom.xml에서 상용되는 scope에 대한 정리 ※compile - 아무런 scope를 명시하지 않았을때 사용되는 기본값. - 테스트 및 런타임에도 classpath에포함된다. ※provied - JDK 또는 컨테이너에 의해서 runtime에 제공되는 모듈 - 이 scope는 이미 컨테이너가 해당 라이브러리를 제공하고 있을때 유용 그러므로 실제로 배포시에 제외대상 - 예를 들면 아래 servlet api의 경우 이미 웹서버에서 제공하고 있는 경우에 maven scope를 provied로 기재123456 javax.servlet servlet-api 2.5 providedcs ※runtime - 런타임시 필요하지만 컴파일시에 필요하지 않는 경우에 사용 - 테스트와 런타임에는 사..
Facebook Javascript plugin과 spring security를 이용한 페이스북 로그인
개인적으로 공부겸 만들고 있는 Wedul Pos에는 아이디와 패스워드를 사용해서 로그인하는 방식을 제공했다. 하지만 페이스북 로그인 방식을 추가해보고 싶어서 facebook 개발자 사이트에 가입하여 정보를 얻고 추가해봤다. 우선 페이스북 로그인 방식을 처리하는 방식은 Facebook Javascript plugin을 사용하여 spring security에서 인증을 하는 방식과 /sign/facebook 요청만 front에서 보내면 server에서 모든 처리를 진행하는 방식 두가지가 있다. 그 중에 첫번째 javascript plugin을 이용하는 방식을 사용해서 구현해보자. 1. facebook developer 사이트에서 javascript 내용 얻기 https://developers.facebook...
travis ci에서 "./gradlew assemble" failed 에러 수정
git에 연동해놓았던 travis ci에서 어느순간부터 계속 오류를 감지하였다. 그냥 귀찮아서 넘겼지만 보기싫어서 오류내용을 확인해봤다. ./gradlew assemble 오류는 gradlew 실행이 실패해서 발생하는 오류이다. 우선 locale에서 정상적으로 동작하는지 확인해보자.1./gradlew buildcs오류가 발생한다. 왜그럴까.. 구글링 하다 보니 gradle wrapper가 실행될때 필요한 gradle-wrapper.jar 파일이 없어서 라고 한다. gradle-wrapper.jar 파일에 경우 gradle/wrapper 폴더에 들어있어야 하는데 없었다. 그래서 gradle wrapper 명령어를 실행시켜서 생성해주었다. 그럼 다시 빌드해보자.1./gradlew buildcs 성공했다. 그..
피아노 독학 시작
피아노를 고등학생 때까지는 취미로 쳤었는데 성인이 되고 쳐본 적이 없어서 까막눈이 되었다. 피아노를 다시 치고 싶어서 키보드를 구매하였지만 기숙사에 살다 보니 먼지만 쌓였었다. 이제 집에서 출퇴근을 하게 되었으니 피아노를 본격적으로 다시 쳐봐야겠다고 생각했다. 그래서 학원을 알아봤는데 비싸고 배우러 다니는 것도 귀찮아서 피아노 인강을 듣기로 결정했다. 과거에 기타를 들었었던 도약 닷컴에서 들을까 하다가 가격이 제일 저렴한 더 뮤직스쿨이라는 곳에서 듣기로 결정했다. 교재 포함해서 85000원이면 저렴한거 같다. 그런데 맥 pc에서는 재생할 수 있는 방법이 없다. 페러럴즈는 vm이라고 막히고 재생 가능한 플레이어가 mac에는 안 깔린다. (그지 같다.) 그래서 휴대폰으로 듣는데 불편하다. 교재는 생각보다 내..
백준 알고리즘1032 명령프롬프트 문제
문제입력된 파일 리스트를 보고 공통적으로 사용될 수 있는 Regex를 찾아서 출력하는 문제이다. 코드 코드는 간단하게 처음입력받은 파일명을 기준으로 잡고 추가로 들어오는 나머지 파일명들과 다른 부분에 대해서 모두 ?로 바꿔버렸다. 12345678910111213141516171819202122232425262728293031323334353637import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 파일 개수 입력 int wordCnt = sc.nextInt(); // 첫 번째 파일이름 char[] creteria = sc.next()..
백준 알고리즘 11650 - 좌표 정렬하기
문제 입력된 좌표를 정렬해서 보여주는 문제이다. 코드 좌표를 담는 하나의 DTO 객체를 만들어서 comparable을 정의해서 사용해도 되나 좀 다르게 해보고 싶었다. 각 x좌표를 키로 사용하는 map을 만들고 각 x좌표마다 y좌표들을 담는 리스트가 존재한다. y좌표값이 채워질때는 정렬이 된 상태로 삽입된다. insertSort 메소드는 ATM 알고리즘에서 사용했던 것 가져왔다. 그리고 Map을 출력할 때는 Key를 기준으로 정렬한 후 forEach를 사용하여 정렬한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import java.util.*; public class ..
신촌 홍대 등갈비집 팔덕식당 후기
신촌에서 일하는 여자친구 회사에 찾아가서 퇴근길에 같이 밥을 먹었다. 맛집을 소개해달라고 했고 등갈비를 좋아하는 나를 위해 등갈비 맛집으로 갔다. 가게 이름은 팔덕식당으로 손님이 엄청 많았다. 금요일 저녁이여서 그럴수도 있는데, 사람이 많으면 대기시간이 15 ~ 30분정도는 되는것같다.양푼등갈비 2인분과 곤드레밥 하나 시켜서 먹었다. 등갈비는 좀 매운데 덜 맵게 주문하면 강도를 조절해주신다. 가격은 등갈비는 인당 12000원 곤드레밥은 5000원이다.양송이버섯이 위에 있고 밑에 당면과 등갈비가 깔려있다. 거의 익어서 나오기 때문에 당면부터 먹고 버섯 등갈비순으로 먹으면 된다.둘이서 먹었는데 남았다.등갈비가 많이 들어있는건 아니지만 같이 나오는 파전과 곤드레밥까지 먹으면 엄청 배부르다. 나중에 또 가볼만한..