GitHub - prgrms-fe-devcourse/NFE1_2_3_TurtleNeck: 🐢거북목에 시달리는 개발자들을 위한 IT 블로그🐢
🐢거북목에 시달리는 개발자들을 위한 IT 블로그🐢. Contribute to prgrms-fe-devcourse/NFE1_2_3_TurtleNeck development by creating an account on GitHub.
github.com

TurtleNeck 블로그 프로젝트 회고
프로젝트 개요
TurtleNeck 블로그는 개발자들을 위한 테크 블로그 플랫폼으로, 사용자가 마크다운 에디터를 통해 쉽게 글을 작성하고, 다른 사용자들과 좋아요 및 댓글로 소통할 수 있도록 설계되었습니다. 이 플랫폼은 개발자 간의 소통과 피드백을 통해 서로의 성장을 돕는 커뮤니티를 지향합니다. Stripe.dev를 레퍼런스로 삼아 직관적이고 전문적인 블로그 경험을 목표로 프로젝트를 진행했습니다.
주요 기능:
- 마크다운을 통한 간편한 글 작성:
react-markdown-editor-lite
와markdown-it
을 활용해 사용자는 코드 블록, 표, 리스트 등 다양한 형식을 간단히 작성할 수 있으며, 직관적인 편집 경험을 제공합니다. - 좋아요 및 댓글 기능: 게시물에 좋아요와 댓글을 남길 수 있어 사용자 간 활발한 소통이 가능하며, 작성자는 이를 통해 피드백을 받을 수 있습니다.
- 관리자 기능: 카테고리 관리, 댓글 관리, 블로그 정보 관리 기능을 통해 블로그를 효율적으로 운영할 수 있습니다.
경험 및 어려움
1. Git 리버트 실수
프로젝트 초반에 Git 리버트를 잘못 사용하는 실수를 범했습니다. 특정 시점으로 바로 리버트를 실행하면서, 초기에 설정된 환경이 꼬여 혼란이 발생했습니다. 순차적으로 리버트를 진행해야 했으나, 서툰 조작으로 팀원들에게 불편을 끼친 점이 아쉬웠습니다.
2. CORS 문제
프로젝트를 진행하며 처음으로 CORS 오류를 겪었습니다. 이전 프로젝트에서는 접하지 못했던 문제였기에, 이를 해결하며 웹 보안 및 네트워크 설정에 대해 학습해야 했습니다.
3. Next.js의 App Router 첫 경험
Next.js를 처음 접하며 서버 사이드 렌더링(SSR)에 대해 학습할 기회를 얻었습니다. 좋아요 상태 관리를 위해 클라이언트 컴포넌트를 활용했으나, 서버 컴포넌트를 적극적으로 사용하지 못한 점이 아쉬웠습니다. 또한, Next.js가 15버전으로 업그레이드된 상황에서, 프로젝트 초기에는 14버전을 선택해 환경을 설정하며 시행착오를 겪었습니다.
4. 컨디션 문제
2차 프로젝트가 끝난 직후 바로 시작된 프로젝트였기에, 충분히 휴식할 시간이 부족했습니다. 더불어, 프로젝트 기간이 짧았고 최종 프로젝트에서는 백엔드 팀과 협업까지 필요했기에 심리적으로도 부담감이 컸습니다.
5. 폴더 구조로 인한 ESLint 문제
폴더 구조 설정 문제로 ESLint가 제대로 동작하지 않는 상황이 발생했습니다. 이에 대한 해결 과정을 통해 프로젝트의 초기 설정과 코드 컨벤션의 중요성을 다시금 깨달았습니다.
6. 미완성된 기능과 기술적 아쉬움
목차 기능은 프로젝트 제출 후 다른 프로젝트 사례와 동료의 조언을 참고하여 뒤늦게 완성했습니다. 또한, 프로젝트에서 비교적 단순한 기능 위주로 맡아 진행했다는 점에서 기술적 아쉬움과 스스로에 대한 의문이 들었습니다. “내가 이 정도밖에 못하는 걸까?”라는 고민이 계속되며 자신감을 잃기도 했습니다.
앞으로의 다짐
- 기술적 도전: 프로젝트에서 단순한 기능에만 머무르지 않고, 더 도전적이고 복잡한 기능 구현에 도전하겠습니다.
- 철저한 환경 설정: 초기 설정에서 발생할 수 있는 문제들을 미리 예방하고, 환경 구성을 더욱 철저히 하겠습니다.
- 지속적인 학습: Next.js의 새로운 버전과 기능을 꾸준히 학습하며, 최신 기술 트렌드에 뒤처지지 않도록 노력하겠습니다.
- 자신감 회복: 작은 실수와 한계를 자책하기보다는, 이를 발판으로 삼아 성장하는 개발자가 되겠습니다.
마무리
TurtleNeck 프로젝트는 많은 시행착오와 어려움 속에서도 성장할 수 있는 기회를 준 소중한 경험이었습니다. 앞으로의 프로젝트에서도 배운 점들을 바탕으로 더 나은 결과물을 만들어나가겠습니다.