개발자
안녕하세요, 독학으로 개발을 배워 풀스택으로 스타트업 파트타임 및 개인 프로젝트를 하고 있는 대학생입니다. 프론트엔드는 여전히 명확한 기준이 없고 기술이 계속해서 발전 중이라 개발자마다 기준과 사용하는 프레임워크/라이브러리가 상이한 것으로 알고 있는데요, 큰 가닥으로는 react 같은 CSS-in-JS, tailwind 같은 atomic CSS, BEM 규칙 같은 전통적인 방법 이렇게 3가지로 나뉘는 것 같습니다. 최근 프로젝트에 tailwind를 도입하였는데, 프로젝트 규모가 커질수록 반복되는 스타일을 컴포넌트화 하기에도 한계가 있고, 일관성이 떨어져서 불편하다고 느꼈습니다. 그럼에도 tailwind에서 자주 사용하는 일부 유틸리티 클래스는 여전히 편리한 점과 매력이 정말 많다고 느꼈는데요, 예를 들어 버튼에 마진 하나 주기 위해 새로 클래스를 정의하는 것보다 mb-4로 간단하게 끝낼 수 있다는 것은 가독성을 매우 올려주었습니다. 저는 현재 tailwind에서 자주 사용하는 margin, display 등의 유틸리티 클래스만 별도로 만들어서 간단한 spacing을 할 때에는 atomic css를 사용하고, 컴포넌트와 스타일링은 기존 방식의 클래스 기반 css를 사용 중입니다. 혼자 독학하여 코드를 짜다보니, 결과물은 그럴싸하지만 너무 임의의 방법을 채택한 것이 아닌가..? 라는 생각이 들어 질문을 드립니다. js 를 사용하지 않고 프론트엔드 작업을 하는 경우 현업에서는 어떤 방식을 사용하고, 제 방법에서 발생할 수 있는 문제가 무엇인지 궁금합니다ㅠㅠ 감사합니다!
답변 1
인기 답변
프론트엔드라고 크게 표현하셨는데 질문 내용 자체는 css 도구와 방법론에 국한되는 거 같으니 css에 한정하여 답변하겠습니다. 일단 여러 도구를 사용해 보시는 것은 학습 측면에서 매우 좋은 것 같습니다. 도구에 익숙해지는 것은 물론 남들이 말한 것이 아닌 내가 체득한 지식으로 각각의 장단점을 파악할 수 있으니까요. 현업에서 어떤 방식을 사용한다고 단정해서 말할 순 없습니다. 으레 프로그래밍 방법론이 그렇듯 단 하나의 정답은 없고 팀 각자 사정에 따라 더 낫다고 생각하는 도구와 방법을 채택할 뿐이죠. 유지보수의 용이함, 기술의 편리함 등등 다양한 것을 고려하여 선택합니다. 정말 단순하게는 팀 초창기 기술을 선택하는 사람이 그저 익숙하다는 이유로 채택하기도 합니다. 혼자서 프로젝트를 할 땐 본인이 감당할 수만 있다면 어떻게 해도 상관없다고 생각합니다. 다만 협업을 할 땐 내 코드를 남이 읽는다는 것을 고려해야겠죠. 따라서 일관성이 중요합니다. 각 도구의 역할 구분이 명확해서 팀원 중 어느 누가 작성해도 같은 도구와 같은 스타일로 코딩을 할 게 분명하다면 여러 도구를 사용해도 된다고 생각합니다. 근데 솔직히 쉽지는 않을 거 같아요. 특히 css의 경우 나중에 수정하려고 하면 어느 부분을 수정해야하는 건지 헷갈릴 것 같습니다. 잘 조직된 팀이라면 이에 대한 문서화가 잘 돼있을 거예요. (이를테면 클래스명 규칙, stylelint 따위) 정리하건대 여러 방법 자체는 문제가 없지만 기술 선택의 이유는 있어야 할 거 같습니다. 문서화와 함께 하면 더 좋구요. 도구를 혼합해서 사용하는 것은 당장은 속도를 높여줄 수도 있지만 협업 장기 프로젝트 관점에선 혼란을 증대시킬 수 있을 거 같습니다. 첨언하자면 여러 도구 경험해보셨으면 아시겠지만 어차피 기본 css 지식과 그걸 활용하는 능력만 뒷받침되면 무엇을 사용하든 크게 어려움 없으실 겁니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!