개발자
얼마 전 Next.js로 개인 프로젝트를 진행했습니다. 그런데 프로젝트를 진행해보며 제가 어떤 방식으로 개발 공부 뱡향성을 잡아야하는지 혼란스러워 질문드립니다 ,, 🙏 처음 Next.js 쓸 때는 복붙 ,, 같은 기능도 복붙해서 파일 여러 개 만들기를 하고, 서버 컴포넌트와 클라이언트 컴포넌트에 대해 잘 알지 못한채로 프로젝트를 했었습니다. (+ 상태관리나 ,, 이런 것도 아예 모르고 개발했었습니다 ,,) 이번에 제대로 공부해서 기능을 구현해보고 싶어 다시 시작해서 완성했습니다. 그런데 제가 작성한 코드를 다 이해하며 작성했지만, **제가 작성한 코드가 좋은 코드인지? 에 대한 의문이 생겼습니다.** 그래서 팀 프로젝트도 참여해보며 같은 프론트 팀원 분의 코드를 확인해보며 좋아보이는 부분은 참고도 했지만, 이 방법도 한계가 있었습니다. 더 잘해보고 싶어 빨리 보여져야하는 이미지는 이미지를 미리 로드한다거나, next/image로 이미지 최적화를 하고 최대한 코드 중복을 줄이고자 공통 컴포넌트들을 만들기 위해 노력하긴 했었습니다. (나중에 스토리북 이라는 라이브러리를 알게되어 이걸 사용해보지 못한게 아쉽긴 했습니다.) 그래도 많이 부족한거 같아 어떻게 더 나은 개발을 해야할지 잘 모르겠습니다 ,, 첫 프로젝트에서는 부트스트랩 외에는 사용해보지 않아 이번에 제대로 다양한 기술을 써보고자 시도도 해보았습니다. (> 서버 상태 관리를 위해 tansack query도 사용해보고 클라이언트 상태 관리를 위해 recoil을 사용하고, 스타일링에는 css in js가 궁금해 styled components, 직접 어느정도 깔끔한 디자인을 하고싶어 피그마 툴을 이용해보았습니다. 소셜 로그인도 넣어보고 몽고 db 사용하며 데이터베이스도 연결해보았는데 ,, 막상 완성하고 나니 제가 많이 부족하다는 생각이 들었습니다.) 🤔 제가 작성한 코드가 좋은 코드인지 ,, 더 나은 성능을 위해 어떤 개발을 하면 좋은지와 같은 부분은 제가 어떻게 학습하는게 가장 좋은 방법일까요? 또한 어떤 것을 더 배워서 적용해보는게 좋을까요? ,, (제가 생각했을 때 프로젝트를 완성은 했지만, 제 프로젝트의 매력적인 점이 없는거 같아 너무 아쉬운거 같습니다.)
답변 1
인기 답변
이미 너무 훌륭하게 잘 하고 계십니다. 보통 웹 개발을 어떤 식으로 공부해야 하냐는 초심자분들의 질문에 저는 직접 어떤 웹서비스를 만들어보며 그때그때 필요한 지식을 공부하고 적용해보라고 조언하곤 합니다. 그리고 질문자 분은 정확하게 그렇게 해오신 것으로 보이네요. - 뭔지도 모르고 복붙만 해와서 코드를 정확히 이해하면서 프로젝트를 하고 싶어서 그렇게 했다. - 이미지 최적화를 위해 필요한 기술을 공부하고 적용했다. - 상태 관리를 위해 탠스택쿼리와 리코일을 공부하고 적용했다. - css, db, 디자인 등도 마찬가지 이미 너무 모범적으로 잘하고 계십니다. 지금까지 공부하고 사용하신 기술과 개념들은 실제 프로덕트에서도 쓰이는 것들입니다. 따라서 뭔가 새로운 걸 배우는 것도 좋지만 이번엔 기술의 깊이를 가져보면 더 좋을 거 같아요. 더 좋은 코드가 무엇인지에 대한 고민이 있으시다면 클린 코드에 대해 다루는 책을 읽거나, 코드 리뷰 스터디 등을 해도 추천합니다. 지금까지 만들어 온 웹서비스가 불만족스러우시다면 고도화하시는 걸 추천합니다. 업데이트되지 않는 서비스는 죽은 서비스뿐입니다. 사용자를 만들고 사용자로부터 피드백을 얻어 새로운 기능도 추가해보고 디버깅, 유지보수도 해보세요. (사실 실사용자를 만든다는 건 어쩌면 개발보다 훨씬 어려운 일인데, 그 경우엔 개발을 모르는 주변 지인 혹은 본인이 사용자가 되면 됩니다.) 제 첫 프로젝트는 라운드 별로 카운트다운이 있는 간단한 웹게임이었는데, 플레이 해 본 친구들이 특정 경우에 카운트다운이 멈춘다는 피드백을 주어 디버깅을 하게 되고, 그 과정에서 필요에 의해 전체적인 컴포넌트 구조도 변경하게 되고, 하다 보니 랭킹이 있으면 더 널리 퍼질 수 있을 거 같아서 디비도 만들고 공유 기능도 만들게 되었어요. 요지는 피드백을 바탕으로 서버스가 살아 숨쉬게 만드는 경험을 해보시라는 겁니다. 첫 술에 배부를 수 없고 이미 너무 잘하고 계십니다. 앞으로도 지금처럼 나아가시면 될 거 같습니다.
익명
작성자
2024년 04월 28일
글 꼼꼼하게 읽어봐주시고 답도 정성스럽게 해주셔서 정말 감사합니다 🙏,, 책 사서 클린 코드가 무엇인지도 공부해보고 만든 웹도 업데이트도 해봐야겠어요 ! 요즘 채용 시장이 안좋은거 같은데 잘하는 사람만 엄청 많이 보이고 이런 분들조차도 취업에 실패하는 모습을 지켜보다보니,, 제가 하는 공부가 잘못된 방향인지,, 어떤 부분을 더 해야하는지 궁금했던거 같아요,, 😓 좋은 말씀 해주셔서 감사합니다 ❕ 더 열심히 노력해보겠습니다 ~
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 04월 27일
프로젝트를 진행하면서 느낀 의문과 고민은 많은 개발자들이 겪는 일반적인 단계입니다. 지속적인 학습과 반복적인 경험이 중요한 부분입니다. 좋은 코드를 작성하는 것에 대한 판단 기준은 다양하지만, 여기 몇 가지 원칙을 제시해드리겠습니다. 1. **유지 보수성**: 코드는 자신만이 아니라 다른 사람도 이해하기 쉽게 작성하는 것이 중요합니다. 이는 팀 프로젝트 뿐 아니라 나중에 자신이 다시 코드를 참조할 때도 매우 유용합니다. 2. **효율성**: 비효율적인 코드는 시스템의 성능을 저하시킬 수 있습니다. 따라서 알고리즘 선택, 데이터 구조 사용 등에 대해 신경써야합니다. 3. **가독성**: 깔끔하고 일관된 스타일의 코드 작성은 가독성을 높이고 오류 발생 가능성을 줄일 수 있습니다. 4. **재사용 가능성**: 재사용 가능한 컴포넌트나 함수를 만들면 웹사이트 전체에서 코딩 작업량을 줄일 수 있습니다. 좋은 코드를 판단하고 작성할 수 있게 되는 가장 좋은 방법은 경험입니다. 따라서 다양한 프로젝트를 진행하고, 다른 사람들의 코드를 리뷰하며 배우는 것이 중요합니다. 추가로 배울 기술에 관해 말씀드리자면, 이는 자신이 어떤 목표를 가지고 있는지에 따라 다릅니다. 웹 개발에 능숙해지고 싶다면 풀스택 기술을 학습하는 것이 좋습니다. 예를 들어 Node.js, Express.js 등의 백엔드 기술을 학습하거나 데이터베이스 관련 기술(SQL, MongoDB 등)을 추가적으로 배워보는 것도 유익할 수 있습니다. 마지막으로, 프로젝트의 '매력'이 무엇인지에 대해서는 사용자 경험(UX)과 디자인 측면에서 고민해 보실 수 있습니다. 사용자가 당신의 웹사이트를 사용하는 데 문제가 없으며 그들의 목표를 달성하는 데 도움이 된다면, 당신의 프로젝트는 이미 매력적이라고 할 수 있습니다. 항상 명심하세요, 성장은 점진적인 과정이며 장기적인 시선을 가지는 것이 중요합니다. 계속해서 학습하고 실험해 보세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!