본문 바로가기

Woowa Techcourse/Missions23

Javascript 호출 스택(Call Stack) 호출 스택(Call Stack)이란, 함수의 호출을 기록하는 자료구조이다. 말 그대로 어떤 함수를 호출하는지 스택(Stack)에 쌓아두고, 가장 위에 놓여진 함수를 처리하는 것이다. 스택(Stack)은 한쪽 끝에서만 자료를 넣고 뺄 수 있는 Last In First Out (LIFO) 형식의 자료구조인데, 그냥 쉽게 하나의 입구만 있는 상자를 생각하면 된다. 상자에 물건을 1, 2, 3, 4.. 순서대로 넣으면 상자의 가장 상위에는 4가 있어서 만약 상자 안에 있는 물건을 빼고 싶으면 4, 3, 2, 1 의 순서로 빼야한다. Stack은 이렇게 가장 최근에 추가한 내용을 가장 먼저 뺄 수 있는 형식의 자료구조이다. 만약 A함수, B함수, C함수 순서대로 호출이 된다면 C함수, B함수, A함수 순서대로 실.. 2021. 3. 4.
[코드리뷰] 자동차 경주 게임 1. 명시적인 이름을 사용하자. 각 함수들이 어떤 역할을 하는지 조금 더 명시적인 이름을 사용한다면 어떤 일을 하는지 더 알기 쉬울 것 같다고 알려주셨다. 어디서 주워들은게 많아서^^... set-*, get-*, init-* 등의 네이밍을 생각없이 남발했었는데, 이런 네이밍이 언제 쓰여야 하는지 조금 알게된 것 같다. 알게된 내용을 짧게 아래에 정리해보겠다! 1-1. set-* 네이밍 setXXX이라는 이름의 함수는 관례적으로 setting할 인자를 받는 식으로 구성이 된다고 한다. 예를 들자면 👉👉setXXX(setting할 인자) 이렇게! 그래서 만약 setSectionDataId()라고 이름을 정했다면, setSectionDataId(id)와 같은 형식으로 id를 넣어주는 식으로 구성을 하는 것이.. 2021. 2. 15.
Number(str) vs parseInt(str) 나는 지금껏 String으로 받은 숫자들을 거의 다 ParseInt를 통해 형변환을 시켰었는데, 두 내장 함수의 다른점을 알고 있어야 조금 더 상황에 맞게 쓸 수 있을 것 같아서 정리해보게 되었다. 두 함수는 비슷하면서도 꽤나 달랐다. 먼저, 두 함수는 문자열을 인자로 받으면, 해당 문자열을 숫자로 바꾸어 준다는 점에서 같은 역할을 수행한다. Number(str) Number 함수는 문자열이 정수이든, 소수이든 상관 없이 잘 바꾸어준다. 하지만 문자열에 문자가 하나라도 들어가게 된다면, NaN(Not a Number)을 리턴한다. 만약 문자가 공백으로 시작한다면, 알아서 공백을 무시해준다. parseInt(str, n) - parseInt(바꿀 문자열, 진법) parseInt 함수는 문자열이 정수일 때에.. 2021. 2. 13.
TDD, BDD를 위한 테스트 도구, Cypress Cypress란? Cypress란 오픈소스 프로젝트로 E2E (End to End) 테스트를 위한 도구다. 이전 포스팅에서 살짝 이야기 했지만, E2E 테스트는 사용자의 입장에서 사용자에게 직접 노출되는 부분을 점검한다. Cypress는 브라우저를 다룰 수 있는 별도의 드라이버를 만들어서 사용하고, E2E 테스트 뿐만아니라 단위테스트, 통합테스트까지 사용이 가능하다. GUI 도구를 지원하고, 스펙관리 및 디버깅이 편리하다. 개발을 하면서 사용자 입장에서 만날 수 있는 문제들을 빠르게 테스트해준다는 장점이 있다. 수동으로 테스트하는 것보다 훨씬 빠르게 점검할 수 있어서 효율성 측면에서 정말 좋다. 아래는 Cypress 공식 Github 이다. https://github.com/cypress-io/cypre.. 2021. 2. 11.
TDD, BDD란? TDD (Test Driven Development) TDD란, 말 그대로 테스트 주도로 개발을 이끌어 나가는 것이다. 즉, 테스트를 먼저 작성하고 나서, 테스트가 정상적으로 돌아갈 때 까지 테스트를 하면서 코드를 작성하는 작업이라고 볼 수 있다. 원하는 작업이 제대로 돌아갈 때까지 테스트와 코드 작성을 무한대로 반복하며 개발을 하면 된다. 테스트의 종류는 되게 다양한데, 단위(Unit) 테스트 통합(Integation) 테스트 E2E(End to End) 테스트 회귀(Regression) 테스트 성능(Performance) 테스트 모든 테스트를 다 진행하면서 개발하기는 쉽지 않기 때문에 이 중에서도 우리는 E2E 테스트를 먼저 다뤄봤다. End to End 테스트는 Endpoint 간의 테스트라고도 하.. 2021. 2. 10.