개발자

클래스 이름 짓는게 너무 어려워요

2023년 03월 24일조회 3,809

작은 회사에서 백과 프론트를 전부 조금씩 만지는 주니어 개발자입니다. 백에서 클래스나 메소드명을 짓는건 그나마 괜찮지만 프론트에서 함수명이나 클래스, 아이이디 명을 짓는건 너무 머리아프네요... 선배님들은 뭔가 이름을 짓는 요령이나 패턴같은게 있으신가요??

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

답변 14

인기 답변

이국범님의 프로필 사진

ChatGPT한테 물어보세요 예) Q. 서버에 유저 데이터 요청하는 클래스를 만들 건데 클래스 이름을 지어줘 A. 서버에서 유저 데이터를 요청하는 클래스 이름으로 "UserDataFetcher"를 추천합니다. Q. 테이블 상단에 나열할 헤더를 리액트 컴포넌트로 만들 건데 컴포넌트 이름을 지어줘 A. 테이블 상단에 나열할 헤더를 리액트 컴포넌트로 만들기 위한 이름으로 "TableHeaderRow"를 추천합니다.

인기 답변

투안 응 우옌님의 프로필 사진

클래스 이름을 짓는 것은 소프트웨어 개발에서 중요한 부분 중 하나입니다. 클래스 이름이 명확하고 의미 있게 지어지면 코드를 이해하고 유지 관리하기가 훨씬 쉬워집니다. 클래스 이름 짓기를 도와줄 몇 가지 지침을 제시해 드리겠습니다: ✅ 의미를 반영하라: 클래스 이름은 해당 클래스가 무엇을 하는지 나타내야 합니다. 클래스의 책임과 역할을 고려하고 이름을 선택하세요. 예를 들어, "User" 클래스는 사용자 정보를 다루는 클래스임을 나타냅니다. ✅ 간결하고 명확하게: 클래스 이름은 간결하면서도 명확해야 합니다. 긴 이름은 코드 가독성을 떨어뜨릴 수 있습니다. 예를 들어, "UserDataProcessor"보다는 "UserProcessor"가 더 간결하고 명확할 수 있습니다. ✅ Camel 표기법 사용: 일반적으로 클래스 이름은 Camel 표기법을 사용하여 지어집니다. 이는 각 단어의 첫 글자를 대문자로 쓰고 나머지를 소문자로 쓰는 방식입니다. 예를 들어, "UserProfile" 또는 "OrderManager"와 같은 형태입니다. ✅ 명사 사용: 클래스 이름은 주로 명사로 짓습니다. 클래스가 객체나 엔터티를 나타낼 때가 많으므로 명사가 적합한 선택입니다. ✅ 약어 사용 주의: 약어를 사용할 때 주의하세요. 약어는 개발자들 간에 이해되어야 하며, 일반적으로 사용되는 약어만 사용하는 것이 좋습니다. 예를 들어, "HTMLParser"는 "HyperTextMarkupLanguageParser" 대신 "HTML 파서"로 이해될 수 있습니다. ✅ 의미 있는 접두사/접미사 사용: 클래스의 역할이나 유형을 나타내는 접두사 또는 접미사를 사용할 수 있습니다. 예를 들어, "UserController"는 사용자 관리와 관련된 컨트롤러 클래스임을 나타냅니다. ✅ 일관성 유지: 프로젝트 내에서 일관된 클래스 이름 규칙을 유지하세요. 모든 개발자가 일관된 스타일을 따르면 협업이 더 쉬워집니다. ✅ 피해야 할 이름: 일반적인 클래스 이름 중 하나를 사용할 때 주의하세요. "Object", "Class", "System" 등과 같은 이름은 피하는 것이 좋습니다. ✅ 의미 있는 단어 선택: 가능한 한 구체적이고 의미 있는 단어를 선택하세요. "Manager", "Service", "Processor"와 같은 단어는 클래스의 역할을 명확하게 나타낼 수 있습니다. 마지막으로, 클래스 이름을 짓는 것은 연습이 필요한 부분이며, 개발 경험이 쌓이면서 더 나은 클래스 이름을 선택하는 데 도움이 될 것입니다. 코드 리뷰와 동료 개발자의 의견을 듣는 것도 도움이 될 수 있습니다.

인기 답변

김민식님의 프로필 사진

네이밍을 잘 짓는 연습은 좋은 코드를 짜기 위한 노력도 맞지만, 좋지 않은 코드를 짜지 않으려는 노력에 더 가깝다고 생각합니다. 좋은 코드는 팀과 사람마다 방법과 경험이 달라 모두를 만족시킬 수 없기 때문에 정답이 없습니다. 하지만 좋지 못한 코드는 그 모양새가 비슷하기 때문에 좋지 못한 코드를 걸러낼 수 있는 감각을 길러내는 것이 필요합니다. 네이밍 자체에 너무 스트레스 받지 마시고 언어마다 팀마다 사용 중인 가이드라인만 지켜서 작성하더라도 최소한 좋지 않은 코드를 짜고 있지는 않다고 인정하면 어떨까요? 상황에 맞는 단어를 적절하게 쓰고 있는지가 궁금하다면 개발자가 아니더라도 주변 사람들에게 당당하게 피드백을 요구한다면 좀 더 좋겠습니다👍👍

인기 답변

프레드윰님의 프로필 사진

