개발자
작은 회사에서 백과 프론트를 전부 조금씩 만지는 주니어 개발자입니다. 백에서 클래스나 메소드명을 짓는건 그나마 괜찮지만 프론트에서 함수명이나 클래스, 아이이디 명을 짓는건 너무 머리아프네요... 선배님들은 뭔가 이름을 짓는 요령이나 패턴같은게 있으신가요??
답변 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
안녕하세요! 네이밍 짓는 것이 어렵습니다. 굉장히 공감되는 부분입니다. 사실 이 영역은 경력에 따라 상당히 좌우되는 부분인 것 같습니다. 다양한 코드를 읽고 리뷰해 본 경험 역시 중요하겠지만요. 언어나 프레임워크마다 권장되는 단어나 네이밍 규칙들이 암묵적으로 또는 공식적으로 존재합니다. 또 그런 부분을 쉽게 익히시려면 지금 내가 고민하는 변수명이나 클래스명이 있을 것 같은 오픈소스 라이브러리를 찾아보시면 좋을 것 같아요! 어느정도 검증된 오픈소스로요! 가장 좋은 방식은 사수분이 있다면 좋겠지요.
삭제된 사용자
2023년 09월 01일
제가 쓴 책은 아니지만(웃음) 개발자의 글쓰기 라는 책에 네이밍에 관한 내용이 아주 잘 작성되어 있으니 참고 해보세요~
네, 이름 짓기는 때때로 어려울 수 있습니다. 아래와 같은 몇 가지 요령과 패턴을 따라 해 보세요: 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 봇의 답변을 평가해 주세요!
안예찬
구직자 프론트엔드 개발자 • 2023년 03월 28일
GPT형님 답변 잘봤습니다.
kevin
디지털그지 • 2023년 04월 19일
이형님 지리넹
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!