분류 전체보기 11

[MQ] RabbitMQ, Kafka, ActiveMQ 비교 (3)

📌 AMQP : Advanced Message Queue Protocol메시지 지향 미들웨어(MOM)을 위한 개방형 표준 응용 계층 프로토콜AMQP는 일반적인 메세지 큐와 비슷하지만, Exchange와 Binding이라는 개념이 있어서 더 유연하게 처리할 수 있다.Exchange라는 라우터가 메세지의 경로를 결정하고, Binding이 그 경로를 설정해준다.▪️AMQP의 주요 개념Producer (생산자): 메세지를 만들어서 Exchange에 Publish한다.Consumer (소비자): 메세지를 Queue에서 꺼내서 처리한다.Exchange (교환기): Producer가 보낸 메세지를 어떤 Queue로 보낼지 결정하는 라우터다.Queue (큐): Consumer가 메세지를 소비하기 전까지 메세지가 보관..

Backend 2024.12.13

[MQ] Message Queue 관련 기본 개념 정리 (2)

📌 메세지 지향 미들웨어(MOM)응용 소프트웨어 간의 비동기적 데이터 통신을 도와주는 소프트웨어여러 프로그램들이 서로 메시지를 주고받을 수 있도록 해주는 중간 다리 역할 메시지를 보관 / 라우팅 / 변환 할 수 있는 기능을 제공 ▪️보관 (Message Storage)MOM은 메세지를 백업하거나 보관할 수 있다.백업 기능을 제공함으로써 지속성을 제공한다.▶️ 송신자와 수신자가 동시에 네트워크 연결을 유지할 필요가 없게 된다.예를 들어 송신자가 메세지를 보냈을 때 수신자가 네트워크 문제로 잠시 받을 수 없더라도, 메세지는 미들웨어에서 보관되며 나중에 수신자가 메세지를 받으면 된다. 이렇게 해서 메세지의 지속성을 보장할 수 있다.▪️라우팅 (Message Routing)MOM은 메세지를 라우팅하는 역할을 ..

Backend 2024.12.13

[MQ] 메세지 전달과 설계 이슈 - 운영체제 프로세스 상호작용 (1)

📌 프로세스 상호작용프로세스들이 서로 상호작용할 때 필요한 두 가지 기본적인 요구사항은 동기화(synchronous)와 통신(communication)이다.  동기화는 상호배제를 보장하기 위해 필요하고, 통신은 프로세스들 간에 정보 교환을 위해 필요하다. ➡️동기화, 통신을 동시에 제공하는 대표적인 방법이 메시지 전달이다. ▪️메시지 전달을 위해 제공되는 가장 기본적인 primitive send : 프로세스는 전송하려는 정보를 메시지 형태로 만들어 destination(목적 프로세스)로 보낸다.receive : 프로세스는 receive를 호출하여 source(메시지를 보낸 프로세스)가 보낸 정보를 수신할 수 있다.📌 설계 이슈RabbitMQ, ActiveMQ, Kafka의 특징, 장단점은 아래의 메시..

Backend 2024.12.12

[TA] 텍스트 매치, 다중 컬럼 처리

기존 커스텀 키워드 함수GridCellTextByColumnValue(dataTestValue, targetColumn, targetText, expectColumn, expectText): data-test가 dataTestValue인 그리드의 targetColumn열에 targetText가 있는 행에서, expectColumn열의 내용이 expectText인지 확인하는 verify 용도의 커스텀 키워드 함수이다. 예시를 들어 다시 설명해보자면아래는 출자 정보를 담은 그리드 중 일부분이다. GridCellTextByColumnValue("fd0003-grid-invsDstrb", "약정 좌수", "2,600", "출자 납입액", "2,600,000,000")을 이용해해당 그리드의 row값이 제대로 들어..

TA 2024.12.02

[Flutter] BottomNavigationBar의 splash 효과 제거 | BNB custom(2)