우선 네이밍 지을때는 형식이 카멜케이스, 스네이크 케이스, 파스칼 케이스 이렇게 있는데 구분해서 지으면 되고 저 같은 경우 좀 의미가 있는 네이밍으로 하거든요. 아주 짧게 지으면 뭔지 잊을수있어서 꼭 주석처리하구요~ 개발자 마다 네이밍 짓는 방식이 각자 달라서 대략 예를들면 notice라는 페이지 내부에다가 한다치면 noticeNo 아님 notice_no 이렇게... 의미가 좀 있고 그렇다고 너무 길면 안되고 너무 짧으면 안되고 적당한 사이즈로 지으면 되요. 제일 도움 되는게 2번째 참고 자료 참고해보시면 될것 같아요. 참고 자료 : 1 .https://blog.naver.com/makeflood/222971821662 2. https://jeongkyun-it.tistory.com/154

엘리 선생님님의 프로필 사진

안녕하세요! 네이밍 짓는 것이 어렵습니다. 굉장히 공감되는 부분입니다. 사실 이 영역은 경력에 따라 상당히 좌우되는 부분인 것 같습니다. 다양한 코드를 읽고 리뷰해 본 경험 역시 중요하겠지만요. 언어나 프레임워크마다 권장되는 단어나 네이밍 규칙들이 암묵적으로 또는 공식적으로 존재합니다. 또 그런 부분을 쉽게 익히시려면 지금 내가 고민하는 변수명이나 클래스명이 있을 것 같은 오픈소스 라이브러리를 찾아보시면 좋을 것 같아요! 어느정도 검증된 오픈소스로요! 가장 좋은 방식은 사수분이 있다면 좋겠지요.

이영준님의 프로필 사진

저는 슬랙에 투표 올립니다 어무길어진다면 분리할 수 있을지 고민해본 는 것도 좋을것 같네요

현기님의 프로필 사진

한글에서 초성이 있듯이, 영어에서도 약자만 사용하는 편입니다! 예) koreaname -> kname

이지형님의 프로필 사진

github에 있는 오픈소스 프로젝트들을 참고해보세요

은광님의 프로필 사진

Chat gpt 한텐 변수명 추천해달라고 하고, 골라서 사용해보세요 ㅎㅎ

최경훈님의 프로필 사진

copilot이 다 해줄겁니다

손유승님의 프로필 사진

요즘 IDE들은 자동완성을 잘 지원하기 때문에, 이름을 길게 짓는 것도 좋습니다. 일단 모든 정보를 다 담아 이름을 지어 보고, 점점 줄여 나가 보는 것도 방법입니다.

김대근님의 프로필 사진

요즘에 좋은서비스가 많지만 저는 옛날부터 변수명짓기 라는 서비스 이용해왔습니다 https://www.curioustore.com/#!/util/naming 도움이 되길 바래요~

황대연님의 프로필 사진

제가 쓴 책은 아니지만(웃음) 개발자의 글쓰기 라는 책에 네이밍에 관한 내용이 아주 잘 작성되어 있으니 참고 해보세요~

커리어리 AI 봇님의 프로필 사진

네, 이름 짓기는 때때로 어려울 수 있습니다. 아래와 같은 몇 가지 요령과 패턴을 따라 해 보세요: 1. 일관성 유지: 백엔드와 프론트엔드 모두 같은 명명 규칙을 따르는 것이 좋습니다. 일관성 있는 명명법을 사용하면 코드를 더 쉽게 이해할 수 있습니다. 구체적이고 명확한 이름 사용: 클래스, 함수, 변수 이름은 해당 객체가 수행하는 기능이나 역할을 명확하게 반영해야 합니다. 예를 들어, 버튼을 클릭하여 사용자 정보를 불러오는 함수의 경우 getUserInfoOnClick과 같이 직관적인 이름을 사용하세요. 2. 카멜 케이스(camelCase) 사용: JavaScript와 같은 프론트엔드 언어에서는 카멜 케이스를 주로 사용합니다. 각 단어의 첫 글자를 대문자로 쓰고 나머지를 소문자로 쓰는 방식입니다. 예를 들어, getUserInfo나 fetchDataFromServer와 같이 작성합니다. 이 방식은 코드의 가독성을 높이며 다른 개발자들과 협업하기에도 좋습니다. 3. BEM(Block Element Modifier) 방법론: 프론트엔드에서 CSS 클래스 이름을 지을 때 BEM 방법론을 사용할 수 있습니다. 이 방법론은 구조적으로 클래스 이름을 짓는 방식으로, block, element, modifier의 세 부분으로 구성됩니다. 예를 들어, block__element--modifier와 같이 작성합니다. 이를 통해 클래스의 역할과 구조를 명확하게 나타낼 수 있습니다. 4. 주석 활용: 때로는 이름만으로는 충분한 설명이 어려울 수 있습니다. 이런 경우, 주석을 활용하여 추가 설명을 제공하세요. 주석은 함수나 클래스의 목적, 인수 및 반환 값을 설명하는 데 도움이 됩니다. 하지만 주석의 남용은 오히려 코드 가독성을 저해하므로 적절하게 사용하는 것이 중요합니다. 5. 축약어 사용 최소화: 축약어는 코드를 읽는 사람에게 혼동을 줄 수 있습니다. 가능한 한 축약어를 사용하지 않고, 완전한 단어로 표현하는 것이 좋습니다. 예를 들어 usr 대신 user, cnt 대신 count와 같이 사용하세요. 더 많은 팁과 방법을 알고 싶다면, Chat GPT와 함께하는 자연어 대화에서 더 많은 정보를 얻을 수 있습니다. Chat GPT는 여러분의 질문에 적극적으로 답변해 드릴 것입니다.

커리어리 AI 봇의 답변을 평가해 주세요!

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

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

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

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