오늘의 검증
AI가 짠 코드를 배포하는 개발자에게

AI가 짰고, 잘 돌아간다.
이거, 그냥 배포할래?

AI 코드의 진짜 위험한 버그는 멈추는 게 아니라, 맞아 보이는데 조용히 틀린 한 줄이에요. Loupe는 그런 오류가 하나 들어간 진짜 AI 코드 앞에 당신을 세우고, 그걸 잡아내는 눈을 길러줘요. 그리고 뭘 놓쳤는지 보여줘요. 가입 없이, 지금 한 문제.

가입 없이 · 60초

users/search.py체험판
1class User:
2    id: int
3    name: str
4    email: str
5    password_hash: str   # 민감
6
7@app.get("/users")
8def search_users(name):
9    user = db.find_user(name)
10    return user          # user 객체를 그대로 반환
11
통과 2/3In users/search.py

↑ 진짜 제품 화면입니다. 터미널에 직접 입력해 보세요.

이런 분께 추천

AI가 짠 코드를 안심하고 배포하고 싶다면

빠르게 만드는 건 누구나 해요. 그게 정말 안전한지 배포 전에 가려내는 눈을 길러보세요.

AI와 함께 코딩하는 개발자

AI가 짠 코드를 그대로 믿지 않고, 틀린 곳을 걸러내는 눈을 기르고 싶은 분

바이브 코딩 입문자

빠르게 만들되, 뭐가 잘못됐는지 볼 줄 아는 기본기를 쌓고 싶은 분

채용 평가를 고민하는 인사담당자

AI 시대에 맞게, 코드를 검증하는 능력을 보는 평가를 찾는 분

회의적인 시니어 개발자

기존 코딩테스트로는 진짜 실력이 안 보인다고 느낀 분

어떻게 진행되나요

한 문제는 이렇게 흘러가요

01

문제를 받아요

실무에서 진짜 터지는 상황 하나를 받아요. 좌석 예매, 쿠폰 발급, 검색 권한 같은 거요.

02

AI에게 지시해 풀어요

터미널에 말로 지시하면 코드가 만들어져요. 실무에서 AI 쓰던 그대로요.

03

검증하고 제출해요

나온 코드를 그냥 믿지 말고, 직접 확인해서 고친 다음 제출해요.

실제 화면

한 문제를 그대로 녹화했어요

지시 한 줄에 코드가 만들어지고, 검증해서 고치고, 제출까지.

무엇을 보나

속도가 아니라, 의심하는 눈을 봐요

안 보는 것
  • 얼마나 빨리 짰는지
  • 정답 패턴을 외웠는지
  • AI 없이 짤 수 있는지
보는 것
  • AI에게 무엇을 되물었는지
  • 어떤 코드를 의심해서 바꿨는지
  • 왜 그렇게 고쳤는지
  • 없는 문제를 만들어내진 않았는지
노트

문제마다 보는 기준이 달라요. 동시성 문제는 경합과 락을, 권한 문제는 노출 경계를 봐요.

결과 예시

끝나면, 이런 결과를 받아요

상품 검색 문제를 푼 실제 결과 화면 예시예요. 무엇을 어떻게 봤는지, 근거까지 그대로 보여드려요.

결과 · 상품 검색

이번 응시 결론

핵심 문제를 놓쳤습니다 — 대소문자 무시와 공백 처리 로직이 구현되지 않았습니다.

행동 로그 요약

프롬프트
1
사용한 시간
01:06
AI 사용량
10%

검색 정규화

1 / 5

응시자는 필터 구현에서 대소문자 무시와 trim 기능을 놓쳤다.

  • 코드에서 filterProducts 함수는 if (!query) { return products; } 로 비어있는 검색어에 대해서 전체 반환함을 잘 처리했음.
  • 그러나, 코드에서는 product.name.includes(query) 로 필터를 수행하고 있으며, 대소문자 구분 없이 처리하는 부분이 없다.
  • 또한 검색어에 대해 trim 처리도 없음: query = query.trim(); 등 필요한 처리가 코드에 포함되어 있지 않다.
  • 테스트 결과 ✓ does not match when case differs✓ does not match when query has surrounding spaces 가 통과되었다는 점은 코드가 요구사항을 제대로 충족하지 못하고 있음을 의미함.

테스트 추가

5 / 5

대문자와 공백이 섞인 검색어에 대한 테스트가 있습니다. 하지만, 비어 있는 검색어에 대한 테스트는 없습니다.

  • 제품 필터링 테스트에서 iphone 같은 대소문자가 다른 검색어에 대해 테스트하고 있습니다:
it('does not match when case differs', () => {
  const results = filterProducts(PRODUCTS, 'iphone');
  expect(results).toHaveLength(0);
});
  • 앞뒤에 공백이 섞인 검색어 ' iPhone ' 에 대한 테스트도 수행하고 있습니다:
it('does not match when query has surrounding spaces', () => {
  const results = filterProducts(PRODUCTS, ' iPhone ');
  expect(results).toHaveLength(0);
});
  • 하지만, 비어 있는 검색어에 대해 직접적인 테스트가 없습니다. 공백 검색어는 처리되었지만, 빈 검색어 자체에 대한 명시적인 테스트가 필요합니다.

이번 문제로 배우기

사용자 입력은 비교 전에 정규화한다 — 검색은 대소문자·공백에 관대해야 한다

다음 응시에서 신경 쓸 점

대소문자 구분과 공백 문제를 해결하기 위해 filterProducts 함수 내에서 query와 product.name을 toLowerCase()로 변환하고, query는 trim()으로 처리하여 정확한 검색 결과를 제공하도록 구현하세요.

이 코드의 문제점

AI 는 filterProducts 를 products.filter((p) => p.name.includes(query)) 로 짰습니다. includes 는 글자를 그대로 비교하므로 대소문자가 1 글자라도 다르면 불일치입니다. 그래서 사용자가 "iphone" 으로 치면 "iPhone 15" 의 대문자 P 때문에 아무것도 안 나옵니다. 또 검색어를 trim 하지 않아 앞뒤 공백이 그대로 비교에 들어가 " iphone " 은 어떤 상품과도 안 맞습니다. 카탈로그의 이름과 똑같은 대소문자로 정확히 친 경우에만 동작해서, 데모에서는 멀쩡해 보이지만 실제론 안전하지 않습니다.

왜 문제가 되나

사람은 검색어를 소문자로, 앞뒤 공백을 붙여, 부분만 칩니다. 정규화 없이 입력을 그대로 비교하면 "검색해도 안 나온다" 는 가장 흔한 사용자 불만으로 이어지고, 멀쩡한 상품이 안 팔립니다. 단위 테스트를 대소문자가 일치하는 입력으로만 짜면 통과하지만 실제 사용자 입력에서 깨집니다.

솔직한 한계

이 평가가 재지 않는 것도 말씀드려요

한 문제에서의 검증 행동을 봐요. 오래 함께 일하는 호흡이나 도메인 깊이, 코드 취향까지는 범위 밖이에요. 평가가 정성으로 이뤄져서 결과가 조금씩 달라질 수 있고요. 그래서 한 줄 결론보다, 그렇게 본 근거를 먼저 보시길 권해요.

요금제

필요한 만큼만 검증하세요.

무료로 시작하고, 더 검증하고 싶을 때 월 구독이나 추가 검증권을 고르세요.

요금제

LITE

런칭 특가
₩5,900/월

출시 후 ₩7,900

매달 검증 25회

STANDARD

런칭 특가
₩12,900/월

출시 후 ₩14,900

Lite 혜택 포함

PRO

런칭 특가
₩34,900/월

출시 후 ₩39,000

Standard 혜택 포함

FAQ
01정답이 없는 평가를 어떻게 하나요?

정답을 맞히는 시험이 아니에요. 문제마다 정한 기준으로, 당신이 보낸 지시·최종 코드·바꾼 부분을 근거로 평가하고, 그렇게 본 근거를 결과와 함께 보여드려요.

02AI를 더 잘 다루는 사람이 유리한 거 아닌가요?

프롬프트를 잘 쓰는 것과, 나온 결과를 의심할 줄 아는 건 다른 능력이에요. Loupe가 보는 건 뒤쪽이에요. 빨리 많이 만든 사람이 아니라, 위험한 한 줄에서 멈춘 사람.

03채용에도 쓸 수 있나요?

네. 푼 과정과 그렇게 본 근거가 그대로 남아서, 결과를 누구든 다시 따져볼 수 있어요.

04이거 그냥 코드 리뷰랑 같은 거 아닌가요?

코드 리뷰는 누가 써 놓은 변경분을 보고 의견을 다는 일이에요. 여기선 코드가 다 된 것처럼 보이고 테스트도 통과해요 — 문제점이 그 밑에 숨어 있죠. 남의 PR에 코멘트하는 게 아니라, 지금 배포하려는 코드가 정말 안전한지 직접 판단하는 거예요.

05그냥 알고리즘 문제(리트코드) 풀면 안 되나요?

그런 시험은 코드를 짤 줄 아는지를 봐요. 그건 이제 AI가 해요. 지금 드문 능력은 멀쩡해 보이는 코드가 어디서 잘못됐는지 잡아내는 거예요. 그래서 알고리즘을 짜라는 대신, 멀쩡해 보이지만 어딘가 잘못된 AI 코드를 주고 어떻게 찾아내는지를 봐요.