반응형

분류 전체보기 41

Scouter에 Telegraf 연동해서 인프라 모니터링 확장하기

Scouter오픈소스로 제공되는 애플리케이션 성능 모니터링(APM, Application Performance Monitoring) 툴입니다Java 애플리케이션 실시간 모니터링으로 Heap, GC, TPS 관련 모니터링 뿐만 아니라CPU, Memory 도 모니터링을 지원합니다무엇보다 가볍고 적용하기가 쉬워서 여러곳에서 잘 쓰이는걸로 알고있습니다 스카우터 구조이렇게 되어있습니다agent가 수집서버로 모니터링 정보를 보내고,client에서는 수집서버에 정보를 가져와 보여주는 역할을 합니다여기서 webapp 도 있는데 프론트엔드 서버가 있어 client는 설치없이 웹으로 확인 할 수 있습니다 Scouter + Telegraf공식문서에는"Scouter-telegraf Server 기능을 사용하면 Telegraf..

AWS에 Google IDP 연동해보자:계정 연동 설정 과정

왜 IAM Identity Center가 아닌 IAM으로 했나?처음에는 IAM Identity Center로 구현하려 했는데, 두 가지 이유로 IAM을 선택했습니다:조직 구조의 제약: IAM Identity Center는 계정에 권한을 주려면 AWS Organization을 사용해야 하는데, 우리 회사 계정은 MSP 기업이 이미 사용 중이어서 접근이 불가했어요.설정의 간편함: IAM으로 하는 방법이 더 간단하고 직관적이었습니다.사전 필요 조건시작하기 전에 필요한 권한들입니다:Google Workspace Admin 설정 권한AWS IAM 설정 권한이 두 가지가 있어야 진행할 수 있어요.Google Workspace 설정하기1. SAML 앱 설정먼저 Google Workspace에서 SAML 설정을 해줘야..

[기초] Flutter State 관리

StatelessWidget기본 구조class StateLessExample extends StatelessWidget { const StateLessExample({super.key}); @override Widget build(BuildContext context) { return const Placeholder(); }}State 상태 값 없이 정적인 페이지에 사용StatefulWidget기본 구조class StatefulExample extends StatefulWidget { const StatefulExample({super.key}); @override State createState() => _StatefulExampleState();}class _StatefulExamp..

[기초] Flutter Widget, Layout

WidgetFlutter UI 는 매우 중요하다Flutter UI의 구성은 Widget으로 구성한다Widget TreeWidget을 블록과도 같기 때문에 수평, 수직 관계를 나타내는데 중요한 개념이다Stateless / Stateful Widget상태관리는 프론트엔드에서 중요한 요소이다Flutter에서는 이를 Stateless / Stateful Widget으로 나누었다말그대로 less에서는 정적페이지 구성, ful에서는 동적페이지 구성에 쓰인다 기본 위젯MaterialApp꼭대기 위젯최상위 위젯앱의 전반적인 구조와 동작을 정의 Scaffold앱 구조appBarbody 등.. 시각적 레이아웃 구조 배치 LayoutContainer기본 박스형 위젯 Column여러개의 위젯을 top down 형식으로 배치R..

[기초] Dart Language 기초 변수, 연산자, 클래스, 함수, 분기문, 반복문, 예외처리

