위 그림에서 댄서(빨간 점)가 춤을 추고 있는게 보이시나요? (저게 춤추고 있는 게 맞냐구요? 네, 받아들이세요)
이 Sprint를 통해 객체 지향 프로그래밍의 다형성(polymorphism)의 특징을 코드로 직접 구현할 수 있습니다. DOM과 CSS를 연습할 수 있는 좋은 기회이기도 하고요! 여러분이 작성하고 있는 어떤 부분이 다형성에 해당하는지 살펴보세요.
dancefloor.html
는 댄서들이 활동할 무대입니다.src/functional
안쪽에 있는 dancer.js
, blinkyDancer.js
등의 코드는, 이미 클로저를 이용한 functional pattern으로 작성된 코드입니다. 이제 이 코드를 이용해서 ES5 (pseudoclassical) 및 ES6 class 방법으로 리팩토링을 해야 합니다.spec
에는 테스트 파일들이 포함되어 있습니다.npm test
를 이용해 테스트할 수 있습니다.dancefloor.html
, src/functional/init.js
, src/functional/dancer.js
, src/functional/blinkyDancer.js
와 같은 파일들이 어떻게 연관되어 있는지 확인해보세요.styles.css
도 확인해보세요. 댄서(빨간 점)이 어떻게 둥글게 그려지는지도 알 수 있습니다.Bare minimum 요구사항을 모두 완료하신 후 advanced로 넘어가세요. 이번 스프린트에서는 상당한 자유도를 가지고 자신만의 결과물을 만들게 됩니다. 프로젝트를 시작하기 전에 주어진 요구사항을 정확히 파악하시고, 페어와 충분한 논의를 통해 전체적인 계획을 세우고 시작하세요.
꼭 지켜주셔야 할 것은 버튼을 클릭했을 때 이벤트 핸들러(onclick, addEventListener)에 DOM 조작 코드를 작성하면 안된다는 것입니다.
이 스프린트를 통해 상속과 다형성을 연습한다는 사실을 잊지 마세요!
리팩토링을 끝내셨나요? 훌륭합니다. 더 많은 도전 과제가 있습니다. 다음 문제를 해결하면서 ES6 기능들을 자유롭게 활용해보세요!
생성되는 점들의 색깔을 무작위로 선택되도록 했다. 또한, 생성되는 위치 역시 무작위로 생성된다.
lineUp
클릭시, 모든 점들이 한 곳에 모인다.
clear
클릭시, 모든 점들이 사라진다.
점들의 모양도 랜덤하게 바꿔볼 수 있도록 구현해보고 싶다.
키보드를 통해 점들이 움직이도록 구현해보고 싶다.
점들이 Dance Time
클릭시, 일정한 패턴으로 움직이는 것을 구현해보고 싶다.
구현해보고 싶은 것들이 더 많은데, 해당 Sprint만 붙잡고 있을 수 없어서 일단은 마무리 지었다.
나중에 시간적 여유가 된다면, 더 많은 기능들을 업데이트 해봐야겠다.
혹시 코드스테이츠 어떠셨나요? 취업하는 데 도움이 되셨나요? 코드스테이츠에 들어가려고 생각 중인 비전공자인데 의견부탁드립니다! 몇 개월이 지난 지금 되돌아보셨을 때 어떠셨는지 궁금합니다. 글 잘 읽고 있습니다.