본문 바로가기

분류 전체보기

(108)
rabbitmq tutorial 1 - Docker로 띄우고 hello world 찍어보기 목표 : 도커로 RabbitMq 를 간단히 설치하고 hello world 를 찍어보기. 도커에서 다음 명령어로 이미지를 받고 컨테이너를 실행한다. - 기본 포트 15672->8080으로 설정했음. - 아이디/비밀번호 : admin/admin으로 설정 docker run -d --name rabbitmq -p 5672:5672 -p 8080:15672 --restart=unless-stopped -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:management - 참고 : https://hub.docker.com/_/rabbitmq 처음 docker로 run을 하면 이미지가 없어서 받아옴. Unable to find image..
@EnableAspectJAutoProxy 와 proxyTargetClass 속성 @EnableAspectJAutoProxy(proxyTargetClass = true) spring aop 구현 방식 - 프록시 방식(정확하게 다이나믹 프록시) Spring AOP uses either JDK dynamic proxies or CGLIB to create the proxy for a given target object.aspectJ aop 구현 방식 - BCI(Byte Code Instumentation)이란 Java의 Byte Code에 직접 수정 AspectJ의 @Aspect 어노테이션을 사용 가능하게 해준다. XML로 표현되는 같은 역할을 한다. 사용하기 위해서는 @Configuration 클래스를 써야한다. 위에 어노테이션을 사용하면 bci 방식으로 aop가 진행되는게 아니라 프록..
for each 돌면서 list 삭제 할때 문제. ConcurrentModificationException 다음과 같은 역할을 하는 메소드가 있다. 실제 테스트를 실행했더니 java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859) at java.util.ArrayList$Itr.next(ArrayList.java:831) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(De..
hibernate warning 원인과 해결방법 HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead. 에러 상태 : warn 원인 : deprecated 된 org.hibernate.ejb.HibernatePersistence 사용. 해결 방법 : org.hibernate.jpa.HibernatePersistenceProvider 로 변경. HHH020003: Could not find a specific ehcache configuration for cache named [org.h..
jwt(JSON Web Token) 토큰이란 JSON Web Tokens(이하 jwt)는 웹 표준 RFC 7519에등록 되어있고 표준으로 쓰인다. JWT.IO 에서 검증과 생성을 할 수 있다. https://jwt.io/ - RFC(Request For Comments) - 인터넷을 개발하는 데에 있어서 필요한 절차나 기술을 적어놓은 문서 - 여기에 여태까지 등록된 RFC가 있음. https://www.rfc-editor.org/rfc-index.txt - 7519 JSON Web Token (JWT). M. Jones, J. Bradley, N. Sakimura. May 2015.(Format: TXT=63039 bytes) (Updated by RFC7797) (Status: PROPOSEDSTANDARD) (DOI: 10.17487/RFC75..
4. Spring boot batch quick start - https://spring.io/guides/gs/batch-processing/ 스프링 공식 홈페이지에 나와있는 quick start를 보고 따라하면서 정리. spring batch 와 spring boot를 연동하고 프로세스 과정을 살펴보겟습니다.batch로 데이터를 바꿔줄 sample 데이터를 추가한다. schema-@@platform@@.sql으로 플랫폼에 맞춰서 sql문이 돌아간다.-all이면 모든 플랫폼에 대해 기본값으로 설정됨.ex>schema-mysql.sql 도메인 모델이 들어갈 클래스를 생성한다. 간단하게 예제로 나와있는것 처럼 firstName 과 lastname을 대문자로 만들어주는 PersionItemProcessor를 만들었습니다.PersionItemProcessor는 Ite..
Netflix MSA Client Side Load Balancing (Ribbon) - 3 Load Balancing 은 서비스의 가용성을 높이거나 늘어가는 부하를 분산하는 장치이다. server side와 client side 두가지 종류가 있음. 서버사이드 로드밸런서는 L4같은 하드웨어 로드 밸런서가 있고, AWS의 ELB의 소프트웨어 기반 로드밸런서가 있다. service client가 service registry에서 서비스의 위치를 찾아서 호출 하는 방식을 client side discovery 라고 한다. 클라이언트 사이드 로드 밸런서는 클라이언트가 직접 부하분산을 한다는 의미이다. 클라이언트가 부하 분산할 서버 목록을 이미 가지고 있거나 서비스 디스커버리를 통해 동적으로 서버를 찾는다. 요약 - Netflix Ribbon 은 client side Load Balancer 라이브러리..
Netflix MSA Service Discovery pattern (Eureka) - 2 Service Discovery Pattern(Eureka) - 서비스 클라이언트가 서비스를 호출할때 서비스의 위치 (즉 IP주소와 포트)를 알아낼 수 있는 기능 Service Discovery 패턴을 알아보기에 앞서 클라우드의 특성에 대해 알아야 한다. Netflix는 클라우드 플랫폼을 기반으로 서비스를 제공한다. AWS클라우드 서비스에서는 고유한 특성 때문에 서버가 잠깐 있다가 없어 지거나 인스턴스가 동적으로 변경되고(장애, auto-scaling 등), 네트워크 주소도 동적으로 할당된다.(IP/PORT) IP 주소 및 호스트 이름이 잘 알려진 서버와 함께 작동하는 기존의 장치와 달리, AWS에서는 서버를 즉시 등록하고 수시로 바뀌는 정보를 자동으로 매핑하는 역할과 어떤 인스턴스에 접속 해야 하는가 ..