본문 바로가기

분류 전체보기156

KPT 회고 (Keep, Problem, Try) KPT는 팀이 무엇을 유지하고, 문제를 해결하며, 새로운 시도를 할 것인지를 논의하기 위한 프레임워크입니다.  Keep (유지): 잘 된 점 또는 효과적이었던 것을 계속해서 유지하기 위해 기록합니다.예시: "매일의 스탠드업 미팅이 팀의 협력을 증진시켰다."Problem (문제): 문제가 있었던 점이나 개선이 필요한 부분을 논의합니다.예시: "테스트 과정에서 커뮤니케이션 오류로 인해 시간 지연이 발생했다."Try (시도): 다음 스프린트에서 시도해 보고 싶은 새로운 아이디어나 개선 방안을 제안합니다.예시: "다음 스프린트에서는 테스트 계획을 더욱 상세히 작성하고 팀 내 모든 구성원과 공유하자." 예시: 웹 애플리케이션 개발 프로젝트KPT 예시Keep: "주기적인 코드 리뷰가 코드 품질 향상에 도움이 되었다.. 2024. 7. 27.
5F 회고 (Fact, Feelings, Findings, Future Action, Feedback) 5F는 의사결정 또는 분석 과정을 지원하는 다섯 가지 요소를 의미하며, 특정 분야나 상황에 따라 다르게 정의될 수 있습니다. 일반적으로는 다음과 같은 다섯 가지 요소를 포함합니다:Fact (사실): 객관적이고 검증 가능한 데이터나 정보. 예를 들어, 회사의 매출액, 시장 점유율, 고객 만족도 조사 결과 등이 있습니다.Feeling (감정): 개인이나 조직의 주관적인 감정이나 의견. 예를 들어, 직원들이 새로운 프로젝트에 대해 느끼는 기대감이나 우려 등이 포함될 수 있습니다.Finding (발견): 분석을 통해 도출된 통찰이나 새로운 사실. 예를 들어, 특정 제품이 특정 연령대에서 인기가 있다는 사실을 발견한 경우가 이에 해당됩니다.Forecast (예측): 미래에 대한 예측이나 전망. 예를 들어, 시장 .. 2024. 7. 27.
[Kafka] 트랜잭션, exactly-once Kafka Transaction?스트림 처리 애플리케이션을 위해 도입된 기능이다. exactly-once 을 보장해준다.동작트랜잭션 프로듀서를 사용할 경우, 트랜잭션 코디네이터가 트랜잭션를 관리하게 된다.출력 토픽에 레코드 저장, 오프셋 증가 2가지 작업이 동시에 커밋되는 것을 보장한다. (Atomic multipartition write)트랜잭션이 해결할 수 있는 문제들1. 앱 크래시로 인한 중복 메시지 문제앱이 토픽에 메시지를 쌓았는데 커밋은 못한 경우 중복 메시지가 쌓일 수 있음.Atomic multi partition write 보장으로 해결2. 브로커 응답 문제로 인한 인한 중복 메시지 문제브로커가 커밋은 성공했는데 성공 응답에 실패한 경우, 프로듀서는 재요청을 보내며 중복 메시지가 쌓일 수 있.. 2024. 6. 24.
[Security] SQL 인젝션 사이드 프로젝트로 만든 서비스에 에러 로그가 올라와 확인했는데 누군가 취약점을 파악하기 위한  악의적인 시도를 한 것으로 확인되었다.SQL 인젝션 공격을 시도했는데 다행히 대응이 되어 있어서 문제는 없었다. 보안 관련 이슈가 직접적으로 발생한 것은 처음이라 기록한다.악의적인 요청SQL 인젝션?웹 애플리케이션의 데이터베이스와 상호 작용하는 SQL 쿼리를 조작하여 악의적인 SQL 명령을 삽입하고 실행할 수 있도록 하는 보안 취약점입니다. SQL 인젝션 공격은 데이터 유출, 데이터베이스 조작, 관리자 권한 탈취  /api/v1/products/-1%20OR%202+106-106-1=0+0+0+1이 공격은 -1 OR 2 + 106 - 106 - 1 = 0이라는 조건을 만들어, 논리적으로 참인 구문을 삽입하여 .. 2024. 6. 8.
[ITSM] SLA(Service Level Agreement), SLO(Service Level Objectives), SLI(Service Level Indicators) SLA(Service Level Agreement)- 서비스 수준 계약은 가동 시간, 대응 및 책임과 같은 측정 가능한 메트릭에 대한 공급자와 고객 간의 계약이며, 약속을 이행하지 못했을 때의 결과를 나타낸다.- 재정적 불이익, 크레딧 혹은 라이센스 연장이 포함된다. SLO(Service Level Objective)- 서비스 수준 목표는 가동 시간 또는 대응 시간과 같은 특정 메트릭에 대한 SLA 내 계약- SLA가 공식적인 계약이라면, SLO는 고객에게 하는 개별적인 약속- SLO는 고객의 기대치를 설정하고 IT 팀에게 어떤 목표를 달성하고 측정해야 하는지 알려줌 SLI(Service Level Indicators)- 서비스 수준 지표는 서비스 성능을 측정하는 지표로, SLO가 잘 지켜지고 있는지 판.. 2024. 6. 6.
[Kafka] KSQL KSQL?Apache Kafka를 위한 SQL 엔진, SQL과 비슷한 문법으로 복잡한 스트리밍 데이터를 쉽게 처리하고, 실시간 대시보드, 모니터링 시스템 및 기타 실시간 애플리케이션을 구축할 수 있음. Stream, TableStream Object연속적인 record의 흐름, 집계보다 데이터 자체를 담는 경우가 많음 Table Object최신상태를 보여주는 데이터를 넣는경우가 많음.재고, 계좌 잔액 등을 생각하면 좋을 듯, key-value형식으로 구성되어 있음  사용 모습Stream 생성 쿼리 2024. 6. 5.
[Kafka] Kafka Stream Stream?- 컴퓨터 과학에서 스트림이란 연속적인 데이터의 흐름, 일정한 데이터 조각의 연속을 의미한다- 일반적으로 Stream 은 업데이트하지 않고, 지우지 않고 쌓기만 한다. 끝이 정해지지 않고 계속되는 불규칙한 데이터를 연속으로 반복 처리할 때 이 또한 스트림 처리라고 부른다.- Data가 순차적으로 도착하여 특정한 컨텐츠를 구성하거나 그 자체가 컨텐츠가 되는 데이터의 흐름 흔히 음악, 영상 등이 실시간으로 송출되어 컨텐츠를 구성할 때 Streaming Service 라고한다. Kafka Streams?  - Kafka Stream은 데이터를 연속적인 레코드로 취급하고, Kafka에 저장된 토픽에서 데이터를 읽어 들여 처리하며, 처리 결과를 다시 Kafka 토픽에 출력해주는 Library, Fra.. 2024. 6. 5.
[Kafka] MirrorMaker2 MirrorMaker2?Kafka를 MultiCluster 로 이용할 때, Cluster간 데이터 이동이 필요할 때 사용하는 도구 패턴1. Solid Cluster 대응- Solid Cluster: 데이터베이스 및 분산 시스템 분야에서 고가용성, 확장성, 일관성을 보장하는 클러스터링 기술, Active-Active or Active-Standby) 2. Cluster 마이그레이션- 마이그레이션 후 Routing 만 변경하여 운영 중단 없도록 하는 것이 목적- 마이그레이션 완료 전까지 Old Cluster 데이터를 New Cluster 로 동기화 3. 사용용도의 구분과 부하분산, 안전성 추가 확보- 같은 데이터를 적재하지만, 클러스터마다 사용용도가 다른 경우 2024. 6. 5.
[Kafka] Kafka Connect 란? - 카프카란? https://mystudylab.tistory.com/105  KafkaConnectKafka Connect는 손쉽게 Kafka를 이용하는 pipeline을 구성해주는 도구.생성되는 Data pipeline은 데이터 이동과 변환이 목적이며 , 분산된 환경에서 수행하기에 고가용성과 부하분산을 구현.다양한 source와 target을 지원하며, source 데이터를 target 에 적재합니다. 구성요소1. Connector- Source connector: 데이터 소스에서 데이터를 추출해 카프카에 데이터 적재- Sink connector: Kafka에서 데이터를 목적지로 전송2. Task- 커넥터는 하나 이상의 작업을 가질 수 있음- Task는 실제로 데이터를 이동시키는 단위이며,여러 작업은.. 2024. 6. 5.
[Redis] 레디스 데이터 백업 방법 TL;DR- RDB와 AOF 두 가지 백업 방식을 지원한다.- 레디스 복구 시점은 재시작될 때뿐이며, AOF or RDB 존재하면 파일 로드한다. 데이터 영구 저장- 레디스 모든 데이터는 메모리에서 관리된다.- 장애로 인스턴스가 재시작되면 데이터가 손실될 수 있다.- 가용성을 위한 복제 구조이지만 백업과 복제는 목적부터 다르다는 것을 알아야한다.(복제는 가용성, 백업은 장애 상황에서 데이터 복구)   - 의도하지 않게 데이터를 삭제하는 커맨드가 실행되는 경우는 데이터를 안전하게 유지할 수 없음 AOF, RDBAppend Only File- 처리한 모든 쓰기 작업을 차례대로 기록- 복원 시에는 파일을 다시 읽어가며 데이터 세트 재구성- RESP 형태로 저장- 파일 크기가 크고 주기적으로 압축 필요하지만 원.. 2024. 6. 2.