- ์ผ๊ฒฝํ ๋ง์ง๋ง API ๊ณผ์ ์ค ํ๋์๋ ๋ฌธ์๋ก ํ์๊ฐ์ ์ธ์ฆ๋ฒํธ ๋ฐ์กํ๊ธฐ
- ์ฌ๋ฌ ๋ฌธ์๋ฉ์ธ์ง ๋ฐ์ก ์ฌ์ดํธ์ค์ ๋ฌด๋ฃ 300ํฌ์ธํธ๋ฅผ ์ฃผ๋ ์ฟจ์์ค์ ์์ค๋ฅผ ์ ํํจ
- https://coolsms.co.kr/
- ๊ตฌ๊ธ๋ง์ผ๋ก ์ฐพ์ ์ฝ๋๋ค์ ํ์ฌ ์ฟจ์์ค์ ์์ค์์ ์ฌ๋ฆฐ ๊น ์ฝ๋์ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์์ด์ ์ฟจ์์ค์ ์์ค์ ๊นํ๋ธ๋ฅผ ์ฐธ๊ณ ํ ์ฝ๋๋ก ๊ธ์ ์์ฑํจ
์ฟจ์์ค์ ์์ค ํ์๊ฐ์ ๋ฐ ๋ณธ์ธ์ธ์ฆ ํ๊ธฐ
- ๋ณธ์ธ์ธ์ฆ์ 300ํฌ์ธํธ ๋ฌด๋ฃ ์ฆ์
- ์นด์นด์คํก ์๋ฆผ๋ ๊ฐ๋ฅํ๋ค๊ณ ํจ
API Key์ API ๋น๋ฐ๋ฒํธ ํ์ธํ๊ธฐ
๋์๋ณด๋ - ๊ฐ๋ฐ ํญ์์ SDK ์ git repository ํ์ธํ๊ธฐ
<dependency>
<groupId>net.nurigo</groupId>
<artifactId>sdk</artifactId>
<version>4.3.0</version>
</dependency>
์คํ๋ง ์ฝ๋
private final DefaultMessageService messageService;
/**
* ๋จ์ผ ๋ฉ์์ง ๋ฐ์ก
*/
@PostMapping("/sendSMS")
@ResponseBody
public ResponseEntity<?> sendSMS(@RequestParam("phoneNumber") String phoneNumber) {
if (phoneNumber == null || phoneNumber.trim().isEmpty()) {
// ์ ํ๋ฒํธ๊ฐ ์ ๊ณต๋์ง ์์์ ๊ฒฝ์ฐ, ์ ์ ํ HTTP ์๋ต ๋ฐํ
return ResponseEntity.badRequest().body("์ ํ๋ฒํธ๊ฐ ์ ๊ณต๋์ง ์์์ต๋๋ค.");
}
Message message = new Message();
String numStr = makeRandomNumStr();
message.setFrom("01011111111"); //์๋ง๊ฒ ์์ ํ๊ธฐ
message.setTo(phoneNumber); //์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ์ ํ๋ฒํธ(ํ
์คํธ๋ ๊ฐ์ธ๋ฒํธ๋ก)
message.setText("์ธ์ฆ๋ฒํธ๋ [" + numStr + "] ์
๋๋ค.");
//phoneNumber ์ numStr Repository์ ์ ์ฅํ๊ธฐ
confirmRepository.insertConfirmData(new ConfirmData("sms", phoneNumber, numStr));
//์ด๋ฉ์ผ ์ธ์ฆ๋ฒํธ๋ ๊ฐ์ ํ
์ด๋ธ์ ์ฌ์ฉํ๋ฏ๋ก type ๋ช
์
// ๋ฉ์์ง ๋ฐ์ก ์๋ ๋ฐ ์๋ต ์ฒ๋ฆฌ
try {
SingleMessageSentResponse response = this.messageService.sendOne(new SingleMessageSendingRequest(message));
System.out.println(response);
return ResponseEntity.ok(response); // ์ฑ๊ณต์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋์ ๊ฒฝ์ฐ, ์๋ต ๋ฐํ
} catch (Exception e) {
// ๋ฉ์์ง ๋ฐ์ก ์ค ์์ธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ
System.out.println(e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("๋ฉ์์ง ๋ฐ์ก์ ์คํจํ์ต๋๋ค.");
}
}
/**
* ๋๋ค6์๋ฆฌ ์ซ์String
* */
private String makeRandomNumStr(){
Random rand = new Random();
String numStr = "";
for (int i = 0; i < 6; i++) {
String ran = Integer.toString(rand.nextInt(10));
numStr += ran;
}
return numStr;
}
- ๋ฉ์ธ์ง ์ ์ก ๊ด๋ จ ์ฝ๋๋ฅผ ํ ๋์ ๋ณผ ์ ์๋๋ก ์ปจํธ๋กค๋ฌ์ ๋ชจ๋ ์ฝ๋๋ฅผ ๋ฃ์ด์ ๊ธ์ ์์ฑํ์
- ๊ด๋ จ ์ฝ๋๋ฅผ ์ค์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฌธ์ ๋ด์ฉ ์์ฑ์ด๋, ๋ฉ์ธ์ง ์ด๊ธฐ์ ๋ณด ์ธํ ์ ์๋น์ค ๋ฉ์๋๋ก ๋นผ๊ธฐ๋ฅผ ๊ถ์ฅํ๋ค
์ ์ก ๊ฒฐ๊ณผ
- ๋ด ์ฐ๋ฝ์ฒ์ ๋ถ๊ฐ์ ์ธ ๋ณด์๊ด๋ จ ์ค์ ์ผ๋ก ์ธํด์ ๊ฒฐ๊ณผ ํ์ธ์ ๋ชปํ์
- ์ธ์ฆ๊ด๋ จ ๋ฉ์ธ์ง๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ ๋ฒํธ๋ก ์ ์กํ๋ ค๋ ์๋์ ๊ฒฐ๊ณผ๋ฅผ ๋์๋ณด๋์์ ํ์ธํ ์ ์์๋ค
- ๋ณด์ ์ค์ ๋ง ์๋์์ผ๋ฉด ๋ฐ์ก๋๊ฒ ์ง๋ง, ๋ถ๊ฐ์๋น์ค๋ฅผ ๋ณ๊ฒฝํ ๋ง์์ ์๋ค
- ๋ฌธ์๋ฉ์ธ์ง ์ธ์ฆ ๊ธฐ๋ฅ ๊ตฌํ์ ์ฌ๊ธฐ๊น์ง!