문제상황이전 포스팅인 BNB custom(1) 에서 시스템 네비게이션 바를 흰색으로 고정했다    근데 다시 검정 시스템 네비바로 바꿔서 보자면  눌렀을 때 플러터 BNB 자체의 기본적인 스플래시 효과로 인해 정신 사납다...스플래시를 조절하거나 없애는 것이 필요해보였다.    해결BottomNavigationBar 외부에 Theme으로 감싸서splashColor와 highlightColor를 투명인 Colors.transparent로 바꿔주면 된다. [간단 구조]컨테이너 ( 그림자 효과 (),    스플래시 효과 제거 (        커스텀 BNB ()    ))     [코드]Container( decoration: BoxDecoration( boxShadow: [ ..

Mobile 2024.11.29

[Flutter] systemNavigationBar 색상 변경 | BNB custom(1)

문제상황BottomNavigationBar(BNB) 디자인이 확정돼서 적용을 하려했는데디자이너 분 말씀으로는 인디케이터 공간까지 고려해서 BNB 공백을 타이트하게 잡았다고 하셨다.   IOS 기준으로는 별도의 설정 없이 systemNavigationBar가 알아서 BNB 배경색에 맞게 된다.   근데 Android (Pixel Phone) 기준으로는 라이트모드, 다크모드 상관없이 이렇게 떴다.삼성 폰 기준으로는 라이트 모드, 다크 모드 각각 흰색 검은색으로 떴다.   근데 우리가 12월 출시 때는 다크모드 고려안하고사용자 디바이스의 모드와 상관없이 라이트모드로 보이도록 하기로 했다. 따라서 저 시스템 네비게이션 바를 흰색으로 바꿔야하는 상황이다.   해결main.dart에 해당 코드를 추가하면 된다.@o..

Mobile 2024.11.29

[Flutter] WebView의 Local Storage 주입

문제 상황원래 각자 dev(fe) 서버에서 쓰는 테스트용 본인 계정이 있는데,나는 전자결재 모듈을 개발해야 했기 때문에테스트를 위해 기안자, 결재자 최소 두 명 이상의 계정이 필요했다. 다만 나는 ta 담당자였기 때문에 admin 계정까지 가지고 있었어서 총 두 개의 계정이 있긴 했다.하지만 멀티 테넌트 방식을 이용하고 있기 때문에admin 계정(qa 테넌트)과 개인 계정(개발 테넌트)의 테넌트가 달라서 같이 쓸 수 없는 상황이었다. 어차피 내 개인 계정도 관리자 권한이 있기 때문에 모바일 테스트용 신규 사용자 계정을 생성했었다. 그런데 어느날 우리 회사 슬랙 전체방에 이런 메세지가 올라왔다. 해당 계정으로 회사명이 없는 채 로그가 남아서 확인차 말씀해주신 것이라고 하셨다. 분명 이 계정에 회사 연결도 ..

Mobile 2024.11.13

[QA] 테스트 자동화

지금 현재 인턴을 하고 있는 회사에서 TA 업무를 담당했었다.테스트 자동화를 어떤식으로 활용하는지 기록하고 싶어서 해당 카테고리를 생성했다.QA 조직에는 되게 다양한 역할이 있다. 유스케이스 작성, 유스케이스를 스크립트로 옮겨서 작성 등등…나는 키워드 함수 제작을 담당 했는데, 이게 무엇이고 왜 필요한지 어떻게 하는건지 등등을 정리해보려고 한다.TA 카테고리에는 이 포스팅 이후 groovy언어와 키워드 함수 작성법, 카탈론 스튜디오 사용법의 글을 쓸 예정이다.QA / TAQA와 TA란?QA가 더 넓은 개념이고 그 안에 TA가 있는 것인데, QA: 개발 과정 중 품질 보증에 초점을 맞춤 (개발단계의 품질 보증)  1차 QA (API test) : 백엔드에서 발행 / 프론트에서 검수  2차 QA (Proce..

TA 2024.11.05

[Flutter] 다이얼로그 내부에서 체크박스 사용하기 | StatefulBuilder 추가 | 상태 정보 관리 및 저장 방법 | FlutterSecureStorage

문제상황 AlertDialog 위젯 내부에 있는 Checkbox에 체크를 했는데,체크 표시가 반영 안되는 문제가 있었다.  Scaffold 위젯 body 내부의 Container에 있는 체크박스는위의 Checkbox 위젯의 코드와 다를게 없었지만 동일한 문제가 일어나지 않았다.  아마 Checkbox 위젯 코드 자체의 문제는 아닌 듯 했는데...   여기서 특이한 점은 체크박스 표시가 동작 자체를 아예 안하는 것이 아닌,x 표시를 눌러 다이얼로그를 닫았다가 다시 다이얼로그를 열면 체크가 반영이 되어있었다. 즉, 바뀐 체크 상태를 반영하기 위한 새로고침이 필요한 것이라고 판단했고 해결 방법을 찾아 보았다.  원인 [로그인 정보 저장 체크박스 위치]: Scaffold 내부의 Container 내부onChan..

Mobile 2024.10.15

[Flutter] 버튼 공백 지우기 | ElevatedButton와 GestureDetector 비교 | 위젯 분석

문제상황 '시작일' 컨테이너 내부의 아이콘 버튼들을 우측 끝에 두고 싶었다.저 버튼과 버튼을 둘러싼 컨테이너나 패딩 위젯에도 padding, margin 등의 속성에공백을 싹 줄였는데도 화면에선 공백이 있는 것처럼 보인다.  버튼을 꾹 눌러보면 그 버튼의 크기가 보이는데 분명 여백이 없어 보인다.   달력도 꾹 누르면 마찬가지로 저렇게 공백이 없다. 위젯 트리원인을 모르겠어서, 직접 저 공백의 출처를 밝혀내고자 위젯 트리에서 해당 위젯을 눌러 보기로 했다.  웹에서는 f12(개발자도구)를 키면 Elements 탭에서 select element to inspect 버튼을 통해해당 element를 눌러서 그 위치의 코드를 확인할 수 있다. TA 하면서 이 작업을 정말 많이 거쳤는데...모바일에서도 이 작업이..

Mobile 2024.10.08