[Tistory] 1. 리액티브 시스템과 리액티브 프로그래밍

1. 리액티브 시스템이란? 리액티브 시스템은 리액티브한 원리와 원칙을 적용하여 개발된 소프트웨어 시스템을 의미합니다. 쉽게 말하면 어떤 이벤트나 상황이 발생했을 때, 그에 따라 적절하게 반응을 잘 하는 시스템을 말합니다. 2. 리액티브 선언문으로 리액티브 시스템 이해하기 리액티브 선언문 : https://www.reactivemanifesto.org/ko 2.1 Means(방법) 리액티브 시스템에서 주요 통신 수단으로 무엇을 사용할 것인지 표현한 것입니다. 그림에 나와 있는 비동기 메세지 기반 통신을 통해서 구성요소들 간의 느슨한 결합, 격리성, 위치 투명성을 보장하빈다. 2.2 Form(형성) 메세지 기반 통신을 통애서 어떠한 형태를 지니는 시스템으로 형성되는지를 나타냅니다. 그림에서는 리액티브 시스템..

[Tistory] 역대 도주 대사 및 호주 대사

[ 정용관 칼럼 “부르면 귀국” 아니라 “당장 귀국”이 답이다 ] 신성모 주일대사 件 떠올리게 한 이종섭 사건 신성모 주일대사 임명과 이종섭 전 국방장관의 호주대사 임명을 같은 잣대로 비교할 수는 없다. 그럼에도 몇 가지 생각해볼 부분이 있는 건 사실이다. 신성모는 국민방위군 간부들의 부정 착복 등의 중대 사건에 책임을 지고 물러났고, 휘하 간부들은 군법회의에 회부된 상황이었다. 그런 전임 신성모 국방부 장관을 이 대통령은 얼마 되지도 않아 주일 대표부 대사로 내보내겠다며 국무회의에 안건을 올렸다. 신성모에 대한 비판 여론이 들끓고 있던 터. 안건은 부결됐다. 이승만 대통령은 “임명은 내가 하는 것”이라며 강행했고, 신성모는 그해 7월 일본 대표부 대사로 부임했다. 이승만 대통령이 부결을 가결로 뒤집는 ..

[Tistory] [19일차] 왜 ‘엘든링’은 오리진 시스템을 사용했을까?

[19일차] 왜 ‘엘든링’은 오리진 시스템을 사용했을까? Reference ① 엘든링 엘든링을 처음 시작하면, 주인공의 오리진(출신)을 선택하는 UI가 나옵니다. 일반 RPG의 직업/클래스와 유사한 시스템이며, 각 오리진마다 레벨/스탯/보유 장비와 주문이 다르죠. 프롬은 오리진 시스템은 이전 소울 시리즈에서도 사용했었고, 엘든링에서는 10개의 오리진이 디자인되어있습니다. 방랑기사/검사/용사/도적/점성술사/예언자/무사/죄수/밀사/빈털터리가 있죠. 오리진 중 밀사가 레벨 10으로 가장 높으며, 빈털터리가 레벨 1로 가장 낮습니다. 각 오리진 별로 스탯에 맞춰서 장비도 갖추고 있습니다. 예를 들어, 예언자는 레벨 7로 신앙 스탯이 다른 스탯보다 높습니다. 보유 장비도 기도를 사용하기 위한 성인과 불 붙이기 주..

[Tistory] [Spring] 컴포넌트 스캔(Component Scan)

컴포넌트 스캔@Component를 가진 모든 대상을 가져와 Bean에 등록하기 위해 찾는 과정을 말한다. 즉, 빈 설정 파일과 @Bean을 통해 빈을 일일이 지정할 필요가 없다. 즉, 명시적인 등록과 달리, 자동으로 빈을 등록하는 방법이다. 1. xml 파일에 설정하기 2. Java 파일 안에서 설정하기 (*실무에서 많이 쓰는 방법)@Configuration @ComponentScan(basePackages = “com.dx”) public class AppConfig { } 컴포넌트 스캔 대상@Component : 컴포넌트 스캔에서 사용한다.@Controller : Spring MVC Controller에서 사용한다.@Service : Spring Business 로직에서 사용한다.@Repository..

[Tistory] 타입 이레이저

