-
MSA 와 Log - 중앙 집중식 로깅 ELK stack 편
이 글은 MSA 에서의 로그 생태계와 중앙 집중식 로깅 솔루션 중 하나인 ELK stack 에 대해 설명합니다. 로그 관리의 난제 중앙 집중식 로깅 로깅 솔루션 종류 클라우드 서비스 내장 가능 (=사내 구축형)한 로깅 솔루션 컴포넌트들의 조합 ELK Stack 이란? Elastic Stack 이란? ElasticSearch, Kibana, Logstash 설치 ElasticSearch 설치 Kibana 설치 Logstash 설치 Springboot에 Logging 설정 Kibana 를 통해 여러 마이크로서비스의 로그를 통합하여 조회 Index 생성 로그 조회 시작하며 MSA 는 복잡한 모놀리식 시스템을 더 작고...
-
트리와 스킵리스트
시작하며 이번 포스팅에서는 간단하게 B- 트리, B+ 트리와 스킵리스트에 대해 짤막하게 소개해보고자 한다. 트리란? 트리란 노드와 간선을 이용하여 데이터를 계층적으로 표현하는 비선형 추상 자료구조 중 하나이다. 노드와 간선으로 이루어져있다는 점에서 알 수 있듯이 본질은 그래프이며, 트리는 그래프의 한 형태이다. 트리, 특히 이진트리를 이용할 경우 원하는 데이터를 찾고자 할 때 크나큰 강점이 있기 때문에 매우 널리 쓰이며 수많은 변형 구조가 있는걸로도 유명하다. 트리는 왜 검색에 유리한가? 간단히 말해 데이터가 삽입될 때부터 애초에 정렬되어 삽입되기 때문이다. 배열이나...
-
[JS] 행복한 신기능
ES2020, ES2021 모던 스크립트 기법을 나누는 분기점이 되었던 ES6(ES2015)가 발표된지 어느덧 6년째가 되었습니다. 작년말에는 ES12(ES2021)가 발표되었고, 그간 업데이트 된 추가 기능 중 흥미로운 기능들이 있어 몇가지 소개하고자 합니다. Optional Chaining (?.) 예전에 웹뷰 기반의 앱 서비스를 하던 때 처음으로 iOS 개발자분과 협업을 할 수 있는 기회가 있었고, bridge통신이 중요했기에 서로 코드를 공유하며 일했던 적이 있었습니다. 그때 처음으로 swift 라는 언어를 접할 수 있었고, 당시 자바개발에만 푹 빠져있던 저에게 충격적으로 다가왔던 문법이 있었는데요, 그건 바로 nil...
-
WebClient
WebClient? 일반적으로 Spring 에서 웹 클라인어트를 이용시에는 RestTemplate를 이용하고 있었습니다. 하지만 Spring 5 버전 부터는 유지관리 모드로 진행되며, WebClient 를 사용하는 것을 권장하고 있습니다. [https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html] WebClient와 RestTemplate의 차이를 간단히 설명하면 RestTemplate은 Blocking I/O 기반의 Synchronous API Non-Blocking I/O 기반의 Asynchronous API 입니다. 예를 들어 3초, 5초 가 걸리는 요청을 각각 호출할 경우 RestTemplate은 3초 요청의 응답 처리 후, 5초 요청의 응답을 처리하기 떄문에 총 8초가 WebClient는 각각 응답 처리를 하므로 총 5초가 소요됩니다. 의존성 설정...
-
Fastlane을 활용한 앱 자동배포 구축 - IOS
소개 Fastlane은 루비 기반 클라이언트 자동빌드를 위한 오픈 소스 입니다. 만약 IOS에서 활용한다면 TestFlight 나 Appstore 업로드를 커맨드 라인으로 수행할 수 있고 또한 Code Signing 도 쉽게 관리할수 있습니다. 새로운 버전의 앱을 업데이트 한다고 가정하면, 그 일련의 과정들이 번거롭고 개발자가 일일히 신경 써야 하는 측면이 많습니다. 보통은 아래와 같은 배포과정을 거쳐야합니다. 앱스토어 커넥트에서 다음버전을 생성하고 필요하다면 미리 테스트플라이트에 업로드하여 새루오누 버전에 대한 빌드 검수를 받아놓는다. Info.plist 기입된 앱 버전과 빌드 번호를 증가 시켜야하며, 프로젝트의 타깃이...