콜백에대해 질문이 있습니다.
338
投稿した質問数 31
안녕하세요 재남님 강의 너무 유익합니다~^_^ 두고두고 봐도 좋은 강의네요 b
콜백에 대한 질문이 있는데요 이 질문을 이 챕터에서 해도되나... 마땅한곳이 생각나지 않아서 이곳에서 질문 올립니다.
프론트엔드개발영역에서 어떤 개발자들은 꼭 사용해야할 곳을 제외하고는 콜백사용을 지양한다는 글을 봤었습니다.
그렇다면 콜백이 async & await으로 대체 가능하기 때문인가요? 문법의 간결함과 동기적으로 데이터를 받아와서 처리해야할때 async await이 아주 유용할것 같습니다.
그리고 꼭 사용할곳이라면 자바스크립트 내장 API에서 제공하는 콜백들 예를들어 Array의 map(callback)사용시, setTimout(callback)사용시 API사용 문법상 콜백을 사용할수 밖에 없는경우는 사용을 하는것이 맞고, 그외 다른 비동기 처리는 콜백으로 구현하게 되면 단점이 흔히 말하는 콜백지옥, 콜백지옥으로 부터 생기는 디버깅의 어려움등 때문에 기피하는건가... 제가 바로 이해한게 맞는지 궁금합니다^^
아직 초보라 프론트앤드영역에서 실무로 여러 프로젝트를 한 사람들의 의견에 그 이유에 대한 궁금증이 생겨서 질문 남깁니다.
回答 1
3
콜백 사용을 지양해야 한다는 의견에는 다양한 이유가 있을 수 있겠죠.
제가 그 이유를 다 알지는 못합니다만, 살면서 접했던 이유 몇가지를 소개해드리면 다음과 같습니다.
1. 남용하면 콜백지옥에 빠지게 된다.
-> 이는 '남용'하지만 않으면 됩니다. 패스
2. 잘못 사용하면 클로저로 인한 메모리 누수가 발생한다.
-> 클로저의 작동원리를 정확히 이해하고 사용하면 문제 없습니다. 역시 패스
3. 비동기처리 등의 경우에 가독성이 떨어진다.
-> 이 부분은 콜백을 이용하는 한 어쩔 수 없으며, Promise나 async await 등이 이를 해결해줄 적절한 대안이 될 수 있습니다.
콜백을 쓰는 용도는 비단 비동기 제어에만 있는 것은 아닙니다.
말씀하신대로 내장 API에서 요구하는 경우도 있고,
함수를 인자로 전달받아 처리하는 고차함수에서는 콜백함수가 매우 유용하게 쓰이는 케이스가 얼마든지 있습니다.
하여 말씀하신 '지양을 권장'하는 분들이라 하더라도 '꼭 사용해야 하는 곳이 어디인지'는 단정적으로 정의내리지 못할 거라 생각합니다.
앞서 소개한 콜백의 '위험성' 내지는 '불편함'은 그 내용을 충분히 이해하고 적절하게 활용하며, 동시에 더 나은 대안을 모색하면 될 일이라고 생각합니다. 위험성은 어디에나 도사리고 있게 마련이고, 불편함은 결국 개선하기 위해 노력할 수밖에 없는 것 아닐까요? :)
3강 질문
0
18
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
27
1
2강 nodejs 3단계 설명 질문
0
33
1
imagesLoaded에 관한 질문
0
19
2
블로그 안나오네유 ㅠㅠ
0
290
2
궁금한게 있어서 질문 남겨봅니다!
0
288
2
엌ㅋㅋ 인프런에 개발자 도구 켜서 console에 하면
0
271
1
Class 소개
0
334
1
2021.3 현시점에서 'ES202X' 기준으로 private 필드를 일반적으로 어떻게 구현하나요?
1
489
2
들어보니 자바의 클래스와 개념이 같은거 같은데 맞나요?
0
282
1
선생님 질문있습니다.
0
281
1
강좌의 실습자료를 요청드려도될까요?
0
267
1
Weakmap을 사용한 비공개 객체 맴버 코드 질문있습니다.
0
339
2
이터레이터 질문드려용!
0
340
3
Class 챕터의 2번째 영상 'class 소개' 초반부에 읽어보시라는 링크가 사라졌습니다
0
230
1
혹시 추가강의영상 언제올라나요??
0
251
1
강의
0
318
1
심볼 사용처 관련하여
0
286
1
강의 후반부 질문 있습니다.
2
281
2
추가강의
0
331
1
보너스 강의는 언제 오픈되나요?
1
276
1
선생님 궁금한게 있는데요. 정말로 30살이세요?
1
324
1
동영상 속도가 너무 빨라요 ㅠ_ㅠ...
0
543
2
고급 강의는 언제 올라나요???
0
259
2

