개발자

[Next.js] 디자인 패턴을 적용해보고 싶습니다.

2024년 01월 11일조회 966

안녕하세요. 저는 Next.js를 사용해 프로젝트를 처음 시작해보는 뉴비 개발자입니다. 넥스트를 사용해 2명에서 간단하게 토이 프로젝트를 진행하고자 하는데, 이번 프로젝트에서는 디자인 패턴을 적용해보고 싶습니다. 아토믹 패턴이 유명하다는 건 알고 있는데, 막상 적용하자니 프로젝트의 규모가 작아서 비효율적인 개발이 될 것 같기도 하고 아토믹 패턴 자체의 개념은 이해가 되어도 그걸 폴더나 컴포넌트 구조 설계로 이어나가는데 어려움을 겪는 것 같습니다. 제가 드리고 싶은 질문은 3가지 인데요. 1. 작은 기능 4개 있는 프로젝트에서 적용해볼 만한 디자인 패턴은 무엇이 있는지 알고 싶습니다. (최근 현업에서 사용하는 디자인 패턴을 사용해보고 싶어요.) 2. 그리고 그 디자인 패턴을 사용하며 폴더&컴포넌트 구조 설계를 잘 하는 방법이 있을까요? 초기 설계가 너무 어렵게 느껴집니다. (ex, 참고할 만한 레포 찾는 방법이라던지) 3. 디자인 패턴과 아키텍처 설계는 다른 건가요? 아직 초보 개발자라 제게는 크게 구분되어 와닿지 않는 것 같습니다. 글을 쓰다 보니 질문이 난해할 것 같은데, 긴 글 읽어주셔서 감사합니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

인기 답변

유길종님의 프로필 사진

디자인 패턴이나 아키텍처는 본질적으로 생각하면 프로그래밍을 하다가 마주하게되는 여러가지 어려움 , 문제점을 해결하기 위한 고민의 산물이라고 정의할 수 있습니다. 그렇기 때문에 내가 개발을 하다가 어떤 문제에 직면해보지 않은 상태에서 "이런 이런 디자인 패턴을 써보고 싶다"라는 마음가짐으로 디자인 패턴을 사용하려고 들면 왜 이러한 패턴이 좋은 것인지, 어떻게 써야 잘 사용할 수 있을지와 같은 것들이 전혀 와 닿지 않게됩니다. 저는 "망치를 들면 모든게 못으로 보인다" 라는 말을 참 좋아하는데요 제가 처음 디자인 패턴을 접했을 때 지금 나의 모든 코드의 문제를 지금 배운 디자인 패턴으로 해결할 수 있을 것 같은 느낌을 받곤 했기 때문입니다. 굳이 억지로 디자인 패턴을 적용해보지 않더라도 열심히 개발을 하다보면 자연스럽게 여러가지 어려움을 겪게 되고 힘든 상황이 오실 겁니다. 그 때 학습해보시는 게 저는 더 좋다고 생각해요 박아야할 못이 없는 상황에서 망치를 쓰려고하면 망치를 잘 쓸수가 없기 때문입니다.

이지헌님의 프로필 사진

이지헌

작성자

삼성청년SW아카데미(SSAFY) 웹 개발2024년 01월 15일

알람이 뜨질 않아 이 좋은 답변을 이제 봤습니다ㅠㅠ 무슨 말씀인지 이해한 것 같습니다. 일단은 먼저 코드를 작성하면서 지속적으로 개선해나가는 방법을 찾아나가다 보면 디자인 패턴을 적용해볼 시기가 보일 것 같습니다. 정말 감사합니다!

인기 답변

백승훈님의 프로필 사진

먼저 다음 링크의 디자인 패턴과 렌더링 패턴을 보시면 도움이 됩니다. https://patterns-dev-kr.github.io/ 질문에 답하기 앞서서 지금은 큰 구조나 디자인등 패턴에 매몰되지 마시고 코드를 남이 보기 편하고 사용하기 편하며 잘 분리해서 재사용이 가능한 개발에 먼저 신경을 써보시는 걸 추천드립니다. 패턴이나 설계의 경우 결국 아는만큼 보이는 경우가 많은지라 저도 처음에 접한 건 공부를 시작할 당시였지만 그때 봤던 거와 부트캠프에 들어가기전, 졸업후 , 취업후 , 6달후 등 볼때마다 다르게 와 닿는 경우가 많습니다. 많은 항목들이 있지만 프론트엔드를 지향하신다면 몇가지 추천드리고 싶은 패턴이 있습니다. 위 링크의 디자인 패턴에서 Render Props 패턴 Hooks 패턴 HOC 패턴 Prototype 패턴 (JS 이해적인 측면에서) 랜더링 패턴 부분에서는 처음부터 ~ ISR (Incremental Static Generation) 까지 그리고 추가적으로 흥미가 있으시다면 React Server Components 부분과 하단 Performance Patterns (이부분은 아직 어려운 내용이 많기에 가볍게 훝어보는 정도) 로 추천드립니다.

이지헌님의 프로필 사진

이지헌

작성자

삼성청년SW아카데미(SSAFY) 웹 개발2024년 01월 15일

알림이 뜨질 않아 좋은 답변에 대한 감사인사가 늦었습니다 ㅠㅠ 아직 뉴비인 제게 제공하주신 사이트는 정말 도움이 많이 되는 것 갘습니다. 지식을 공유해주셔서 진심으로 감사하게 생각합니다!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 01월 11일

1. 프로젝트의 규모가 작아도 적용해 볼 만한 디자인 패턴은 MVC (Model-View-Controller), MVVM (Model-View-ViewModel), Flux, Redux 등이 있습니다. React와 함께 자주 사용되는 패턴으로는 컴포넌트 베이스 디자인 패턴과 컨테이너 / 프레젠터 패턴이 있는데, 이는 화면 전체를 담당하는 컨테이너와 각각의 기능을 담당하는 프레젠터로 구분합니다. 2. 폴더&컴포넌트 구조 설계에 대해서는 여러 가지 방법론이 있어 기능별로 구조를 나누거나 유형별로 파일을 분류하는 방법 등 다양한 접근 방식을 시도해 볼 수 있습니다. 목적에 따라 체계적으로 파일을 정리하고 명명 규칙을 일관성있게 유지하는 것이 중요합니다. 3. 디자인 패턴과 아키텍처 설계는 다릅니다. 아키텍처 설계는 시스템의 전반적인 틀을 정의하며, 어떤 기술 스택을 사용할 것인지, 어떤 서버가 필요한지, 데이터베이스 구조는 어떻게 되는지 등을 결정합니다. 디자인 패턴은 소프트웨어 개발에서 공통적으로 발생하는 문제들에 대해 재사용 가능한 해결책을 제공합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!