2021-12-27 TIL

김병호·2021년 12월 27일
0

Fact

JS를 이용해 쿠폰번호를 만들기 위해 10자리로 만들어야했다.

중요한건 시퀀스 + 보정값이 들어가는데 내가 생각했던 값이 안나온다. 컴파일 에러같은 것은 안보이는데, 삽질을 하다 결국 구글링해서 해결했다.

Feeling

  • 머릿속에서 시뮬레이션을 했을때는 됐는데 막상 값이 안나와서 이상하다.
  • 그냥 SQL에서 처리를 해야했을까!
  • 왜 실행은 되는데 버그는 있을까?

Findings

const maxId = 12(db상의 max값) + 200;
const length = 10 - maxId.length;
let zeros = "";

for (let i = 0; i < length; i++) {
  zeros += "0";
}

console.log("prd" + zeros + maxId);
// prd212
  • 오늘 삽질한 코드다. 다시 보니 바보같다.
    당연히 숫자에 length를 걸어서 될리가 없다.
    그럼 length는 뭐가 될까? NaN
    Loop을 돌리면 잘못된 범위로 돌아가지 않는다.
    그것도 모르고 왜 0 채우기가 안될까 고민을 하고말았다.
  • 문제 해결을 위해 구글링을 하다가 padStart()를 알게되었다.
    padStart()를 사용하면 현재 문자열 시작을 다른 문자열로 채울 수 있다. 링크
const str1 = '3';

console.log(str1.padStart(5, '0')); //00003

Future Action Plan

  • 숫자면 헷갈리지 않게 변수에 number같은 표현을 써야겠다.
  • 새롭게 알게된 padStart() 함수를 앞으로 유용하게 써보자.
  • 삽질 노. 테스트 코드를 짜자.
profile
노력하는 개발자입니다!

0개의 댓글