20210329(월)
2021-03-29
1. 학습 날짜
2021-03-29
2. 학습 시간
10:00 ~ 22:00
3. 학습 범위 및 주제
자바스립트 학습하기
4. 학습 목표
강의 듣기
5. 학습 정리
6. 상세 학습 내용
듣고 있는 강의의 마지막 과제를 혼자 만들어봤다.
일단 이 과제를 진행하면서 느낀건 1. 아주 간단한 html, css 마크업인데도 생각보다 오래걸렸다. 2. 자바스크립트 구조를 아직 제대로 만들지 못한다. 여러 파일을 만들고 파일에서 export, import 등을 사용해야하는데 그러지 못하고있다.
해결한 문제로는 setInterval 의 가 자기가 알아서 clear 가 되게 만들었다.
기존에 학습했었던 클로져 개념을 사용해서 문제를 해결함.
보통의 경우는 위처럼 interval 을 만들고 clear 하지만, 이렇게 되면 인위적으로 clear 를 해줘야한다는 단점이 있다. 즉 자기가 알아서 interval 을 관리하지 못하는게 문제점. 나같은 경우는 10초지나면 알아서 interval이 끝나게 만들고 싶다. 물론 setTimeout 으로 10초뒤에 setInterval 을 clear 할 수도 있겠지만 이렇게 되면 타이밍문제가 생길 우려가 있기 때문에 setInterval 내부에서 본인이 책임지고 clear 되게 만들어야 했다. 여기서 떠오른게 클러져를 만드는것. 아래처럼 만들어서 해결했다.
오디오 문제
버튼을 누르면 오디오를 실행하고 버튼을 삭제하는 코드를 만들었었다. 이 버튼 내부에 audio 마크업이 있었는데, 문제는 버튼을 눌렀을 때 오디오가 실행되지 않고 바로 버튼과 오디오 태그가 삭제되어 버리는것. 즉 타이밍 문제가 있었다.
이 문제를 해결하기 위해 프라미스 개념을 사용했다. Web API 에 audio 을 DOM 요소로 만드는 메서드가 존재해서 해당 메서드를 사용했고 오디오가 성공적으로 끝나면 발생하는 이벤트인
ended
를 사용했다.
7. 오늘 학습 내용에 대한 개인적인 총평
흠... 이렇게 쉬운 코드를 짜는데도 버거워하다니 난 멀었다.
8. 다음 학습 계획
자바스크립트 공부
Last updated