
1. Kafka: 오픈 소스 분산 이벤트 스트리밍 플랫폼으로, 대량의 데이터 스트리밍을 실시간으로 처리할 수 있도록 설계된 메시지 브로커(Message Broker)입니다. source application(클릭로그/결제로그)과 target appplication(로그적재/로그처리)의 결합도를 줄이기 위해서 나왔다. 각종 데이터를 담는 topic, queue의 역할을 하는 것이 있다. 데이터를 넣는 역할은 Producer, 데이터를 가져가는 Consumer는 라이브러리로 되어있어 어플리케이션에서 쉽게 쓸 수 있음.📌 Kafka의 주요 개념1. Producer (생산자)Kafka에 데이터를 발행(전송)하는 클라이언트데이터를 특정 토픽(Topic)에 보냄데이터를 파티션(Partition) 단위로 나눠 저장..

* 목표: 최근 본 상품을 기반으로 생성된 메시지를 카카오 알림톡으로 자동 전송해보자.* 방법: 카카오 알림톡은 사업자 등록증이 필요한 비즈니스 인증만을 허용하므로 카카오 메시지 API로 대체해서 구현해보자. 1. 카카오 개발자 센터에서 https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com새로운 애플리케이션 생성하고 로그인 ON으로 변경. 2. 카카오 로그인 (OAuth 연동)redirect URI 설정: http://localhost:8080/login/oauth2/code/kakao- 카카오 인증이..
✅ 1️⃣ AI 기반 추천 시스템의 동작 방식💡 목표:사용자가 특정 상품을 조회하면, AI가 해당 사용자의 이전 행동 데이터를 분석하여 최적의 상품을 추천한다. [사용자 이벤트 발생 (상품 조회)] ↓ [Kafka] → [Redis (이전 본 상품 저장)] ↓ [AI 추천 시스템 (추천 상품 생성)] ↓ [추천 메시지 생성 및 전송 (SMS, 이메일, 푸시)] ✅ 2️⃣ 1단계: 사용자 행동 데이터 저장 (상품 조회 이벤트 저장)👉 사용자가 상품을 조회하면, 해당 이벤트를 Kafka에 저장하고, Redis에서 조회 이력을 관리한다.public class UserEvent { private String userId; private St..
* 2일차 복습서비스: EC2, VPC, S3, IAM 리소스: EC2 인스턴스, S3 bucket, VPC, IAM User, ARN(Amazon resource name: 식별자)- 글로벌 레벨: IAM- 리전 레벨: VPC, S3 bucket, lambda fuction, DynamoDB table- 가용영역(AZ) 레벨: EC2 instance, Subnet, RDS 서버리스, 완전관리형: 서버관리를 aws가 해준다.로드밸런스는 타겟그룹, 리스너를 만든다.부하분산 정책.오토 스케일링 그룹: 희망용량, 최소용량/최대용량 => 타겟그룹과 연결오토 스케일링 정책: CPU 70%이상일 때 1대 증설 소스 - 빌드환경구성/테스트 - 스테이징(시스템 테스트) - 메뉴얼 승인 - 프로덕션(공용 서버에 배포) ..
* 클라우드 컴퓨팅- 이점: 민첩성, 탄력성, 비용절감, 빠른배포 * aws well-architected 프레임워크: 운영 우수성, 보안, 안정성, 성능 효율성, 지속 가능성, 비용 최적화 6가지 원칙 * 글로벌 인프라- 1개 이상의 aws 데이터센터 = 가용영역(AZ)- 3개 이상의 AZ = 리전- LocalZones, Outposts(온프레미스에서 실행), Wavelength(대기시간이 짧은 5G 디바이스용 애플리케이션) * 엣지로케이션: 캐싱 서비스를 위한 시설물ex) Cloudfront, Route53, Global Accelator 등 * ec2 요금제- 온디멘드- savings plan, 3년 약정할인 3대 이상 * IAM인증/권한명시적 거부: 최우선최소 권한의 원칙: 필요 권한만 부여묵시적..
1. AWS 소개: 클라우드 컴퓨팅클라우드 컴퓨팅: AWS의 IT 리소스를 인터넷을 통해 사용한 만큼만 비용을 지불하는 것장점: 탄력성(용량 산정), 비용절감, 배포, 규모의 경제Well-Architecture: 운영 우수성, 보안, 안정성, 성능 효율성, 비용 최적화, 지속 가능성 6가지 원칙 * 가용영역(AZ) 3개이상의 클러스터 -a-b-c = 서울 리전, 리전 하나에 가용영역 여러 개 방식을 선호.=> 각 가용영역은 장애에 독립적으로 설계되어있다.멀티리전 이중화보다도 멀티가용영역 이중화를 권장한다. => 멀티리전이면 가용성이 좋아지지만 운영의 편리성에서 떨어진다. 리전별로 관리하는게 쉽지 않음.온프레미스 + 클라우드 조합 리전 AZ: Data Center1, Data Center2 AZ : Dat..
* 204 상태코드1. 200와의 차이- 204는 No Content, HttpResponsebody가 아예 존재하지 않음- 200은 HttpResponsebody에 null, false 등으로 응답 2. 왜 굳이 204를 사용할까?- 삭제 요청으로 자원을 삭제하여 더 이상 존재하지 않고 그 자원을 참조하는 모든 자원도 삭제되어 더 이상 http body를 응답하는 것이 무의미해졌을 때 사용.- 본문 없는 응답을 위한 상태코드로 서버에서 잘못되게 본문을 포함한 응답을 전달한 경우 존재할 수 있다. https://velog.io/@server30sopt/204-NOCONTENT%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%84%EC%8B%9C%EB%82%98%EC%9A%94 204 NO_..
[src/ 폴더구조]app/: 어플케이션을 구성하는 컴포넌트들 보관assets/: 이미지 등 어플리케이션 제작에 필요한 부수기재 저장 창고favicon.ico: 파비콘 이미지index.html: 메인 htmlmain.ts: 작성된 html 파일을 변환하는 entry point.style.css: 공통 스타일package.json: 의존 모듈 관리를 위한 패키지 매니저가 참조하는 파일node_modules: package.json에 등록된 의존 모듈이 패키지 매니저에 의해 설치되는 저장소 [app/ 폴더구조]app.component.ts: 로직 담당app.component.html: html 템플릿app.component.css: 스타일app.module.ts: 컴포넌트, 서비스 등을 사용하기 위해 등록하..