26.10.06 동일 비중 매매
velog
하나, 동일 비중으로만 매매한다. 승률이 아무리 높아도 한 번의 매매로 모든 것을 빼앗긴다. 이유는 과한 욕심이고, 무리한 물타기, 재빠른 대응의 부재. 스스로 알고 있으나 목숨처럼 지키지 못한 결과이다. 나는 같은 비중으로만 매매한다.
Score: 54.39Confidence: 49%
View offerLoading the catalog…
THE AI OPPORTUNITY INDEX
Find your next AI tool. Explore free access, trials, and credits — all in one place.
velog
하나, 동일 비중으로만 매매한다. 승률이 아무리 높아도 한 번의 매매로 모든 것을 빼앗긴다. 이유는 과한 욕심이고, 무리한 물타기, 재빠른 대응의 부재. 스스로 알고 있으나 목숨처럼 지키지 못한 결과이다. 나는 같은 비중으로만 매매한다.
Score: 54.39Confidence: 49%
View offervelog
AWS dev 첫 배포와 baseline 준비한 AWS dev 환경을 처음으로 띄운 날(Day 1) 기록이다. 목표는 단순했다. 인프라 생성 → 배포 → 관측 스택 동작 확인 → baseline 측정 → 삭제 그리고 3편에서 남겨둔 질문 하나. "로컬에서는 LocalStack이 멈춰서 느렸다. 그럼 실제 SQS에서는?" 환경은 이렇다. 구분 구성 클러스터 EKS, 노드 t3.medium 2대 (최대 5대) 데이터 RDS MySQL 8.4 + RDS Proxy, ElastiCache Redis, 실제 SQS (+ DLQ) 배포 Argo CD가 config 저장소를 보고 배포 확장 API는 HPA(CPU 기준, 1 5개), Worker는 KEDA(SQS 적체 기준, 1 20개) HPA: CPU 사용률 같은 지표를 보고 Pod 수를 자동으로 늘리고 줄이는 Kubernetes 기능 순서대로 막혔다 계획은 terraform apply → Argo CD 배포 → 확인이었는데, 단계마다 하나씩 막혔다. 단계 증상 원인 조치 인프라 생성 VpcLimitExceeded 예전 실습 VPC 4개 + 기본 VPC = 리전 한도 5개 안 쓰는 VPC 정리 후 재실행 인프라 생성 kubectl Forbidden 권한 연결이 접근 항목(Access Entry)보다 먼저 만들어지는 순서 문제 생성 순서 지정( depends_on ) 추가 애드온 설치 Unauthorized EKS 인증 토큰 15분 만료 프로필 지정, plan 없이 바로 apply Argo CD Repository not found config 저장소가 비공개 읽기 전용 토큰으로 저장소 등록 Argo CD external-secrets.io/v1 탐색 실패로 배포 중단 CRD가 설치되기 전에 그 CRD를 쓰는 리소스를 먼저 검사 첫 1회 수동 설치 + 재시도 설정 기동 Loki 재시작 반복 read-only file system 데이터 경로가 연결되지 않음 임시 디스크 연결 기동 Pod 대기 Too many pods 노드당 Pod 17개 제한 노드당 최대 Pod 110으로 설정 기동 앱 재시작 반복 Authentication requires secure connection MySQL 8.4 인증 방식 + SSL 미사용 DB 접속 주소에 sslMode=REQUIRED 이 중 세 개는 조금 설명이 필요하다. CRD가 먼저냐, 리소스가 먼저냐 CRD(Custom Resource Definition)는 Kubernetes에 "이런 종류의 리소스도 있다"고 새로 알려주는 정의다. 예를 들어 External Secrets를 설치해야 ExternalSecret 이라는 리소스 종류가 생긴다. Argo CD는 배포 전에 리소스를 한 번 검사한다. 그런데 CRD를 설치하는 앱과 그 CRD를 쓰는 리소스가 같은 묶음에 있다 보니, 검사 단계에서 "그런 리소스 종류는 없다"며 배포 전체가 멈췄다. 검사 건너뛰기 옵션과 재시도만으로는 안 풀려서, 첫 배포만 kubectl apply -k 로 한 번 밀어 넣어 CRD를 먼저 만들었다. 다음부터 같은 일이 없도록 재시도 설정을 추가하고, 절차서에도 "CRD 먼저 설치"를 넣었다. 노드는 남는데 Pod가 안 뜬다 Too many pods 로 Pod가 대기 상태에 걸렸다. 노드 CPU, 메모리는 여유가 있는데, 노드 하나에 Pod를 17개까지만 띄울 수 있었다. EKS에서 t3.medium은 네트워크 인터페이스 수 때문에 기본 Pod 수 제한이 낮다. 이걸 늘리는 설정을 Terraform에 넣어뒀는데, AL2023(Amazon Linux 2023) 노드에서는 그 설정이 반영되지 않았다. 노드 설정에서 kubelet(노드에서 Pod를 실행하는 에이전트)의 최대 Pod 수를 110으로 직접 지정하고 노드 3대를 교체했다. MySQL 8.4로 올렸더니 앱이 DB에 못 붙는다 RDS를 8.4로 바꾼 대가였다. MySQL 8.4의 기본 인증 방식( caching_sha2_password )은 비밀번호를 보낼 때 암호화된 연결을 요구한다. 그런데 앱의 DB 접속 주소는 useSSL=false 였고, 중간에 RDS Proxy까지 있어서 연결이 거부됐다. DB 접속 주소를 sslMode=REQUIRED 로 바꾸고, 시크릿을 다시 동기화한 뒤 앱을 재시작했다. 로컬은 SSL 없이도 잘 붙어서, AWS에 올리기 전에는 몰랐던 부분이다. 그 외에 zsh에서 명령 뒤에 붙인 # 주석이 인자로 들어가거나, [0] 대괄호를 파일 패턴으로 해석해서 명령이 깨지는 일도 몇 번 있었다.. 이후로는 주석 없이, 대괄호가 있는 인자는 따옴표로 감싸서 실행했다. 동작 점검 배포가 끝난 뒤 "관측 체계가 진짜로 동작하는지"부터 확인했다. 대시보드가 비어 있는데 정상이라고 착각하는 게 제일 위험하기 때문이다. 항목 결과 Argo CD 앱 13개 전부 Synced / Healthy 외부 접속 (ALB /actuator/health ) UP Prometheus 수집 대상 전체 UP (API, Worker, YACE 포함) 앱 큐 적체 값, YACE SQS 지표 둘 다 수집 확인 Loki {service="ticket-service"} JSON 파싱 조회, requestId 포함 Alertmanager → Slack 테스트 알림 수신. 앱이 재시작을 반복할 때 TargetDown (수집 대상 다운) 알림이 실제로 온 것도 확인 (사진 추가 추천: Slack에 온 [DEV][FIRING] 알림 캡처) 알림 규칙이 참조하는 메트릭이 실제로 있는지도 확인했다. 메트릭 이름이 틀리면 규칙은 에러 없이 그냥 "항상 정상"으로 남기 때문에 꼭 봐야 하는 부분이었다. 하나 걸린 건, 앱이 붙이는 service 라벨이 Prometheus가 붙이는 라벨과 이름이 겹쳐서 exported_service 로 바뀌어 들어온다는 점이다. 대시보드를 만들 때 정리하기로 했다. baseline: 회차마다 나빠졌다 로컬과 같은 조건(30 VU, 3분)으로 3회 돌렸다. 집 네트워크 영향을 빼기 위해 k6는 클러스터 안에서 Job으로 실행했다. 회차 사이에는 5분씩 쉬었다. 지표 (p95, ms) 로컬 AWS 1회 AWS 2회 AWS 3회 hold (좌석 선점) 16~20 93 148 193 booking (예약 요청) 40~48 77 125 192 seats (좌석 조회) 16~21 80 121 173 booking 최대 120~670 759 2,878 3,804 처리량 (반복/초) 22.4 19.9 18.4 19.4 확정 성공률 100% 100% 100% 100% 로컬보다 느린 건 예상했다. 로컬은 모든 게 한 머신 안에서 돌고, AWS는 RDS Proxy, ElastiCache, SQS를 네트워크 너머로 호출한다. 이상한 건 같은 조건인데 1회 → 2회 → 3회로 갈수록 계속 나빠졌다 는 점이다. 기준값을 재러 왔는데 기준이 안 잡히는 상황이었다. 원인 좁히기 DB부터 의심했다 DB 커넥션을 기다리는 요청 수( hikaricp_connections_pending )가 전 구간 0이었다. 커넥션도 최대 6~7개만 쓰고 있었다. DB는 제외. Pod 수를 봤다 회차 시작 시 Pod (API / Worker) 부하 중 hold p95 1회 5 / 4 (직전 실행에서 늘어난 Pod가 남아 있음) 유지 93 2회 2 / 1 5 / 3 148 3회 1 / 1 5 / 4 193 쉬는 5분 동안 Pod가 줄어들고, 다음 회차가 시작되면 다시 최대치까지 늘어나고 있었다. 1회가 가장 좋았던 건 측정 전에 한 번 돌린 사전 실행 때 늘어난 Pod 5개가 그대로 남아 있었기 때문이다. 이미 예열된(warm) Pod로 측정한 셈이다. (사진 추가 추천: 회차별 Pod 수가 계단처럼 늘었다 줄었다 하는 그래프) 새로 뜬 Pod를 봤다 새 Pod의 CPU throttling 비율이 0.9 이상이었다. SQS 전송 시간( booking_sqs_send_seconds ) p99도 새 Pod가 뜬 직후 2.7초까지 튀었다. booking 최대 3.8초의 원인이 이거였다. CPU throttling: Kubernetes에서 Pod에 CPU limit(최대 사용량)을 걸면, 그 이상 쓰려고 할 때 강제로 쉬게 만든다. 비율 0.9는 "CPU를 쓰려던 구간의 90%에서 막혔다"는 뜻이다. (사진 추가 추천: 새 Pod의 CPU throttling 그래프) 왜 이렇게 되나 설정을 열어보니 이유가 보였다. API(ticket-service): CPU request 300m, HPA 목표 CPU 50% → Pod당 CPU 150m(0.15 core)만 넘어도 확장 CPU request: Pod가 "최소 이만큼은 보장해 달라"고 요청하는 CPU 양. HPA의 사용률(%)은 이 값을 기준으로 계산한다. JVM은 막 뜬 직후 클래스 로딩과 JIT 컴파일(자주 쓰는 코드를 실행 중에 기계어로 바꾸는 작업) 때문에 CPU를 많이 쓴다. 150m 기준은 이 워밍업 비용보다 낮아서, 부하가 들어오자마자 최대치(5개)까지 늘어난다. 그런데 새로 뜬 Pod는 워밍업 중에 CPU limit(1 core)에 걸려 throttling되고, 그 Pod로 간 요청은 느려진다. 부하 시작 → CPU 150m 초과 → 최대치까지 확장 → 새 Pod 워밍업 + CPU limit에 막힘 → 그 Pod로 간 요청 지연 → p95 상승 즉 늘어나는 것 자체가 느려지는 원인 이었다. 그래서 AWS 기준값은 워밍업이 끝난 상태인 1회 수치를 쓰고, 2·3회는 "확장 중" 수치로 따로 기록했다. 이 문제는 7편 끝에서 개선 대상으로 다시 다룬다. 그래서 실제 SQS에서는? 3편의 질문으로 돌아가면, 이번 측정에서는 실제 SQS 자체가 멈췄다는 근거는 없었다. SQS 전송 시간이 튄 건 새 Pod가 뜬 직후였고, 원인은 SQS 클라이언트의 첫 연결과 CPU throttling 쪽이었다. 로컬에서 본 "LocalStack이 수백 ms 동안 멈추는" 현상과는 다른 원인이다. 다만 결과는 비슷했다. 원인이 브로커든 Pod든, 요청 스레드가 SQS 전송을 동기로 기다리는 구조라서 그 지연이 사용자 응답에 그대로 드러났다. 3편에서 짚은 구조 문제가 실제 환경에서도 다른 이유로 다시 확인된 셈이다. 덤으로 찾은 버그: 예약 취소 500 2회차에서 예상 외 오류가 31건 나왔다. 30건은 예약 취소( DELETE /api/v1/bookings/{id} )가 500을 낸 것이었다. 원인은 낙관적 락 충돌( StaleObjectStateException )이었는데, 예외 처리가 안 돼서 500으로 그대로 노출됐다. 낙관적 락: 데이터에 버전 번호를 두고, 저장할 때 "내가 읽은 버전 그대로인지" 확인하는 방식. 그 사이 누가 먼저 고쳤으면 충돌로 실패한다. k6는 예약이 확정되자마자 취소를 보내는데, 그 순간 Worker가 아직 같은 예약을 갱신하고 있으면 버전이 안 맞는다. 2회차는 Worker가 느렸던 회차라 이 경합 구간이 길어진 것으로 보고 있다. 로컬 측정에서는 한 번도 안 나왔던 오류다. 충돌을 409로 바꾸거나 재시도하는 쪽으로 이후에 다룰 예정이다. 나머지 1건은 Worker Pod가 줄어들 때 Redis 클라이언트가 종료되면서 남긴 로그라 무시해도 되는 것이었다. 삭제 측정이 끝나고 바로 지웠다. 순서가 중요하다. k6 → Argo CD 앱 → Gateway·HTTPRoute·PVC → ALB 삭제 확인 → 애드온 destroy → 인프라 destroy ALB는 Terraform이 아니라 클러스터 안의 컨트롤러가 만든 리소스다. 클러스터를 먼저 지우면 ALB가 주인 없이 남아서 비용이 계속 나간다. 그래서 클러스터 안의 리소스부터 정리하고 ALB가 사라진 걸 확인한 뒤 destroy했다. state 버킷과 Slack webhook만 남겨뒀다. 다음 단계 AWS 1회 수치를 근거로 알림 기준 다시 정하기 (4편에서 보류한 300ms냐 700ms냐) 대시보드 만들기 ( exported_service 정리 포함) 알림 메시지 표준과 규칙 테스트 이번에 발견한 "확장 중 성능 저하"와 "예약 취소 500"은 장애 시나리오와 개선 단계에서 다시 다룬다.
Score: 54.39Confidence: 49%
View offervelog
문제 내가 생각했을때 문제에서 원하는부분 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 내가 이 문제를 보고 생각해본 부분 int[] testCases = {12, 17, 420}; 프로그래머스 입출력 예시에 제시된 세 가지 테스트 값을 배열에 미리 담아둔다. for (int n : testCases) 반복문을 사용해 배열 안의 숫자를 하나씩 꺼내고, 이를 solution 메서드에 매개변수로 전달한다. System.out.println(Arrays.toString(result)); solution 메서드가 반환한 결과 배열을 콘솔에 가독성이 좋은 형태([값, 값])로 출력한다. List<Integer> list = new ArrayList<>(); 소인수의 개수가 정해져 있지 않기 때문에 크기가 유동적으로 조절되는 가변 리스트를 선언한다. for (int i = 2; i <= n; i++) 2부터 시작하여 n까지의 자연수로 나누어보며 소인수를 찾는다. 별도의 소수 판별 로직이 필요 없는 이유는 2부터 차례대로 나누어가면 4나 6 같은 합성수는 이미 작은 소수들에 의해 먼저 걸러지기 때문이다. if (n % i == 0) n을 i로 나누었을 때 나머지가 0이라면 i는 n의 소인수이다. 따라서 list.add(i)를 통해 리스트에 추가한다. while (n % i == 0) { n /= i; } n이 더 이상 i로 나누어떨어지지 않을 때까지 계속 나누어 값을 줄인다. 이 과정을 통해 중복된 소인수가 리스트에 여러 번 쌓이는 것을 방지한다. return list.stream().mapToInt(i -> i).toArray(); 지금까지 모은 리스트를 자바 스트림(Stream) API를 활용해 기본형 정수 배열(int[])로 변환한 뒤 반환한다. 코드로 구현 import java.util.ArrayList; import java.util.List; class Solution { public int[] solution(int n) { List<Integer> list = new ArrayList<>(); for (int i = 2; i <= n; i++) { if (n % i == 0) { list.add(i); while (n % i == 0) { n /= i; } } } return list.stream().mapToInt(i -> i).toArray(); } } 프로그래머스 코드 package programmers.programmers2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; // 프로그래머스 소인수분해 public class Main165 { public static void main(String[] args) { // 입출력 예시에 있는 모든 값들을 배열에 담아둡니다. int[] testCases = {12, 17, 420}; // 반복문을 돌며 각각의 입력값에 대한 소인수분해 결과를 확인합니다. for (int n : testCases) { int[] result = solution(n); System.out.println(Arrays.toString(result)); } } public static int[] solution(int n) { List<Integer> list = new ArrayList<>(); for (int i = 2; i <= n; i++) { if (n % i == 0) { list.add(i); while (n % i == 0) { n /= i; } } } return list.stream().mapToInt(i -> i).toArray(); } } 위에 있는 코드를 변경한 코드 마무리 코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.
Score: 54.39Confidence: 49%
View offerAWS
On the 20th Anniversary, we recognize how AWS has continued to push the boundaries of what cloud computing can deliver, building custom silicon for general-purpose and AI workloads and expanding EC2 into new form factors and deployment models that our customers in 2006 could not have imagined.
Score: 47.98Confidence: 59%
View offerAIタグが付けられた新着記事 - Qiita
2026年10月更新。前回投稿記事は古典的な黒板モデルの紹介でした。初版の誤り(階層の説明、CA/NAとFA/Cの表)も合わせて訂正しました。 前回投稿記事 結論 LLMマルチエージェントの協調方式は、メッセージパッシング型(オーケストレータが指示を配る...
Score: 57.35Confidence: 54%
View offerAIタグが付けられた新着記事 - Qiita
AIコンパニオンを開発して分かった、チャット・画像・動画生成をつなぐプロダクト設計 生成AIを使ったプロダクトを作る場合、単純にLLMのAPIを接続するだけであれば、それほど難しくありません。 一方で、実際にユーザーが継続的に使うサービスを作ろうとすると、 キャラクター...
Score: 57.34Confidence: 54%
View offer掘金
Flutter 列表图片滚动后内存攀升。作者对比 imageBuilder 与 ClipRRect,最终以少量 GPU 开销换取更稳定的内存表现。
Score: 57.31Confidence: 54%
View offer掘金
相册里 3 万张照片,产品要"去年团建在海边那张",翻 40 分钟没找到。HarmonyOS 7.0 的文搜图能力(CoreVisionKit 的 textSearchImage)让用户用一句话定位照
Score: 57.29Confidence: 54%
View offer掘金
一个任务跑五次,只成功一次。开发者挑出成功的那条轨迹,觉得系统已经能用了;用户连试三次都没成,觉得它根本不可靠。 两边看到的现象可以同时成立,差别在于回答的问题不同:“有没有机会成功”和“每次交给它能
Score: 57.29Confidence: 54%
View offer掘金
工具获批、Session 写入和 Shell 环境不是同一道门。用 Agents SDK v0.22.1 历史修复拆开审批、输入/输出检查、恢复不重跑与环境 allowlist;未做 SDK 实测。
Score: 57.28Confidence: 54%
View offerReadhub
10 月 6 日,OpenAI 首席战略官 Jason Kwon 就其人工智能模型入侵澳大利亚政府网站一事再次致歉,承诺防范类似事件再次发生,若事件重演将更快作出回应。OpenAI 称 8 月发现入侵后至 9 月 10 日通知澳政府期间,一直在核实调查相关事实及遭访问的信息。Kwon 表示 OpenAI 正改进内部流程以加快此类信息披露,已在 AI 系统训练中增设监控,若模型不当访问互联网系统将发出通知暂停训练,同时公司支持各国政府建立强制性重大事故报告机制。
Score: 57.26Confidence: 54%
View offerReadhub
麦当劳被提起拟议全国性集体诉讼,原告指控其借助人工智能定价系统非法协调特许经营店和直营餐厅的菜单价格,称麦当劳与独立特许经营商合谋利用非公开数据训练的算法操纵价格,违反美国反垄断法。麦当劳回应相关指控缺乏事实依据,称餐品价格并非由人工智能设定,各特许加盟商拥有定价决策权,相关定价推荐工具和数据分析手段已在各行业普遍使用。近年美国已出现多起指控企业利用算法或人工智能就多类消费品类开展非法价格协同的集体诉讼,本案原告希望代表数百万名麦当劳消费者发起诉讼。
Score: 57.26Confidence: 54%
View offer