생성형 AI 시대가 도래하면서, 질문을 하는 것도 '기술' 로 여겨지는 시대가 됐습니다. 질문과 검색 혹은 프롬프트를 어떻게 작성하느냐에 따라 결과가 다른 것을 여럿 봐왔을 것입니다.
- 질문은 부끄러운게 아니다.
- 질문을 받는 상대는 자신의 소중한 시간을 써서 대답 해주는 것이다.
- 질문을 오픈된 공간에서 하게 된다면 꼭 흔적을 남겨라.
준비가 됐다면 구체적인 질문하는 방법을 단계별로 정리해보았습니다.
예시 - 좋은 질문 (O)
toFixed() 함수가 소수점 아래를 반올림한다고 들었는데, 아래 코드에서 왜 "1.00"이 나오는지 잘 모르겠습니다.
저는 현재 JavaScript를 독학 중이고, 숫자를 원하는 자리수로 표현하는 작업을 하고 있었습니다.
문자열로 바뀌는 것도 예상 못했는데, 이 함수의 작동 방식이 궁금합니다.
const num = 1;
console.log(num.toFixed(2)); // "1.00"
예시 - 좋은 질문 (O)
fetch 요청이 실패할 때 try-catch가 작동하지 않아 질문드립니다.
비동기 처리를 이해하려고 노력 중이고, 아래와 같이 시도해봤습니다.
catch가 동작하지 않길래 async가 빠진 건가 싶어서 함수 선언에도 붙여봤지만 여전히 안됩니다.
무엇이 문제일까요?
try {
const res = fetch("https://invalid.url");
console.log(await res.json());
} catch (e) {
console.error("Error caught!", e);
}
예시 - 나쁜 질문 (X)
아래 코드 안 됩니다. 왜 그런가요?
const items = [1, 2, 3];
items.map(async (item) => {
// 작업
});
예시 - 좋은 질문 (O)
map 안에서 async 함수를 쓰면 비동기 처리된 결과를 기다리지 않는 것 같아 질문드립니다.
아래 코드를 실행하면 console.log보다 return이 먼저 실행됩니다.
순차적으로 처리하려면 어떻게 해야 하나요?
const results = [1, 2, 3].map(async (item) => {
await new Promise((r) => setTimeout(r, 1000));
console.log(item);
return item * 2;
});
console.log(results); // Promise 배열
지금까지 개발자가 질문 하는 방법에 대해 자세히 알아보았습니다. 놓치기 쉬운 부분들이지만, 본인이 답변자의 입장이 되어서 생각해보면 크게 어렵지 않게 느낄 수 있는 부분들이라고 생각합니다. 모두 질문을 잘하고 빠르게 성장할 수 있는 계기가 되었으면 하는 마음에서 글을 마칩니다.