Chapter 10 10.1 시스템 간 강결합 문제 외부 서비스를 사용할 때 발생할 수 있는 문제점 트랜잭션 처리가 애매해진다. 성능이 비교적 감소한다. (외부 서비스 성능에 직접적인 영향을 받게 된다.) 위의 문제를 해결하는 방법은 이벤트를 사용하는 것이다. 10.2 이벤트 개요 이벤트란? 과거에 벌어진 어떤 것. 사용자가 암호를 변경했을 때 > "암호를 변경했음 이벤트"가 벌어졌다고 할 수 있다. 사용자가 주문을 취소했을 때 > "주문을 취소했음 이벤트"가 벌어졌다고 할 수 있다. 도메인의 상태 변경과 관련된 요구사항들을 이벤트를 통해 구현할 수있다. "주문을 취소할 때 이메일을 보낸다."라는 요구사항에서 "주문을 취소할 때"는 주문이 취소 상태로 바뀌는 것을 의미하므로 "주문 취소됨 이벤트"를 이용..
1. 개요 저번 글에는 config 파일 즉 .yml파일 .properties파일을 외부에서 관리하고 해당 파일이 필요한 application에서 내용을 읽어오는 아키텍쳐를 설계하는 내용을 작성하였다. 이번에는 해당 아키텍쳐에서 AMQP 프로토콜을 사용에 한번에 End-point 메세지를 일괄적으로 전송해주는 Message Queue 서비스를 구현하기 위해 Spring cloud bus에 대한 내용을 적어볼 것이다. 2. 본문 - Message Queue 일단 이전의 구조에 대해 다시 살펴보자. 해당 구조를 보면 user_service 어플리케이션에서 변경사항이 생겼을 때 (설정 파일에 대한 변경사항) refresh라는 end point를 통해 변경된 결과를 가지고 왔다. 어플리케이션을 재기동 할 필요 ..
1. 개요 해커톤에 참여하느라 정리글이 늦었다.. 한 강의를 몇개월째 듣고있는건지.. 사실 진도는 거의 막바지 이지만, 강의 정리는 조금 느린 수준.. 그래서 다시 천천히 정리하기로 했다. 이번 글은 API gate-way의 인증 설정 즉 Filter의 구현과 Config service의 개념 정리이다. 2. 본문 - api-gateway filter 구현 처음에 api-gateway에 왜 fiter까지 구현을 하는거지? 라는 생각을 했다. 결국 user-service로 넘어가면 해당 서비스에서 구현한 filter에서 다시 검증과정을 거칠것이기 때문이다. 지금 차근 차근 정리해보니 조금은 다른 원리이다. user-service: AuthenticationFilter - login 로직 실행 - login..
1. 개요 인프런에서 MSA를 배우고 있다. 8만원 정도의 강의인데 만족도가 정말 높다. 이 글은 해당 인프런에 올라온 이도원님의 강의를 보고 공부한 내용을 정리하는 글이다. 다음은 강의 링크이다. Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해 www.inflearn.com 멋쟁이사자처럼이라는 동아리에서 공부하면서 프로젝트가 엄청 많아졌고 이를 하나의 로그인 서버로 관리하고 싶다는 생각으로 MSA를 공부하게 되었다..
1. 개요 그놈의 ChatGPT, ChatGPT... 우리 졸업작품 교수님도 무조건 ChatGPT 프로젝트에 넣으라고 하셔서 주제를 통으로 바꿔야할 판이다. 뭐 쩔 수 있나. 강력한 도구인 건 맞는 것 같다. 내가 요구하는걸 그대로 뱉어주다니... 조금만 더 있으면 정말 아이언맨의 자비스나 Friday처럼 사람처럼 말하는 사람이 올 것 같기도? 그러다가 SKT의 기술블로그에서 ChatGPT를 IDE에서 편하게 사용할 수 있는 plugin을 보고 진짜 유용할 것 같다는 생각이 들어 그대로 넣어보았다. 이 글을 읽어보는 여러분들도 한번 해보시길! 2. 본문 환경은 Intellij Ultimate버전 하지만 근본적인 플러그인 설치 방법은 다르지 않을 것 같다. 상단의 [File] → [Setting]에 접속하..
React 연동하기 너무 힘들었다 ㅠㅠ React는 3000번 포트, Spring boot는 8080에서 돌아가는데, 이를 연결해줘야 했다. 이렇게 한 이유는 Spring boot로 Restcontroller만을 구현하고 싶었다. API를 결합력 높게 만들고 사용하기 쉽게 만들어야 좋은 웹 페이지를 구현할 수 있다고 생각이 들었다. (전 방식처럼 jsp페이지를 쏴주는 컨트롤러도 만들지 않아도 되기에 정말 좋았다.) 솔직히 RestAPI만을 만드니 프로젝트 자체가 깔끔해보였다. 각 Entity(테이블)에 관한 CRUD와 추가적인 Service만을 구성하니 코드 자체가 읽기 편해지고 유지보수가 쉬워졌다. BaseEntity를 기준으로 각 Entity가 상속 받는 형식으로 개발을 진행했는데 신세계였다. 중간중..
1. 개요 Swagger를 설정하고 나서 내가 개발하고 있는 웹페이지에 적용할 기술이 또 뭐가 있을지를 생각해봤다. 많은 구글링을 통해 ORM이라는 존재를 알게 됐고, Java를 사용하는 Spring boot에 필요한 JPA를 공부하기 시작했다. 전에는 Mybatis와 Mapper를 활용하여 데이터베이스에 접근하는 방식을 사용했는데, Spring Data JPA와 Entity로 개발을 해보니 확실이 편하다는 것을 느낄 수 있었다. 물론 각각의 장단점이 있지만, 쿼리를 객체지향적으로 조작하고 유지보수에 ORM이 강하다는 점은 확실이 알 수 있었다. 또한 데이터베이스 쿼리라면 치가 떨리던 나기에 ORM은 데이터베이스에 대한 종속성 자체가 줄어든다는 강점을 주었다. 이번에는 ORM을 적용하기 위해 기본적인 E..
- Total
- Today
- Yesterday
- Programmers
- CJ
- 코딩
- java
- 개발자
- 문자열
- 백준
- XML
- BaekJoon
- 코딩테스트
- c++
- 알고리즘
- 육군
- 백준알고리즘
- C언어
- 후기
- CJ Olivenetworks
- Spring Boot
- spring
- CJ 올리브네트웍스
- 백준 알고리즘
- 자료구조
- 코테
- 기록지
- 구현
- 안드로이드 프로그래밍
- Python
- 비트코인
- 프로그래머스
- 안드로이드 스튜디오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |