API가 뭔지 몰라도 문자 보내는 앱을 만들었다 — 코드 1시간, 심사 1주의 현실

AI 코딩 시작하기··16분 읽기·

API가 뭔지 몰라도 문자 보내는 앱을 만들었다 — 코드 1시간, 심사 1주의 현실

비개발자 API 연동 — SOLAPI SMS 카카오톡 알림톡 실전 가이드

"API 연동" — 이 단어만 보면 닫고 싶었다

Echo Mail이라는 메일 알림 서비스를 만들면서 문자 발송 기능이 필요해졌어요. 발주 메일이 오면 담당자한테 자동으로 문자를 보내야 하니까요. 근데 검색하면 나오는 건 전부 "API 연동"이라는 말뿐이었습니다.

API가 뭔지부터 막혔어요. 솔직히 무서웠습니다.

결론부터 말하면 — API는 식당 메뉴판 같은 겁니다. SOLAPI라는 문자 발송 서비스가 메뉴판을 내밀고, "이 양식대로 주문하면 문자 보내줄게"라고 하는 거예요. 내가 직접 전화기를 조작하는 게 아니라, 주문서를 넘기면 SOLAPI가 대신 보내주는 구조.

그래서 AI한테 "이 메뉴판 보고 주문서 작성해줘"라고 시켰습니다.

처음 시도 — "문자 보내는 코드 만들어줘"의 결과

첫 프롬프트는 이랬어요:

문자 보내는 코드 만들어줘. SOLAPI 사용해서.

AI가 만들어준 코드는... 작동은 하겠지만 위험한 코드였습니다. 뭐가 위험했냐면:

  • API 키(비밀번호 같은 것)가 코드에 그대로 적혀있었고
  • 에러가 나면 그냥 멈춰버리는 구조였고
  • 개발 중에 진짜 문자가 나갈 수 있는 구조였어요
세 번째가 진짜 무서운 거였습니다. 테스트한다고 버튼 누를 때마다 실제 문자가 나가면서 비용이 빠져나가는 거니까요.

"이렇게 시켜야 쓸 수 있는 코드가 나온다" — 프롬프트를 바꿨더니

여기서 프롬프트 작성법을 배웠어요. AI한테는 내 상황을 전부 알려줘야 합니다:

당신은 Node.js 백엔드 전문가입니다.

Next.js 14 프로젝트에서 SOLAPI SDK를 사용해 SMS/알림톡을 발송하는
모듈을 만들어주세요.

[현재 상태]
- Next.js 14 + TypeScript 프로젝트
- SOLAPI SDK(solapi v5.5.2) 설치 완료
- 환경변수: SOLAPI_API_KEY, SOLAPI_API_SECRET, SOLAPI_SENDER_PHONE

[요구사항]
- SMS 단건 발송 함수
- 에러 핸들링: 잔액 부족, 발신번호 미등록, 수신거부 등 케이스별 처리
- 개발모드(테스트) / 운영모드 분기 ← 이게 핵심!

[제약조건]
- API 키는 반드시 환경변수에서 읽을 것
- 개발 중엔 실제 문자 안 나가게 할 것

차이가 뭔지 보이시나요?

항목 첫 번째 프롬프트 바꾼 프롬프트
역할 부여 없음 "Node.js 백엔드 전문가"
현재 상태 없음 기술 스택, 설치된 SDK 버전
에러 처리 없음 잔액 부족, 수신거부 등 케이스별
테스트 안전장치 없음 개발/운영 모드 분기
"역할 + 상태 + 요구사항 + 제약조건" 이 네 가지를 넣으니까, AI가 진짜 배포해도 되는 수준의 코드를 만들어줬어요.

테스트모드 — 개발 중 실수로 문자가 나가는 걸 막는 장치

바꾼 프롬프트로 받은 코드에는 이런 안전장치가 있었습니다:

환경변수 ENABLE_REAL_NOTIFICATIONS 값이 'true'일 때만
실제 문자가 발송됩니다.

개발 중에는 이 값을 설정하지 않으면,
문자가 실제로 나가지 않고 "가짜 발송 완료" 로그만 찍힙니다.

이걸 넣어달라고 한 이유가 있어요. 처음에 테스트하면서 진짜 문자가 나갈 뻔한 적이 있었거든요. 테스트 100번이면 문자 100건 비용이 나가는 거니까요.

AI한테 "더 간단하게 해달라"고 피드백한 사이클

처음에 AI가 문자 발송 인증을 직접 만들어줬어요. HMAC-SHA256이라는 암호화 서명을 매번 생성하는 방식이었는데, 코드가 이해가 안 됐습니다. 이건 레스토랑에서 주문할 때마다 신분증 위조 방지 기술을 직접 만드는 것과 비슷한 상황이에요.

