
작심삼일이라고 했던가, 오늘 아침에 눈을 뜨자마자 피곤함이 몰려왔다. 어제 코드를 머리속으로 생각하느라 잠을 또 설쳐버렸다. 하지만 어제의 복작함은 오늘과 비교할 수 없었다. 반복문이 이렇게 나에게 두려운 존재가 될줄 꿈에도 몰랐다.
반복문에선 가장 중요하게 다루는 3가지가 있다. 바로 '초기화', '조건식', '증감문'이다. 처음 변수를 선언하고 초기화를 해준다. 그리고 반복문이 얼마나 반복한 것인지 조건을 걸고 변수가 얼마나 증가하거나 줄어들 것인지 정하는 작업이다. 나는 이걸 보자마자 이렇게 받아드렸다. 어디부터(초기화) 어디까지(조건식) 어떻게 할 거야?(증감문). 이게 정확히 맞는진 모르겠지만 얼추 맞는 것 같다.
반복문을 쓰는덴 크게 두 가지 방법이 있다. 'for문'과 'while문'이다. 나는 궁금증을 참지 못하는 성격이라 이 둘의 차이점을 바로 검색해보았다. 'for문'은 내가 반복하고자 하는 횟수를 알고 있을 때 사용한다. 은행에서 로그인 할 때 비밀번호 5회 오류로 빡친 경험이 다들 있을 것이다. 이런 로그인 기능을 만들 때 사용된다. 'while'문은 조건에 따라 반복하고 싶을 때 사용한다. 말 그대로 어떤 조건을 충족할 때까진 반복해서 작동하는 것이다. 그냥 포털사이트나 게임 아이디 로그인할 때 무한히 시도 할 수 있는 걸 떠올리면 된다.
반복문을 코딩하면서 내 생각이 반복문에 빠져버릴 때가 많았다. 앞서 말한 '초기화', '조건식', '증감문'을 너무 의식해서 이 세 개의 얽매어 코드를 더 이상 작성을 못하고 막혀버린다. 그럴 때 이렇게 생각하니까 나름 반복문이 단순해졌다. '초기화', '조건식', '증감문'은 반복문을 돌리기 위한 수단일 뿐이다. 내가 반복문을 어떻게 몇 번 돌리고 싶은지만 생각하고 작성하니까 그렇게 큰 어려움은 없었다. 문제는 그다음에 작성한 반복문을 통해 무엇을 반복하고 싶은지 코드로 쓰는 작업이 정말 어려웠다. 이럴 땐 수도코드를 활용하니 한결 나아졌다.
수도코드는 내가 코딩하고자 하는 코드를 논리적으로 생각하고 내가 편한 방식으로 써 내려가는 방법이다. 원하는 곳에 주석을 달고 'num이 5를 받아서 반복문 i가 몇 번 반복하니까···'처럼 자유롭게 써내려갔다. 내가 직접 쓰고 다시 읽고 생각을 반복하면서 코드를 어떻게 수정해야 할지 감이 잡히기 시작했다. 반복문에 어려움을 느낀다면 수도코드를 한 번 써보는 걸 추천한다.

str.slice(start, end): start 인덱스부터 end 인덱스 전까지 잘라서 반환된다
Number(): 숫자로 바꿔준다 *굉장히 포괄적인 것 같다
parseInt(): 정수로 바꿔준다 *소수점 안돼요
parseFloat(): 실수로 바꿔준다 *F대문자니까 실수하지마세요^^
String(): 문자열로 바꿔준다
str.includes(): 문자열에 내가 찾고자하는 문자열이 있는지 찾고 있으면 true 없으면 false
Java Script에서 문자열 '1' + 숫자 2를 해주면 '12'가 나온다
JS가 동적 언어이기 때문에 문자열과 숫자열이 만나면 자동적으로 문자열로 바꿔준다
그래서 빈문자열 ' ' 에 숫자 1을 더해주면 '1'이 된다