제네릭과 타입 이레이저 다음은 제네릭의 특징 중 하나이다.제네릭은 비구체화(non-reify) 타입이다. 비구체화란, 런타임에는 소거(erasure)가 되기 때문에 컴파일 타임보다 정보를 적게 가지는 것을 의미한다. 여기에서, erasure의 개념이 나온다.타입 이레이저는 자바 컴파일러(JVM)가 컴파일 단계에서 제네릭 코드에서 타입정보를 제거하는 과정이다.이는 자바 런타임 환경에서 호환성을 유지하고, 코드의 일관성을 보장하기 위해 사용한다. 또한, 제네릭이 사용되기 이전 버전(Java 5 이전) 과 호환이 가능하도록 한다. 자바 컴파일 단계의 erasure1. unbounded type(, )은 Object 형으로 바꾼다.public class GenericBox { private T value;..

[Tistory] Redis 란?

Redis 란? Redis는 오픈 소스 기반의 고성능 키-값 저장소이며, 메모리 내 데이터 구조 저장 및 검색을 위한 데이터베이스로 사용한다. Redis는 NoSQL 데이터베이스 중 하나로, 주로 캐싱, 세션 관리,메시지 브로커, 대기열 처리 등 다양한 용도로 활용된다. Redis는 특히 메모리 내 데이터 저장으로 빠른 응답 속도를 제공하며, 디스크에 데이터를 지속적으로 저장하여 데이터 손실을 방지할 수 도 있다. 또한 다양한 데이터 구조를 지원하며, 문자열, 리스트, 해시, 집합, 정렬 집합과 같은 데이터 타입을 다룰 수 있어 다양한 어플리케이션에서 활용 가능하다. 데이터 베이스가 있음에도 불구하고 Redis를 사용하는 이유? 데이터베이스는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생해..

[Tistory] 이펙티브 자바 Item 30 – 이왕이면 제네릭 메서드로 만들라

제네릭 메서드 작성 방법 매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭이다.Collections의 binarySearch,sort 등 알고리즘 메서드는 모두 제네릭이다.제네릭 메서드 작성법은 제네릭 타입 작성법과 비슷하다.타입 매개변수 목록은 메서드의 제한자와 반환 타입 사이에 온다. public static Set union (Set s1, Set s2){ Set result = new HashSet(s1); result.addAll(s2); return result;} 위 코드의 세개의 Set집합이 타입이 모두 같아야 한다. 이를 한정적 와일드 카드 타입을 이용하면 더 유연하게 개선이 가능하다.   제네릭 싱글턴 팩터리 (불변 객체가 제네릭 타입) 불변 객체를 여라 타입..

[Tistory] Kafka 전체 흐름 이해하기

KafkaKafka는 링크드인에서 개발한 분산형 이벤트 스트리밍 플랫폼데이터 파이프라인을 단순화하기 위해 만들어졌고 현재는 아파치 재단에서 관리    이벤트 스트리밍이벤트 스트리밍은 데이터베이스, 센서, 모바일, 클라우드 서비스, 소프트웨어 애플리케이션과 같은 이벤스 소스에서 실시간으로 데이터를 캡처하고, 나중에 검색할 수 있도록 내구성있게 저장하고, 이러한 데이터들을 처리하여 다양한 대상 기술로 라우팅하는 방식  어디에 사용될까?은행, 증권 거래소와 같은 곳에서 금융, 결제 데이터 실시간 처리회사의 여러 부서에서 생산된 데이터를 연결, 저장 및 사용할 때데이터 플랫폼, 이벤트 중심의 아키텍처, 마이크로 서비스의 기반 역할    Kafka 전체 구조크게 보면 프로듀서와 컨슈머, 그리고 중간에서 연결해주는..

[Tistory] [09] 파일 시스템

파일과 디렉터리파일하드디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합파일 관련 부가 정보를 속성 or 메타데이터라고 함파일 속성과 유형확장자를 읽기가 가능해야 파일을 열 수 있음!파일 연산을 위한 시스템 호출1. 파일 생성2. 파일 삭제3. 파일 열기4. 파일 닫기5. 파일 읽기6. 파일 쓰기 디렉터리파일들을 일목요연하게 관리하기 위해 디렉터리를 이용폴더라고도 부름옛날 운영체제에서는 하나의 디렉터리만 존재하여 모든 파일이 하나의 디렉터리 아래에 있었음이를 1단계 디렉터리라고 함현재는 트리 구조 디렉터리를 사용해당 파일의 위치를 알기 위해, 경로(Path)를 사용절대 경로와 상대 경로절대 경로파일이 가지는 절대적인 경로루트 디렉터리에서의 자신까지의 경로상대 경로해당 파일을 불러오는 위치에서의..

[Tistory] 배포 정리하기 (1) ec2 발급, ufw 설정, swap 메모리 설정

대략적인 배포 순서…ec2 발급ufw 설정 및 port 구성도swap 메모리 설정docker 설치docker-compose jenkins 설치jenkins gitlab 연동(project-build) 및 플러그인 설치dockerHub 설치 및 연동(docker-build)dockerScript 작성(pipeline)NginxS3 설치 및 설정RDS 설치 및 설정 EC2 설정 EC2 (Elastic Compute Cloud) ???- 아마존 웹 서비스(AWS) 에서 제공하는 클라우드 컴퓨팅 서비스- 클라우드 컴퓨팅 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공  => AWS 에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것- 사용한 만큼 비용을 지불하기..