그래서 이렇게 피드백했습니다:

지금 API 호출할 때마다 HMAC 서명을 직접 만들고 있는데,
SOLAPI 공식 SDK(solapi v5.5.2)를 쓰면 인증이 자동 처리됩니다.

공식 SDK로 전환해주세요.
기존 함수 이름(sendSMS, getBalance)은 유지하면서
내부 구현만 SDK로 바꿔주세요.

결과:

[전환 전] 서명 생성 코드 20줄 + 매 API 호출마다 수동 인증
     ↓
[전환 후] SDK 한 줄로 인증 자동 처리
이게 피드백 사이클의 핵심이에요. AI가 처음부터 완벽한 코드를 주는 게 아닙니다. "이거 너무 복잡한데, 공식 도구 있지 않아?"라고 물어보면 더 나은 방법을 알려줍니다.

자주 하는 실수 4가지 — 저도 전부 겪었습니다

SOLAPI 연동하면서 실제로 한 실수들이에요:

실수 1: API Secret을 복사할 때 앞뒤 공백 포함 SOLAPI 콘솔에서 Secret을 복사하면 가끔 공백이 붙어요. 눈에 안 보이니까 "인증 실패"만 뜨고 원인을 못 찾습니다. 30분 날렸어요. 실수 2: 발신번호 등록에 서류가 필요한 걸 모름 "발신번호 등록하면 바로 쓸 수 있겠지" — 아닙니다. 사업자등록증이나 통신서비스 이용증명원을 제출해야 하고, 승인에 1~2 영업일 걸립니다. 실수 3: SMS/LMS 구분을 모름 한글 45자(90바이트)가 넘으면 SMS가 아니라 LMS로 바뀝니다. 가격이 3배. AI한테 "자동 판별해줘"라고 안 했으면 모르고 비싼 LMS로 보내고 있었을 거예요. 실수 4: 카카오 알림톡 심사가 이렇게 오래 걸리는 줄 모름 이게 제일 충격이었어요. 아래 표를 보시면:
단계 실제 소요 시간
카카오 비즈니스 채널 만들기 10분
SOLAPI에 채널 연동 신청 10분
카카오 심사 승인 대기 약 1주
알림톡 템플릿 등록 30분
템플릿 심사 대기 1~3 영업일
코드 구현 (AI한테 시킴) 1시간
코드 1시간 vs 심사 약 1주. 비개발자가 가장 예상 못 하는 부분이에요. "주말에 만들어야지"라고 계획하면 코드는 주말에 끝나는데, 실제로 문자/카카오톡이 나가려면 그 다음 주까지 기다려야 합니다.

비용 최적화 — 카카오톡 우선, SMS 자동 전환

문자 서비스는 공짜가 아니에요. 메시지 한 건마다 비용이 나갑니다. 종류별로 가격이 다른데:

메시지 종류 비용 수준
SMS (한글 45자 이하) 기본
LMS (한글 45자 초과) SMS의 약 3배
카카오 알림톡 SMS보다 저렴
카카오 친구톡 SMS와 비슷
그래서 "카카오 알림톡으로 먼저 보내고, 실패하면 SMS로 보내라"는 프롬프트를 추가했어요. 알림톡이 더 저렴하니까, 성공률이 높을수록 월 비용이 줄어듭니다.

AI한테 이 비용 구조를 알려주고 "알림톡 우선 발송 + SMS 자동 전환" 로직을 시켰더니, 비용 최적화까지 알아서 해줬어요.

돌아보면 — API는 생각보다 무서운 게 아니었다

"API 연동"이라는 말에 겁먹을 필요 없었어요. 실제로 해보니:

  • API는 그냥 메뉴판이었고
  • AI한테 "이 메뉴판 보고 주문서 작성해줘"라고 시키면 됐고
  • 진짜 시간이 걸리는 건 코드가 아니라 심사와 서류였습니다
다만 AI한테 시킬 때 "만들어줘" 한 마디로는 위험한 코드가 나옵니다. "역할 + 상태 + 요구사항 + 제약조건"을 넣어야 실제로 쓸 수 있는 코드가 나와요. 특히 테스트모드 분기는 반드시 넣으세요. 개발 중에 진짜 문자가 나가면 돈도 돈이지만, 고객한테 테스트 문자가 가는 게 더 큰 문제니까요.

다음에는 이 문자 발송에서 겪은 중복 발송 버그 이야기를 쓸 예정이에요. 같은 문자가 3번씩 나가서 15번 고친 이야기인데... 그건 다음 글에서.

공유

댓글