Spring boot application.yml Configuration
·
개발
# application.ymlapp: name: MyApplication version: 1.0 features: enableFeatureX: true enableFeatureY: false #kotlin - 클래스는 위의 설정 값으로 매핑됨@ConfigurationProperties("app")class AppProperties { lateinit var name: String lateinit var version: String lateinit var features: Features class Features { var enableFeatureX: Boolean = false var enableFeatureY: Boolean = f..
보상 트랜잭션으로 분산 환경에서도 안전하게 환전하기!
·
개발/Server
1. 분산 환경이 만들어진 이유?- monolithic system : 서비스가 커지며 배포/개발 경험/단일 장애점/확장성에 문제가 발생- MSA로 분리 -> 기존에 존재하던 로직들을 분리된 서버로 옮겨가는 방식- 신규 domain에 대해서는 DB까지 분리된 MSA서버에 개발- 환전이 같은 DB + 단일 서버에 구현되어 있다면, 굉장히 간단하게 구현이 가능함. e.g) transaction을 열어 각 계좌(원화/외화)에 업데이트 후 transaction commit하면 됨 (쉽게 원자성 보장가능)- 분산 환경에서 원화 계좌/ 외화 계좌가 분리되고 각각의 DB를 사용할 경우?! 분산 트랜젝션을 통해 원자성을 보장해야함  2. 2PC(2 phase commit) vs SAGA(Saga pattern)- 분산..
NestJs - Mircoservices
·
개발
nest는 마이크로 서비스 아키텍처를 지원합니다. 문서에서 다루었던 대부분의 개념들( injection, decorators, exception filters, pipes, guards ...)은 마이크로 서비스에 공통적으로 적용됩니다. Nest는 implementation 상세 정보를 추상화합니다. 덕분에 HTTP/websocket/Microservice에서 같은 component들이 실행될 수 있습니다. 이번 section에서는 Nest에서의 microservice에 대해서 다뤄볼 것입니다. Nest에서 microsercie는 근본적으로 http와 다른 전송 수단을 사용합니다. Nest는 microservice instance 간 전송에 책임지는 built-in transport layer 도구인 "..
GIT 서버 구축하기 #1
·
개발/인턴
소프트웨어 버전 관리 방식 공유 폴더 방식 : 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장 윈도우 폴더 공유 클라이언트 서버 방식 : 버전 관리 자료가 중앙 시스템에 저장 관리 SVN - 모든 버전 관리는 서버에서 수행 분산 저장소 방식 : 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장되어 관리 GIT Git 기본 명령어 1. commit 프로젝트의 변경 이력을 스테이지에 올리는 명령어이다. 2. stage 변경사항의 이력들이 저장되는 공간을 index라 한다. commit을 통해 변경사항이 반영되기 전 index에 기록하는 행위를 stage 또는 staging이라한다. git add 파일명 #해당 명령어를 통하여 commit 전 staging한다 3. branch 누가 어..
APM 소스 설치 - Ubuntu 20.04 + Apache 2.4.46 (수동설치)
·
개발/Server
Apache 수동 설치하기 1. apr 설치 (에러에 늪에 빠지고 싶지 않다면 에러 먼저 읽어보고 시작하는 걸 추천! ) $ sudo su /usr/local# mkdir apache /usr/local# wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz /usr/local# wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz /usr/local# tar xvfz apr-1.7.0.tar.gz /usr/local# tar xvfz apr-util-1.6.1.tar.gz /usr/local# wget https://www.apache.org/dist/apr/apr-1.7.0.ta..