Programming 94

MSA에 대한 기본개념 - 2. 동기 비동기 호출

Micro Service Architecture 설계의 발전 1. Rest API 방식의 설계 (동기호출) - Code Coupling 해소. 그러나 Time Coupling 잔존 - 서비스 Blocking 가능성 내제 - 장애전파 우려 - Point to Point 연결에 따른 복잡한 스파게티 네트워크 Request-Response 모델의 데이타 보호 장애전파를 방지하기 위해 필요한것이 서킷브레이커 패턴. 하나의 트랜젝션이 가능한 블로킹이 발생하지 않도록 미리 차단 → Fail-Fast 전략 메모리 사용 폭주 막음 장애 감지시 차단기 작동 ▶ 일시 동안 Failback으로 서비스 대체 ▶ 일부 트래픽으로 서비스 정상여부 확인 ▶ 정상 확인 시 차단기 해제 Rest방식 MSA 에서도 모놀리식의 2단계 커..

Programming/MSA 2022.06.09

MSA에 대한 기본개념 - 1. Legacy에서 MSA로 진화하는 여정

AS-IS시스템의 Pain-Points는 다음의 것들이 있었다. 서비스 업그레이드가 수시로 요청이 들어와 거의 매일 야근 테넌트별 다형성 지원을 제대로 하지 못하여 가입 고객이 늘 때마다 전체 관리 비용이 급수로 올라가는 한계에 봉착 운영팀과 개발팀이 분리되어 개발팀의 반영을 운영팀이 거부하는 사례 발생 개발팀은 새로운 요건을 개발 했으나 반영하면서 발생하는 오류가 두려워 배포를 꺼려함 현재 미국, 일본, 유럽 등 수요가 늘어나는 상황이나 상기한 문제로 신규 고객의 요구사항을 받아들이지 못하는 상황 수동 운영의 문제로 SLA 준수가 되지 못하여 고객 클레임이 높은 편 기존 모놀리식 아키텍처의 한계로 장기적인 발전의 한계에 봉착 모놀리식의 장점 상호 데이터 참조가 용이하여 개발 리소스를 최소화 시킬 수 있..

Programming/MSA 2022.06.08

SpringBoot+Gradle 설정파일 정리

gradle 구성요소 1. gradlew 리눅스 또는 맥OS용 실행 쉘 스크립트 파일이다. 2. gradlew.bat 윈도우용 실행 배치 스크립트 파일이다. 3. gradle-wrapper.jar 로컬 환경에서 gradle build를 하게 되면, 로컬에 구성된 gradle 버전으로 빌드가 되지만 ./gradlew build 를 하게 되면, Wrapper에 명시된 버전으로 로컬 환경과 관계없이 프로젝트를 빌드할 수 있습니다. gradle wrapper는 GRADLE_USER_HOME에 찾는 gradle이 있는지 확인합니다. 만약 존재한다면 그 gradle을 사용합니다. 만약 없다면 wrapper는 해당 파일을 다운받습니다. 4. gradle-wrapper.properties Gradle Wrapper 설..

Programming/Java 2022.05.17

(Vue) Vue 개발환경 세팅

VSCode 설치 https://code.visualstudio.com/docs/?dv=win Documentation for Visual Studio Code Find out how to set-up and get the most from Visual Studio Code. Optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. code.visualstudio.com VSCode 의 Extension 설치 Vetur 플러그인은 Vue.js를 개발하는 데 도움을 ..

(Go) Go 개발환경 세팅

Windows 개발환경에 세팅하는 방법이다. 1. Go SDK다운로드 https://go.dev/dl/ 2. 환경변수 GOPATH 세팅 3. 개발폴더 정하기 개발폴더를 정하고 바탕화면에 바로가기를 만들어 놓는다. (선택) 4. VSCode를 설치 https://code.visualstudio.com/docs/?dv=win Documentation for Visual Studio Code Find out how to set-up and get the most from Visual Studio Code. Optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on..

Programming/기타 2022.03.29

(아키텍처) 현대적 어플리케이션 구축을 위한 Outer아키텍처 시 고려할 점

원문 : https://www.cncf.io/blog/2022/03/15/cluster-out-a-design-approach-to-building-modern-apps/ Cluster out: A design approach to building modern apps | Cloud Native Computing Foundation Guest post by Rob Whiteley, Vice President and General Manager of the NGINX Product Group at F5 This past August at NGINX Sprint 2.0, I discussed the patterns we see customers adopt to successfully… www.cncf.io ..

Programming/MSA 2022.03.16

(JAVA) Gradle Build의 이해

Gradle 이란? Gradle은 Maven을 대체하는 빌드 도구입니다. Grooby 기반의 DSL(Domain Specific Language)를 사용합니다. 스프링 부트, 안드로이드 스튜디오에서는 Gradle을 사용되고 있습니다 Ant vs Maven vs Gradle [1] Ant Ant의 가장 큰 장점은 개발자가 자유롭게 빌드 단위(target)을 지정하고 빌드 단위간의 의존관계를 자유롭게 설정할 수 있다는 것입니다. 하지만 자유도가 높다는 것은 잘 활용할 경우 좋은 도구가 될 수 있지만, 잘 활용하지 못하면 그렇지 않을 수도 있습니다. [2] Maven ​ Maven의 가장 큰 장점은 Convention Over Configuration 전략에 따라 프로젝트 빌드 과정에 대한 많은 부분이 이미 ..

Programming/Java 2022.03.02

(JAVA) SpringBatch 사용을 위한 예제

전자정부 Spring Batch로 좋은 사용례를 보여주신 jydlove님께 감사드린다. 다만 해당 포스팅이 오래되다 보니 POM이 업데이트가 좀 필요했다. 그래서 재정비하고 아래에 포스팅 하였으니 참고하기 바란다. 출처 : https://jydlove.tistory.com/4?category=836164 개발 환경 설정 개발예제를 시작하기전에 프로젝트 설정에 필요한 내용을 정리해보자 전자정부프레임워크 메이븐 로컬 레파지토리 등록하기 메이븐 프로젝트 생성 후 pom.xml 설정하기 데이터 베이스 설치 1.로 jydlove.tistory.com 전자정부프레임워크 Spring Batch Guide https://github.com/eGovFrame/egovframework.rte.root/tree/master..

Programming/Java 2022.02.05

(JAVA, Gitlab) Git Submodule을 사용하여 멀티프로젝트를 진행해보자

Submodule을 가지는 프로젝트 구조의 장점 시스템 개발의 단위(형상)를 분리하여 빌드 및 배포가 용이하고, 모듈별로 레포지토리가 생겨 프로젝트별로 추적이 용이하다는 장점이 있다. Submodule 구조를 위한 Gitlab Repository 생성 및 Client 작업 Main, Sub 레파지토리 만들기 Main Project Repo https://myrepo.gitlab.com/mainproject.git 부모프로젝트로써 Domain의 시작. 전체 모듈의 구조 정의 Common Project Repo https://myrepo.gitlab.com/commonproject.git Sub Project 중 하나로 대부분 모듈에서 사용되는 것들의 집합. 얇은 의존성을 위해 프로젝트 내 기타모듈 참조 없..

Programming/Java 2022.01.21