개발자
안녕하세요, 독학으로 개발을 배워 풀스택으로 스타트업 파트타임 및 개인 프로젝트를 하고 있는 대학생입니다. 프론트엔드는 여전히 명확한 기준이 없고 기술이 계속해서 발전 중이라 개발자마다 기준과 사용하는 프레임워크/라이브러리가 상이한 것으로 알고 있는데요, 큰 가닥으로는 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 지식과 그걸 활용하는 능력만 뒷받침되면 무엇을 사용하든 크게 어려움 없으실 겁니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 03월 01일
현업에서 사용되는 프론트엔드 기술은 다양합니다. 회사, 프로젝트, 팀의 선호도에 따라 달라집니다. 대부분의 경우 React.js, Angular.js, Vue.js 와 같은 자바스크립트 라이브러리 혹은 프레임워크를 주로 사용하는데 이는 동적인 웹 페이지 구성을 가능하게 하기 때문입니다. Atomic CSS 사용에 대해 언급한 것처럼 Tailwind CSS를 많이 사용하는 추세입니다. 이외에도 Less나 Sass 같은 CSS 전처리기를 사용하기도 합니다. 말씀주신대로 Tailwind는 작은 규모의 프로젝트에서 유용하지만, 큰 프로젝트에서는 클래스 관리가 복잡해지며 일관성 유지가 어려울 수 있습니다. 자주 사용하는 유틸리티 클래스만 따로 만들어서 사용하는 방식은 좋아 보입니다. 이 방법의 장점으로는 필요한 스타일링을 빠르고 간편하게 적용할 수 있다는 점이 있습니다. 하지만 반면에 이런 식으로 스타일링을 처리하면 CSS가 HTML과 밀접하게 결합되므로, 유지보수가 어려워질 수 있습니다. 따라서, 장기적인 관점에서는 별도의 CSS 파일에서 스타일을 정의하는 방법이 더 효율적일 수 있습니다. 더불어 JS를 사용하지 않고 프론트엔드 작업을 하는 경우나, 웹사이트가 정적이라면 HTML과 CSS만으로 충분하겠지만, 동적인 기능을 구현하려면 JS나 해당 언어에 대응되는 프레임워크를 사용해야 합니다. 마지막으로, 임의의 방법을 채택한 것이 나쁘다면 모든 개발자들은 삽질을 하지 않을 것입니다. 항상 맞는 답은 없으니까요. 여러 방법들을 시도해보고 그 중에 여러분에게 가장 잘 맞는 것을 찾아가는 과정이 중요합니다. 한 가지 팁으로는 "스타일 규칙" 같은 것들은 일관성 유지를 위해 팀원들과 함께 논의하고 문서화하는 것이 좋습니다. 행운을 빕니다, 계속해서 좋은 질문들로 성장하는 개발자가 되시길 바래요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!