2024년 10월 15일부터 약 4주간 우테코 7기 프론트엔드 프리코스를 진행했습니다.
프론트엔드로 지원했기 때문에 JavaScript로 모든 미션을 수행했으며,
주로 웹 페이지 구현에서 사용해오던 JS를 다른 방식으로 다뤄야 했기에 낯선 부분도 있었습니다.
하지만 짧은 시간 동안 집중적으로 많은 시간을 투자하며 여러 방면에서 성장할 수 있었습니다.
이번 회고를 통해 배웠던 점을 다시금 정리해 보고자 합니다.
배웠던 점
1. 사고 방식
- 메타인지
2. 프로젝트 환경과 관련된 부분
- 스타일 컨벤션 적용
- Git 컨벤션 적용
3. 코드 작성
- Test 코드 및 TDD
- 상수화하여 처리
- 하나의 함수는 하나의 기능만
- get/set 을 무작정 쓰지말고 객체의 상태에 맞게 사용
- MVC 패턴에 대한 이해
- 유효성 검증
회고
1. 사고 방식 - 메타인지
프리코스를 통해 메타인지라는 단어를 처음 알게 되었습니다.
메타인지는 내가 무엇을 알고 있고 무엇을 모르는지 명확히 파악하여 학습 방향을 조정하는 능력을 말합니다. 이전에는 단순히 코드를 구현하고 기능이 동작하면 끝이라고 생각했지만, 프리코스의 코드 리뷰와 피드백 과정을 통해 "왜 이렇게 구현해야 하는가"라는 질문을 던지게 되었습니다.
이 과정에서 단순히 문제를 해결하는 것을 넘어, 문제의 본질을 이해하려고 고민하는 태도가 얼마나 중요한지 깨닫게 되었습니다. 이러한 사고 방식 덕분에 미션을 해결하는 동안 수많은 검색과 코드 리뷰를 거치며, 스스로의 실력을 한층 더 성장시킬 수 있었던 것 같습니다.
2. 프로젝트 환경과 관련된 부분
- 스타일 컨벤션 적용
그동안 코드 스타일을 맞추는 것을 번거롭게 느껴 간과했던 제 자신을 돌아보게 되었습니다. 각 언어와 프로젝트마다 컨벤션을 따르는 것은 기본임에도 이를 무시하고 구현에만 치중했던 점이 아쉬웠습니다. 이번에 매주 같은 코딩 스타일을 적용시키고 다른 사람의 코드를 리뷰하면서 이것의 중요성을 알게되었습니다.
- Git 컨벤션 적용
과거에는 Git 커밋 메시지를 제가 알아보기 쉬운 방식으로만 작성하거나, 의미 없이 작성했던 적이 많았습니다. 팀 프로젝트에서도 이러한 습관이 이어져, 협업과 프로젝트 관리에 비효율을 초래했음을 돌아보게 되었습니다.
이번에 Git 컨벤션을 학습하고 적용하면서, 체계적인 커밋 메시지가 프로젝트의 이력을 명확히 관리하는데 큰 역할을 한다는 것을 알게되었습니다.
3. 코드 작성
- Test 코드 및 TDD
테스트가 개발에서 중요한 부분임을 알고 있었지만, 이전에는 직접 실행하며 테스트하는 방식에 머물렀습니다. 이번에 처음으로 Jest 라이브러리를 사용해 테스트 코드를 작성하면서 테스트 주도 개발(TDD)에 대해 배울 수 있었습니다. 단순히 테스트 코드 작성법을 익힌 것뿐 아니라, 기능 구현 전에 테스트를 설계하며 코드의 품질을 높이는 방법을 배웠습니다.
아직 원하는 수준의 테스트 코드를 작성하지 못하지만, 이를 보완하기 위해 Jest 사용법과 테스트 코드 작성을 더욱 연습할 계획입니다.
- 상수화하여 처리
과거에는 변경되지 않는 문자나 숫자를 함수 내부에 하드코딩하곤 했습니다. 하지만 이번에 상수를 분리해 관리하는 방식을 배우며, 유지보수와 확장성 면에서 상수화가 필수적인 요소임을 깨달았습니다.
- 하나의 함수는 하나의 기능만
"하나의 함수는 하나의 기능만 해야 한다"는 원칙을 처음 들었을 때는 그 중요성을 제대로 이해하지 못했습니다. 하지만 다른 사람의 코드를 읽고 수정하거나 기능을 추가하면서, 이 원칙이 코드 가독성과 유지보수성을 높이는 데 얼마나 중요한지 체감했습니다. 하나의 함수가 하나의 역할에 집중하면 코드가 간결해지고, 협업과 디버깅이 한결 쉬워진다는 것을 배웠습니다. 이를 실천하며 함수 길이를 줄이는 습관도 함께 기르게 되었습니다.
- get/set 을 무작정 쓰지말고 객체의 상태에 맞게 사용
객체지향 프로그래밍에서 get/set 메서드를 무작정 사용하는 대신, 객체의 상태와 역할에 맞게 설계해야 한다는 피드백이 인상 깊었습니다. 예를 들어, 로또 객체라면 숫자 상태는 로또 객체 내부에서만 관리되어야 합니다. 이를 무분별하게 외부에서 관리하던 과거의 코드를 돌아보며 객체지향적 사고를 한층 더 이해하게 되었습니다.
또한, 단순히 객체 상태를 가져오는 데 그치지 않고, 상태에 대한 계산이나 값을 도출하는 메서드를 작성하는 것이 더 객체지향적이라는 점도 배웠습니다.
- MVC 패턴에 대한 이해
MVC 패턴의 핵심 목적은 비즈니스 로직과 뷰를 분리하여 코드의 유지보수성과 확장성을 높이는 데 있습니다. 이전에는 이 개념을 충분히 이해하지 못해 상태를 모델 대신 컨트롤러에 두는 등 패턴의 목적에 부합하지 않는 설계를 하곤 했습니다. 이번에 MVC 패턴을 다시 학습하고 적용하면서, 각 구성 요소의 역할을 명확히 분리하는 연습을 할 수 있었습니다.
- 유효성 검증
특정 입력을 처리할 때, 입력 단계에서 모든 경우를 한 번에 처리하는 방식으로 코드를 작성했었습니다. 그러나 프리코스를 진행하면서, 입력 단계에서는 입력 형태에 대한 유효성 검증을 수행하고, 객체에서는 객체의 상태를 별도로 검증하는 방식이 객체지향 프로그래밍 원칙에 더 적합하다는 것을 알게 되었습니다. 이를 통해 객체지향적인 코드에 대한 이해를 더욱 깊게 할 수 있었습니다.
마무리
프리코스를 통해 얻은 피드백과 배움은 앞으로의 개발 여정에 좋은 틀을 마련해 주었습니다. 비록 1차 합격에는 실패했지만, 이번 경험이 제게 많은 성장을 가져다주었습니다. 특히, 결합도를 낮추고 응집도를 높이라는 말이 단순한 원칙으로만 느껴졌던 과거와 달리, 이제는 이를 실질적으로 코드에 적용하기 위해 무엇을 고민하고 실천해야 하는지 알게 되었습니다.
4주라는 짧은 시간이었지만, 코드 품질과 사고방식 등 여러 방면에서 큰 변화를 경험할 수 있었습니다. 만약 프리코스를 고민하고 계신 분들이 있다면, 꼭 도전해 보시길 추천합니다. 단순히 지식을 배우는 것을 넘어, 개발자로서의 기본기를 다지는 데 큰 도움이 될 것이라 생각합니다.
'활동 관련' 카테고리의 다른 글
[오픈소스 컨트리뷰션 아카데미] 1차 조별 모임 / 정규 모임 회고 (0) | 2025.04.23 |
---|---|
[오픈소스 컨트리뷰션 아카데미] PR Agent 참여 및 발대식 (0) | 2025.04.21 |
[책 리뷰] 개발자 원칙 (0) | 2025.04.12 |
[오픈소스 컨트리뷰션 아카데미] Git 활용과 Ant Design Korea 체험형 후기 (0) | 2025.01.16 |
멋쟁이 사자처럼 12기 해커톤 후기 ( 08.06 ~ 08.07 ) (0) | 2024.08.28 |