기초에 대한 정리JavaScript 와 매우 비슷하고, 다른 언어들과 크게 다르지 않은 모습이다. 변수참 / 거짓bool정수int실수double문자열StringNullnull  연산자산술+, -, *, /, % ....비교==, =, != ....논리&&, ||, ??할당=, *=, -=, /= ...  클래스객체 만들기 위한 Template필드, 메서드, 생성자로 구성필드클래스 내부 선언된 데이터메서드클래스 내부 선언된 기능생성자클래스 인스턴스 생성시 사용 함수/메서드리턴타입 함수명 (매개변수) {    return 리턴} ex) int sum(int a, int b) {    return a+b;} 분기문if else if elseif (condition1) {// 실행 1}else if (condi..

[기초] Dart Language 는 무엇인가!

Dart는누가 만든 언어인가구글에서 만들었고 flutter보다 오래된 역사(?)를 가지고 있다 왜 만든 언어인가JavaScript를 대신한 웹브라우저 언어지원을 위해서였지만 지금은 flutter에서 쓴다 무슨 장점이 있는가Dart는 컴파일러 최적화와 함께 빠른 성능을 제공하도록 설계되었다.Just-In-Time (JIT) 및 Ahead-Of-Time (AOT) 컴파일을 모두 지원JavaScript의 영향을 많이 받아서 배우기 쉽다.타입지정이 있다객체지향언어이다근데 함수형 프로그래밍도 지원한다 https://dartpad.dev DartPad dartpad.dev 에서 쉽게 테스트 가능하다

[JAVA] 컴파일과 실행하는 과정

컴파일 컴퓨터에서 컴파일은 기계가 해석할 수 있는 언어로 바꾸는 과정 JAVA 컴파일 OS마다 기계어를 읽어드리는 방식이 다르기 때문에 JAVA는 컴파일러를 통해 .class(바이트코드)로 변환 후 JVM으로 OS에 맞춰서 기계어로 바꾼다 자바 소스코드를 자바 컴파일러를 통해 컴파일한다 컴파일된 .class(바이트코드)를 JVM 클래스 로더에 전달 JVM(JAVA Virtual Machine) 클래스 로더를 통해 컴파일된 JAVA코드를 읽어 들여 OS에 맞게 기계어로 해석해준다 OS에 따라 다르게 컴파일할 필요없이 JVM이 그 역할을 한다 Class Loader Loading -> Linking -> Initialization 클래스 파일 -> 사용하기 위해 검증 -> 기본 값으로 초기화 Runtime ..

[자바스크립트] 프로미스(Promise)의 개념과 사용

Promise Promise 객체에는 state 와 result가 있다 Promise가 만들어 지면 state : pending result : undefined 상태이다 Promise 생성은 생성자 new를 사용해서 생성 인자로는 resolve, reject 콜백함수가 있다 resolve는 성공했을때 실행하는 함수 reject는 실패했을때 실행하는 함수다 실제로 생성해서 각각 실행해 보면 resolve함수에 "success"를 넣고 생성하면 state : fulfilled result : "success" 로 바뀐다 반대로 reject함수에 "fail"를 넣고 생성하면 state : rejected result : "fail" 로 바뀐다 이렇게 실행해도 되지만 함수로 만들어서 실행해도 된다 예제 ..

[알고리즘]너비우선탐색(BFS)

너비 우선 탐색 a와 인접한 노드들을 차례로 방문 후 인접한 노드들의 이웃들을 차례로 방문한다 큐 : 방문 차례를 기록 BFS 구현 DFS보다 구현하기 쉽다 DFS에서 스택을 큐로 바꾼다 BFS의 큐는 방문한 순서대로 넣어진다 방문한 순서대로 들어가 지금 탐색하고 있는 노드의 인접한 노드를 다 방문했다면 큐에 저장된 순서대로 빼서 그 노드의 인접한 노드를 탐색 python

[알고리즘]깊이우선탐색(DFS)

깊이 우선 탐색 하나를 깊이 파고 든다 a와 인접한 다른 노드 차례로 순회한다 a와 인접한 노드 b를 방문했다면, a와 인접한 다른 노드를 방문하기 위해서는 b와 인접한 노드를 전부 방문한 뒤 a와 인접한 b를 제외한 다른 노드를 방문할 수 있다 스택 : 경로 정보의 추적을 기록 DFS 구현 딕셔너리와 스택을 활용 인접한 노드를 저장하는 adjDict는 연결리스트로 노드의 데이터를 key로 갖는다 방문 정보를 확인하는 visitedInfo는 노드의 데이터를 key로 value에는 방문했을때 1을 저장 python