Dart 기본 예제

이 글은 기본적인 Dart 예제 코드를 작성한 글입니다. 예제 코드를 통해 언어의 핵심적이고 간단한 특징들을 살펴보도록 하겠습니다. // 함수 선언 void printInteger(int aNumber) { print('The number is $aNumber.'); // 표준 출력 장치로 출력 } // 앱의 진입 포인트 void main() { var number = 42; // 변수 선언후 초기화. printInteger(number); // 함수 호출 } // 코멘트를 쓰는 법입니다. /// 여러 줄의 코멘트를 남길땐 이렇게 사용합니다. void 특별한 타입입니다. 이 값이 절대 쓰이지 않는다는 뜻이죠. printInteger나 main 같이 void return 타입을 가진 함수는 명시적으로 값을..

Dart 2021.08.27 0

MSA에서 다른 서비스의 트랜잭션이 실패된다면 어떻게 해야할까?, Saga

이 글은 MSA 환경에서 다른 서비스의 트랜잭션 Fail으로 인한 보상로직을 작성하는 방법에 대해서 다루는 글입니다. 이 글을 쓰는 이유 최근에 MSA하다가 A 컴포턴트에서 트랜잭션을 마치고, B 컴포넌트에 이벤트를 던져두었더니, B 컴포넌트가 제대로 처리를 못하면 어떻게 해야하나라는 질문을 받았습니다. 그래서 해결책을 찾아보다가 이 해결책으로 Saga pattern을 알게 되었고, Saga pattern에 대해서 공유하고자 글을 씁니다. https://microservices.io/patterns/data/saga.html Microservices Pattern: Pattern: Saga Implement transactions using a saga, which is sequence of local ..

Web 2024.04.13 0

스프링에서 싱글톤으로 관리하는 빈의 생성주기

스프링 빈 생성주기에 대해서 배웠다. 정확히는 스프링에서 싱글톤으로 관리하는 빈에 대한 생성주기였다. 스프링 컨테이너 생성 스프링 컨테이너의 생성은 말 그대로 Application Context(이하 스프링 컨테이너)의 생성이다. 빈 객체 등록 스프링 컨테이너가 생성되면 빈 객체 등록이 이뤄진다. 이때, 빈이 생성자 주입을 사용하도록 되어있다면, 필요한 의존관계가 빈 객체등록 시점에서 이뤄진다. 의존관계 주입 만약 모든 의존관계가 다 생성자 등록이라면 빈 객체등록이 끝나는 시점에 의존관계 주입도 이미 끝나있을 것이다. 이 의존관계 주입단계에서는 수정자 주입이나, 필드주입을 받는 빈이 주입을 받는다. 초기화 콜백 위 단계에서 의존관계가 주입된 빈들은 초기화 콜백이 수행된다. 초기화 콜백은 Initializ..

Spring 2023.01.26 0

루씬이란?

이 글은 루씬에 대한 소개글입니다. 안녕하세요 정우현입니다. 오늘은 엘라스틱 서치의 본체라고 할 수 있는 루씬에 대해서 소개하려고 합니다. 그 과정에서 아래와 같이 세 가지 내용을 다룰 생각입니다. 왜 루씬이 엘라스틱의 본체라고 이야기하는지 루씬에서 인덱싱은 어떻게 이뤄지는지 검색을 하는 방식은 어떻게 되는지 루씬이 사실 본체다 저는 엘라스틱 서치가 루씬을 베이스로 만든 검색엔진이라고 했을때 루씬이 어떤 역할인지 몰랐습니다. "엘라스틱 서치 내부에서 루씬이 가벼운 역할을 하나보다" 이정도로만 생각했습니다. 하지만 괜히 엘라스틱 서치 위키피디아에 "based on lucene library"라고 바로 나와있는게 아니었습니다. 사실 엘라스틱 서치는 루씬이 본체입니다. 엘라스틱 서치는 루씬을 분산형으로 만들어..

Lucene 2022.09.20 0

Dart 개요 번역

이 글은 www.dart.dev/overview를 번역한 글입니다. * 이해하기 쉽도록 의역을 했는데요. 마음에 안드시더라도 양해 부탁드립니다. dart는 어떤 플랫폼에서든 빠르게 개발하기위해 최적화된 언어입니다. 이 언어는 가장 생산적인 언어를 제시하는 것이 목표인데요. 다양한 플랫폼에서 개발 가능해야하고, 다양한 플랫폼에서 개발할 수 있는 것처럼 다양한 해당 플랫폼들에서 앱 프레임워크가 동작하게 하기 위한 언어입니다. 언어는 기술적 범위에 의해서 정의됩니다. 이 기술적 범위는 개발과정에서의 선택에 의해서 정의되는데요. 언어의 강점과 어떤 것을 처리할지를 개발하면서 선택하는 과정에서 형성됩니다. 언어는 그 기술적 범위, 즉 언어의 능력과 강점을 형성하는 개발 과정에서 이루어진 선택으로 정의됩니다. Da..

Dart 2021.08.26 0