코드 네이밍 & 본질적인 의미에 맞는 기능사용에 대한 고찰

조성현·2022년 11월 9일
0

1. 함수, 메서드, 변수 네이밍에 대한 공부

  • 네이밍이 중요한 이유
  • 좋은 네이밍이란 어떤 것인가에 대한 고찰

2. 함수, 메서드를 비롯한 '기능의 올바른 사용' 에 대한 고찰

  • 네이밍의 본질적인 의미에 맞는 방식으로 사용해야 함을 깨닫는 과정에 대한 기록

1) python의 set() 함수에는 왜 순서가 없을까

  • 슬랙에 올라온 이 질문으로부터 '올바른 사용이란 무엇일까'에 대한 탐구를 시작했습니다.

  • 스택오버플로우의 질문과 답변을 살펴보며,
    "집합의 주요 용도에 맞는 활용을 위해 여러 케이스에 모두 최적화 된 방향으로 설계 된 것이다.",
    "집합의 수학적의미와 상충하지 않도록 순서가 없이 설계 된 것이다." 라는 답을 얻으며 어렴풋이 올바른 사용에 대한 감을 익힐 수 있었습니다.

2) 필터링의 올바른 사용에 대한 배움

1.  for alphabet in string:
        if  alphabet.isalpha():
        	alphabet_occurrence_array[ord(alphabet)-ord('a')] += 1
    max_num = find_max_num(alphabet_occurrence_array)
    
 2. for alphabet in string:
        if not alphabet.isalpha():
            continue
        alphabet_occurrence_array[ord(alphabet)-ord('a')] += 1
    max_num = find_max_num(alphabet_occurrence_array)
  • 알고리즘을 푸는 과정에서 필터링을 한다라는 인지 없이 1번과 같은 코드를 작성했고, 원하는 대로 작동하여 무던히 넘어갔었습니다.

  • 알고리즘에 대한 특강을 듣던 중 왜 if not을 사용하는지에 대한 의문이 들었고, 튜터님께 '필터링의 본질적인 목적에 대해 생각해보라'라는 답변을 들은 뒤 스스로 생각하는 과정에서 '목적에 맞는 사용'에 대해서도 배움을 얻을 수 있었습니다.

특강 진행과정에서 동기들도 if not의 사용에 대한 의문들을 많이 가지고 있던 것을 기억하고, 슬랙에 글을 작성하여 깨달은 점에 대해 공유했습니다.

  • 아직 갈 길이 멀지만, 꼬리에 꼬리를 물고 계속해서 좋은 코드를 작성하기 위한 노력을 한다면, 언젠가는 클린 코드를 어떻게 작성해야 하는지 알려줄 수 있는 사람이 될 것이라 생각합니다.

  • 작동한다고 그냥 넘기는 것이 아니라, 셀프 코드리뷰와 리팩토링을 진행하며 클린 코드를 연습해나가야겠다는 다짐을 해봅니다.


참고자료.

1-1. 좋은 코드를 위한 자바 메서드 네이밍 - 우테코 2기 티거님의 글(링크)

1-2. 좋은 코드를 위한 자바 변수명 네이빙 - 우테코 2기 오렌지님의 글(링크)

2-1. stackoverflow의 Q.(Why don't Python sets preserve insertion order?)

profile
맛있는 음식과 여행을 좋아하는 당당한 뚱땡이

0개의 댓글