본문 바로가기

소프트웨어-이야기

MCP 실습 https://catalog.us-east-1.prod.workshops.aws/workshops/4bfd0cd5-45d4-4183-ab13-6992de68d888/ko-KR
prompt injection: 바이브코딩과 신규 보안 취약점 prompt injection프롬프트를 중간에 위장해서, AI 애플리케이션이 잘못된 정보를 유출하거나 의도하지 않은 동작을 하게 하는 사이버 공격을 말한다.https://docs.anthropic.com/en/docs/claude-code/security참고 https://docs.anthropic.com/en/docs/claude-code/security Security - AnthropicHow we approach security Security foundation Your code’s security is paramount. Claude Code is built with security at its core, developed according to Anthropic’s comprehensive ..
Claude Code 벼락치기 0. 감잡기https://www.youtube.com/watch?v=AJpK3YTTKZ4https://www.youtube.com/watch?v=gNR3XI5Eb0k 1. 실행해보기 https://docs.anthropic.com/en/docs/claude-code/quickstartcladue를 프로젝트에 적용하는 내내 주의하라는알럿이 뜸요구사항을 프롬프트로 전달하면, 해야할 목록을 정리하고 순차적으로 실행함.
MCP + 바이브 코딩 벼락치기 (1) 유튜브를 보며 감을 잡는다. https://www.youtube.com/watch?v=HKtOSh2rH0A(2) 클로드앱의 아티팩트 사례를 살펴보고, 프롬프트를 이해한다. 사용자가 더 나은 이메일을 작성할 수 있는 React 앱을 구축하세요. 사용자가 말하고자 하는 내용을 간략하게 작성한 다음 이메일의 톤(예: 간결, 따뜻함, 격식 등)을 선택할 수 있어야 합니다. Claude API를 사용하여 원시적인 생각을 완성된 이메일로 변환하세요. 앱을 시각적으로 매우 매력적으로 만드세요. 당신은 세계 최고의 프론트엔드 엔지니어이고 시각 디자인 석사 학위도 가지고 있으므로 이 작업을 매우 잘 할 수 있을 것입니다. 색상 팔레트는 파란색, 흰색, 회색을 사용해야 합니다.응답할 이메일을 입력할 수 있는 선택적..
코루틴 이해하기 (1) Thread의 한계 이해하기Thread Blocking스레드가 아무것도 하지 못하고 사용될 수 없는 상태를 말한다.스레드는 비싼 자원이다. 이런 상황이 반복되면 애플리케이션의 성능이 크게 떨어진다.var chatgptfuture: Future executorService.submit { // 오래 걸리는 작업 // 만약 API 호출이 1분이상 소요된다면, thread는 1분간 점유된다. }var result = chatgptfuture.get()executorService.shutdown() 한계스레드는 생성 및 작업 전환 비용이 높다.스레드는 보유한 스레드풀 개수만큼 병렬로 실행할 수 있다. 멀티스레드 프로그래밍으로 스레드를 재사용하더라도, Thread Blocking 을 피하..
claude desktop + playwright-mcp 체험 후기 예전 프로젝트에서 playwright으로 E2E 테스트 코드를 짰을때 정말 유용했다. 그런데 코드를 작성하기 너무 귀찮았다. LLM 으로 자동으로 짤 수 있는 날을 기다렸는데... 드디어 비슷한 기능이 나왔다! 바로바로 playwright-mcp ! claude desktop에 playwright-mcp를 연결한 후, 실행한 화면을 먼저 살펴보자. 프롬프트로 기대하는 동작을 설명하면, playwright가 자동으로 브라우저에서 기대한 동작을 실행한다.  어떤건지 gif으로 살펴보자!어떻게 하는거지? 1. claude desktop을 설치한다.https://claude.ai/download  2. node를 설치하고, playwright-mcp 라이브러리를 설치하자 npm install -g playwri..
캐시전략 종류 살펴보기 일을 하다보면, 도메인과 아키텍처에 따라 캐시를 사용하는 방법이 달랐다. 캐시 전략의 종류와 사례를 정리해보자. Look-aside애플리케이션에서 먼저 캐시를 확인하고, 캐시가 미스되면 DB 혹은 API를 호출하여 캐시를 해두는 방법을 말한다. 사용 사례: 카디널리티가 높아서 모든 데이터를 캐싱해둘 수 없는 경우가 있다. 그러나 롱테일 분포에 의하여, 조회가 많이 되는 데이터는 한정적인 경우가 있다. 이럴 때에는 요청이 올 때 캐싱해두는게 현실적인 경우가 있다. 예를 들어, 상품을 캐싱해둔다고 생각해보자. 수많은 상품 정보를 미리 캐싱해두는게 어려울 수 있다. 이 때, 자주 접근하는 상품 정보만 캐싱함으로써 효율적으로 캐싱을 할 수 있다. 다른 MSA 서버에서 제공하는 데이터라 캐싱..
동시성 문제와 잠금 동시성 문제 (1) Lost Update한 트랜잭션의 변경 사항이 다른 트랜잭션에 의해 덮어씌워지는 현상을 말한다. 여러 트랜잭션이 동일 데이터를 읽고, 동시에 수정하려고 할 때 발생한다. (2) Write Skew여러 트랜잭션이 동시에 실행될 때, 각각의 트랜잭션이 다른 트랜잭션이 수행한 읽기 결과를 기준으로 조건을 확인하고 쓰기 작업을 수행함으로써, 전체 데이터베이스 상태가 일관되지 않게 되는 문제이다. 여러 트랜잭션이 동일 데이터를 읽고, 읽은 데이터를 기반으로 서로 다른 데이터를 수정할 때 발생한다. 주문, 재고, 판매상태 사례를 통해 Write Skew 개념을 파악해보자. 잠금 전략(1) 비관적 잠금 (Pessimistic Lock) 다른 트랜잭션이 데이터를 변경하려 할 가능성이 높다. 그러니 ..