
리액트는 생태계는 컴포넌트 기반 프로그래밍이다
리액트 공식문서에 설계 패턴에 대한 모범 사례가 많이 없고, 대부분 개발자 편의에 따라서 구조를 짜는 경우가 많기 때문에 위반하기 쉽다.
화학용어인 원자(atomic) 구조와 유사하게 다음과 같은 효과적인 인터페이스를 사용한다.
원자(Atoms) - 분자(Molecules) - 유기체(Organisms) - 템플릿(Tamplates) - 페이지(Pages)

원자: 버튼, 제목, 텍스트 같은 가장 기초가 되고, 가장 작은 구성 요소이다.
분자: 2개 이상의 원자로 구성이 되어있다. 하나의 단위로 함께 동작하는 UI 컴포넌트들의 단순한 그룹이다.
유기체: 분자, 원자 또는 다른 유기체의 그룹으로 구성될 수 있다. 유기체들은 개별적인 영억을 형성한다.
템플릿: 컴포넌트들을 배치하고 설계 구조를 담당한다. 컴포넌트가 없을 경우 페이지가 어떻게 보일지 골격을 보여주는 역할을 한다. 분자, 원자, 유기체를 포함하고 있다.
페이지: 대표 콘텐츠가 있는 UI의 모습을 보여주는 템플릿의 특정 인스턴스이다.
페이지, 템플릿, 유기체, 분자, 원자 등을 결합하면 애플리케이션의 사용자 인터페이스를 구성할 수 있다. (Atomic Design 전체를 잘 보여주는 gif가 있어서 가져왔다)

폴더 구조를 예시를 들면 아래와 같이 CLIENT폴더 아래에 컴포넌트를 구성하는 폴더를 생성하고 또 안에서 UI를 구성하는 폴더로 나눌 수 있다.

앞서 설명한 것들을 통해서 폴더 구조를 구체화 할 수 있다. 폴더 구조는 코드 베이스에 따라서 달라질 수 있으니 반드시 팀원하고 상의하고 구현해야 한다.
https://andela.com/insights/structuring-your-react-application-atomic-design-principles/