Chapter 10 10.1 시스템 간 강결합 문제 외부 서비스를 사용할 때 발생할 수 있는 문제점 트랜잭션 처리가 애매해진다. 성능이 비교적 감소한다. (외부 서비스 성능에 직접적인 영향을 받게 된다.) 위의 문제를 해결하는 방법은 이벤트를 사용하는 것이다. 10.2 이벤트 개요 이벤트란? 과거에 벌어진 어떤 것. 사용자가 암호를 변경했을 때 > "암호를 변경했음 이벤트"가 벌어졌다고 할 수 있다. 사용자가 주문을 취소했을 때 > "주문을 취소했음 이벤트"가 벌어졌다고 할 수 있다. 도메인의 상태 변경과 관련된 요구사항들을 이벤트를 통해 구현할 수있다. "주문을 취소할 때 이메일을 보낸다."라는 요구사항에서 "주문을 취소할 때"는 주문이 취소 상태로 바뀌는 것을 의미하므로 "주문 취소됨 이벤트"를 이용..
chapter 1 1.1 도메인이란? 도메인: 소프트웨어로 해결하고자 하는 문제 영역 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 하나의 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다. 특정한 도메인을 위한 소프트웨어라고 해서 모든 기능을 직접 구현하지는 않는다. 하위 도메인을 어떻게 구성할지 여부는 상황에 따라 달라진다. 도메인마다 고정된 하위 도메인이 존재하는 것은 아니다. 1.2 도메인 전문가와 개발자 간 지식 공유 요구사항의 중요성 개발자는 요구사항을 분석하고 설계하여 코드를 작성하고 테스트하고 배포한다. 요구사항을 처음부터 제대로 설계하지 않으면 코드를 수정해야한다. 잘못 개발한 코드를 수정하는 것은 많은 비용이 소모된다. 요구사항을 올바르게 이해하고 설계하는 방법 개발..
1. 개요 저번 글에는 config 파일 즉 .yml파일 .properties파일을 외부에서 관리하고 해당 파일이 필요한 application에서 내용을 읽어오는 아키텍쳐를 설계하는 내용을 작성하였다. 이번에는 해당 아키텍쳐에서 AMQP 프로토콜을 사용에 한번에 End-point 메세지를 일괄적으로 전송해주는 Message Queue 서비스를 구현하기 위해 Spring cloud bus에 대한 내용을 적어볼 것이다. 2. 본문 - Message Queue 일단 이전의 구조에 대해 다시 살펴보자. 해당 구조를 보면 user_service 어플리케이션에서 변경사항이 생겼을 때 (설정 파일에 대한 변경사항) refresh라는 end point를 통해 변경된 결과를 가지고 왔다. 어플리케이션을 재기동 할 필요 ..
1. 개요 인프런에서 MSA를 배우고 있다. 8만원 정도의 강의인데 만족도가 정말 높다. 이 글은 해당 인프런에 올라온 이도원님의 강의를 보고 공부한 내용을 정리하는 글이다. 다음은 강의 링크이다. Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해 www.inflearn.com 멋쟁이사자처럼이라는 동아리에서 공부하면서 프로젝트가 엄청 많아졌고 이를 하나의 로그인 서버로 관리하고 싶다는 생각으로 MSA를 공부하게 되었다..
1. 개요 Swagger를 설정하고 나서 내가 개발하고 있는 웹페이지에 적용할 기술이 또 뭐가 있을지를 생각해봤다. 많은 구글링을 통해 ORM이라는 존재를 알게 됐고, Java를 사용하는 Spring boot에 필요한 JPA를 공부하기 시작했다. 전에는 Mybatis와 Mapper를 활용하여 데이터베이스에 접근하는 방식을 사용했는데, Spring Data JPA와 Entity로 개발을 해보니 확실이 편하다는 것을 느낄 수 있었다. 물론 각각의 장단점이 있지만, 쿼리를 객체지향적으로 조작하고 유지보수에 ORM이 강하다는 점은 확실이 알 수 있었다. 또한 데이터베이스 쿼리라면 치가 떨리던 나기에 ORM은 데이터베이스에 대한 종속성 자체가 줄어든다는 강점을 주었다. 이번에는 ORM을 적용하기 위해 기본적인 E..
1. 개요 약 1년전 KNU_30이라는 강남대학교 30주년 이벤트 페이지를 개발한 경험이 있다. 학교에서 서버를 지원해주는 사업이었기 때문에 신나게 서버를 가지고 논 기억이 난다. 단순한 일회성 페이지로 개발되었지만, 프론트 개발을 주도한 친구가 괜찮은 UI를 개발했기 때문에, 동아리도 소개하고 영상들도 첨부하는 페이지가 되었다. 오랜만에 들어가보니 아직도 서버는 구동중이고 방문 로그는 쌓여있는걸 확인할 수 있었다. 서버 한 대가 아깝다는 생각이 들었다. 그래서 관리자 페이지를 만들어 기본적인 데이터 CRUD를 개발하고 싶었다. 교수님을 따로 찾아 봬었다. 팀을 모집하고 장기적으로 개발할 계획이다. 오늘은 그 개발의 첫 단계, Swagger를 활용한 API 개발 명세 자동화이다. 사실 별거 없지만, 그래..
1. 개요 Clone Coding프로젝트를 마무리 한지 꽤 오랜 시간이 지났다. 프로젝트 도중 인턴에 합격한 팀원도 있고 다른 교육 프로그램에 합격한 팀원도 있다. 기쁜소식을 들어면서 프로젝트를 진행하니 나도 동기부여가 되는 것 같다. 중간고사가 끝나고 드디어 시간이 조금 나니, 조금씩 꾸준하게 블로그에 글을 올릴 생각이다. 2. 이론 내 역활중 하나는 바로 admin페이지의 로그인을 구현하는 것. 사실 관리자 로그인은 데이터베이스에 아이디와 패스워드 한 세트만을 생성하고 그것을 쓰면 되기 때문에, 아이디와 비밀번호의 CRUD는 그렇게 어렵지 않았다. 중요한 것은 매 페이지마다 섹션에 있는 값을 확인하는 기능을 구현하는 것이다. 설명하자만 매번 검사하는 것은 Interceptor로 그리고 관리자가 로그인..
1. 개요 바로 직전 포스팅이 바로 Spring에서 이미지를 저장하는 방법이다. 이 방법에서 심각한 문제를 발견하였다. 우리가 웹 사이트를 만들면 다양한 사람이 사이트를 사용한다. 이런 경우를 생각해서 예외처리에 철저해야 한다는 것일 이번에 깨닫게 되었다. 이 포스팅은 내가 전에 올린 포스팅과 이어지는 내용이기에 꼭 전 포스팅을 보고왔으면 좋겠다. 이전 포스팅: apape1225.tistory.com/66 [spring] 로컬 파일에 Img 저장하기! - (ServletContext) 1. 개요 Django를 공부하다가 동기에게 실속있게 도움되는 프로젝트를 해보자는 제안이 왔다. 프로젝트에 목말라있던 나에게는 아주 좋은 기회였다. 바로 승낙했지만 정말 충격이었다...... Clone apape1225.t..
- Total
- Today
- Yesterday
- 안드로이드 스튜디오
- 비트코인
- 알고리즘
- BaekJoon
- 안드로이드 프로그래밍
- C언어
- 백준 알고리즘
- 코딩
- 백준
- 후기
- CJ Olivenetworks
- 자료구조
- CJ
- 구현
- 문자열
- c++
- XML
- Python
- spring
- 백준알고리즘
- Programmers
- 코딩테스트
- 기록지
- 코테
- Spring Boot
- 육군
- 개발자
- CJ 올리브네트웍스
- java
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |