프로그래머스 1주차 과제 회고
1주 차 + 2주 차 과제 회고 (근데 이제 3주 차 두 번째 과제를 마치며 작성하는.. 🐢)
진행 순서는 과제에 주어진 내용을 구현하고 생에 첫 번째 PR을 진행했다. 처음 진행하는 거라 조금 어리바리했지만 다행히 방법이 잘 정리된 문서를 따라 팀원들과 확인해보며 절차에 따라 늦지 않게 제출하였다. 이후에는 리팩토링을 진행하고 코드를 개선하는 작업을 거쳤다.
분명 짧지 않은 기간 독학 해왔지만 처음으로 진행한 점들이 상당히 많다. 따라서 이번 회고에서는 처음이라는 말이 꽤 많이 나올 것 같다.
또한 과제의 내용은 private이기 때문에 자세하게 작성하진 않았다.
자료 구조 구현은 처음이라.
클래스에 대해 학습한 적이 있으나 이를 직접 활용해볼 경험은 거의 없었다. 근데 이번 과제에서는 클래스를 활용하여 자료구조를 구현해야 했고 이전에 작성했던 내 글을 지금의 내가 다시 확인해보니 무엇이 부족했는지 느껴졌다. (나와는 상관없다고 생각하고 싶었나보다...)
강의를 통해 기본 베이스 내용들은 처음부터 작성할 필요는 없었지만 핵심이 되는 기능들을 직접 구현하였다. 이제는 어떻게 사용해야 하는지 알고 있지만 처음에는 막막한 점이 많았다. 이전 강의들을 통해 클래스, new, this는 어떻게 활용하는지 살펴보고 어느 정도 이해도를 키운 후에 과제를 진행할 수 있었다. 이번 기회를 통해 클래스를 다 이해했다고는 할 수 없지만 예전에 작성했던 클래스에 대한 블로그 글을 조금씩 수정해보며 이해도를 높였다.
여담이지만 강의를 듣기 전에는 'Queue는 shift 내장 함수를 사용하면 돼!'라고 믿고 있었지만 속도 이슈를 가지고 있다는 것을 배웠고 이번 과제에도 구현한 Queue를 가져와 활용하였다.
class 프롱이 {
constructor(name, age) {
this.name = name;
this.age = age;
}
greeting() {
console.log(`Hi I'm ${this.name}`);
}
getAgeAfterDevCourse() {
return this.age + 1;
}
}
const me = new 프롱이("Minjae", 29);
me.greeting(); //Hi I'm Minjae
console.log(me.getAgeAfterDevCourse()); //30 😢
팀원들의 PR 코드 리뷰 진행
다른 사람의 코드에 직접 코멘트를 남기고 개선점을 찾아보는 경험도 처음이다. 물론 다른 분들의 코드를 참고하고 친구에게 이런 방법도 있다고 말해준 경험은 있지만 깃허브를 통해 뭔가 정식적으로 기록하는 것이 새롭게 느껴졌다. 그리고 깃허브의 기능과 효율성을 더 느낄 수 있게 되었다.
코드 리뷰를 진행하며 팀원들의 코드를 통해 같은 내용을 구현했지만 다르게 작성한 부분들을 유심히 보았고 예외 처리나 가독성을 위한 개선점을 추천해보았다. 물론 더 효율적인 부분도 많아 배울 점이 아주 많았다. 아쉬웠던 점은 좋았던 코드에 대한 칭찬을 못했다는 점이다. 다음번 코드 리뷰에서는 좋은 점에 대해서는 좋았다는 의견을 남겨야겠다.
멘토님과 팀원들의 코드 리뷰 리팩토링♻️
다른 팀원들의 코드 리뷰를 진행하며 나름 깔끔하게 작성했다고 생각했지만 고칠 점이 많다고 느꼈고 다양한 리뷰를 받게 되었다.
리팩터링을 진행한 내용은 아래와 같다.
- 순회 결괏값을 한 줄로 출력
- undefined와 null을 한 번에 예외 처리하는 조건문 작성
- default parameter로 root를 주어 빈칸을 입력받는 경우에도 작동하도록 함
- 외부에서 사용하는 경우 구분이 쉽도록 네이밍 변경
- 멤버 변수로 엔드포인트를 추가하여 같은 스펠링 가지는 단어 구분
- String 타입 확인하는 메서드를 추가하여 문자열만 허용
- 자동완성 함수 실행 시 반환 값을 가지게 수정
- 공백을 가진 단어는 정규표현식으로 공백을 지우는 기능 추가
- 컨벤션 유지를 위한 코드 수정
이처럼 네이밍과 컨벤션에 대한 내용부터 예외 처리, 기능 추가까지 혼자만 보고 있었다면 생각해보지 못했을 개선 사항들을 주셨고 이번에는 모든 내용이 이전 코드보다 나은 방식이라고 생각하여 리팩토링을 진행하였다.
회고하며
비록 두 번째 과제를 마무리하고 글쓰기 나서 회고를 진행하는 것이지만 이를 통해 구현했던 내용을 돌아보고 아쉬웠던 점과 얼마나 발전했는지 느낄 수 있었다. 앞으로도 여러 가지 과제를 진행할 계획이고 점점 더 나은 코드를 작성하게 될 것이라는 생각이 든다. 오늘은 글쓰기 특강을 듣기도 하여 기록의 중요성을 더 느끼게 되었다. 아직 많이 부족한 글쓰기 실력이지만 많이 보고 써보며 발전해야겠다.
'프로그래머스 데브코스 > 회고' 카테고리의 다른 글
프로그래머스 데브코스 - FE#7 CSS 과제 회고 (0) | 2023.01.25 |
---|---|
프로그래머스 데브코스 - FE#6 Vanilla JS_2 과제 회고 (0) | 2022.12.25 |
프로그래머스 데브코스 - FE#4 노션 클론 과제 회고 (0) | 2022.12.16 |
프로그래머스 데브코스 - 3주차 과제 회고 (0) | 2022.11.20 |
정규 표현식을 이용한 개미수열 구현 - JavaScript (1) | 2022.10.28 |