위코드 수강생분들의 더 좋은 학습경험을 위해 주 1회 19시 30분~21시 30분에 현업개발자로서 멘토링을 할 수 있는 기회를 얻게 되어,
멘토링 과정의 질의응답 과정을 기록해 보았습니다.
1. 입력값 [5, 2,8]인데 undefined가 나와요
function main (array) {
if(array.length >= array){
return array[0] + array[1]
} else if (array.length === 1){
return array[0]
} else if (array.length ===0){
return 0
}
}
해당 문제는 똑같이 재현하지 못했지만, 문제 구조와 질문은 동일합니다.
그리고 자바스크립트 문법을 처음 접하고 일주일도 안되고 알고리즘 문제를 푸는데 나온 질문입니다.
질문
문제는 간단히 배열이 있으면 첫 번째 인덱스와 두 번째 인덱스의 값을 더하는 문제였다.
여기서 만약에 배열의 길이가 1이면, 1번째 배열의 값을 리턴하고,
길이가 0이면 0을 리턴하는 케이스가 있었다.
여기서 배열의 길이가 1일때와 0일 때는 제대로 값이 나오는데 배열의 길이가 2 이상일 때는
return undefined가 나온다고 하였다.
답변
연산자의 오류가 있고 우선 자바스크립트의 특성상 연산자의 오류가 있어도 연산을 진행하고 false가 나온다라고 대답하고 시작하였다.
그리고 array.length는 숫자(number)가 나오고 array는 말 그대로 배열이기 때문에 연산자체가 성립이 안된다고 설명해 주었다.
설명하는 과정에서 수강생분이 왜 이렇게 접근하게 되었을까 소통을 통해 알게 되었는데,
우선 0번 인덱스와 1번 인덱스를 더한 값을 리턴하고, 후에 다른 조건일 때의 식을 작성하여
if 문의 조건을 채워야 한다는 생각에서 나온 오류라는 것을 깨달았습니다.
그리고 아래와 같이 식을 수정하고, 비교적 경우의 수가 적은 것부터 식을 완성 해보라고 하였고,
아래처럼 부정을 먼저 걸러내는 방식을 알려주었습니다.
function main (array) {
if (array.length === 1){
return array[0]
} else if (array.length ===0){
return 0
}
return array[0] + array[1]
}
느낀 점
해당 질문을 받으면서 코딩을 처음 접하면서 맞고 아니고를 먼저 알려주는 것보다,
자연스럽게 수강생분의 풀이 과정을 들어보고 어떻게 이런 접근을 하게 되었을까를 생각해았고,
여기까지 접근하면서의 나온 오류들을 찾아내고 이해를 도울 수 있어서 무척 기뻤다.
2. 팀 프로젝트를 진행하면서 git rebase전략을 사용했는데...
질문
팀 프로젝트를 진행하면서 git rebase전략을 사용했는데, 로컬에서 rebase가 잘되는데 자꾸 원격에서 conflict가 나요.
답변
설명으로 들어서는 conflict 나는 시점을 보지 못하여, 정확히 왜 conflict가 일어나는지는 알 수 없다고 하였다.
그리고, git이 conflict가 나는 원인을 설명하였다.
새로 쌓인 commit 외의 commit log의 base hash값이 다르면, conflict가 난다라고 먼저 말을 떼었는데, 아차 싶었다.
고민을 하다가 git, github, conflict 케이스를 commit hash로 설명해 주는 게, 추후에 비슷한 일이 일어났을 때 프로그래밍사고를 가지고 해결해 나가는 게 도움이 되지 않을까 싶었는데, 멘토링 시간이 한정적이고,
설명하는데 1시간 넘게 걸릴 것 같아서 21시 30분 후에 다시 와달라고 돌려보냈다...
그러면서 git 게임 하나를 추천해었다.
https://learngitbranching.js.org/?locale=ko
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
learngitbranching.js.org
느낀 점
괜히 돌려보냈다.. 찝찝하다.
거의 70명이 넘어가는 수강생 중에, 누가 질문을 했는지 고민하느라 기억도 못하고, 암튼 찝찝했다.
그 후로 계속 다음에 git 질문이 올 때 어떡하면 근본을 잘 이해하게 도울 수 있을까 고민을 많이 했고,
다음에 비슷한 질문을 받으면 그때 풀어볼 예정입니다.
앞으로 마음 가짐
저도 아직 1년 차 개발자지만,
저보다 늦게 개발을 시작한 사람분들에게 나름 노하우와 경험을 공유하여, 경험치를 어느 정도 먹고, 성장에 도움을 주고 싶습니다.
그 시작점으로 시작하게 된 나이트 멘토링인 만큼, 소홀히 하지 말고, 잘 끝마무리 맺는 게 목표입니다.
댓글