좋은 코드 (Good Code)/좋은 이름 (Good Name)(10)
-
10. 깔끔한 정리가 필요하다.
Directory 간단하게 디렉터리 이야기이다.요즘 IDE는 검색 기능이 좋아서 이름들을 클릭해주면 어디에 있는 지 알아서 찾아준다.그러나 대부분의 사람들은 그게 어떤 경로에 있고 어디에 속하는 지는 딱히 관심 없고, 문서나 구현 내용을 보기에 바쁘다.그렇기에 날이 갈수록 정리하는 습관이 무뎌지고, 어느 순간 난장판이 된 모습을 본 게 적잖아 있었다. 또 필자는 신입 때 querydsl를 보고 감동받아 직접 소스코드를 일일이 열어보고 공부했던 적이 있었는데,가장 큰 난관은 바로 프로젝트 구조였었다. 여기서 말하는 프로젝트 구조는, 각 디렉터리와 파일들이 역할과 기능에 따라 정리된 형태를 말한다. types 디렉터리를 보자. (다행히? 아직 그대로이다.)처음보면 도통 이해하고자 하는 엄두가 안난다. 우리..
2024.07.03 -
9. 이름은 하나다
Consistency 내가 실무에 있으면서 가장 좋아하고 많이 사용하는 용어는 일관성이다. 물론 일관성에 대한 사전적 정의가 있지만, 개인적으로 어떤 상황과 장소에 있든 지 똑같은 것이라고 정의한다. 예를 들어 물을 생각해보자. 일반적으로 물은 Water이다. 그러나 본인이 화학자라면 H2O라고도 부를 수 있다. 여기서 일관성을 찾자면, 당신이 누구든 간에 그냥 water라는 이름으로 통일하라는 말이 아니라 본인이 이름을 한 번 정했으면 죽을 때까지 그 이름으로 부르라는 이야기이다. 경험적으로 대다수의 코드는 정해진 범위 안에서 이름에 대한 일관성을 너무 잘 지킨다. 그러나 조금만 벗어나거나, 다른 서비스를 개발할 때는 다소 깨진다. 똑같은 의미임에도 다른 이름을 쓰거나, 다른 의미임에도 똑같은 이름을 ..
2024.04.10 -
8. 이름은 구조지향적이다.
Easy Naming 이번 글은 조금 어려운 이야기를 하려고 한다. 내용 뿐만 아니라 마음도 살짝 어렵다. 이 글을 곡해하는 것보다 더 난감한 일이 없기 때문이다. 좋은 프로그래밍 책들을 보면 코드를 역할 또는 모듈 단위로 코드를 분리하라고 한다. 나는 이를 쉽게 생각해서 같은 장소에 있는 코드는 같은 세상에 있다고 해석한다. 즉, 같은 장소에 있는 코드가 갑자기 저 세상 코드가 되면 안되는 것이다. 이때 세상을 먼저 정의하면 이름 짓기가 하늘의 별따기 처럼 쉬워진다. 이름 읽기도 누워서 떡먹기 처럼 바뀐다. 그러나 내가 경계하는 건, 잘못된 세상을 만드는 것이다. Our World 예를 들어 상품 원화 가격을 달러로 변환하는 코드를 개발한다고 하자. fun convertWonToDollar(won: i..
2024.04.05 -
7. 이름은 바뀌지 않는다.
Immutable 이름을 부르는 건 상황에 따라 다르다. 예를 들어 호칭을 생각해보자. 본인의 이름은 OOO 세 글자이다. 하지만, 어머니한테는 아들로 조카들에게는 삼촌으로 학교에서는 학생으로 불린다. 이러한 호칭으로 불린다는 건, 상대방이 본인의 존재 의미를 너무나 잘 알고 있다는 것이다. 따라서 본인이 만든 이름에서도 이런 호칭을 사용할 수 있다. 문제는 이게 제 3자에게 약이 될 수도, 독이 될 수도 있는 양날의 검이라는 것이다. Poison of Alias 먼저 호칭이 독이 되는 경우를 소개하겠다. 누구든지 먹으면 죽는 것이다. 1. 이름을 본인 입맛에 맞추기 class ChromeDriver: ... class Chrome: ... web_view_driver = ChromeDriver() we..
2024.03.16 -
6. 쓰다가 마는 건 용납하지 못한다
Shorthand 이 글은 솔직히 시작부터 신난다. 그 이유 많 사람 해 ㅋ 아. 읽었는가. 조금 짜증나지만 뭘 말하는 지 대략 알 것 같다. 사실 사람들에게 이런 기분을 느끼게 해주는 걸 즐기는 타입은 아니다. 내가 겪은 고통을 돌려줄 때 조금 기쁜 타입이다. 내가 손가락만 빨고 있을 시절에는 글자 하나 하나가 비용을 차지하기 때문에, 이렇게 극단적으로 글자 길이를 줄이려는 노력을 했었다고 한다. 솔직히 공감과 이해가 하나도 안된다. 조금 공감해보자면 - 지금은 이렇게 글자 길이를 줄이는 시대는 이미 멀리 지났다. 솔직해지자면 - 글자 크기 줄여가며 저장 용량을 줄이는 것보다 글자 자체를 누구나 쉽게 이해하고 표현하여 업무 시간을 효율적으로 쓰는 것이 몇 백 배 낫다. Initials of word 이..
2024.03.03 -
5. 이름을 만들어주자
No Name 시작하기에 앞서 의미가 있는 건 모두 이름을 가진다. 따라서 적어도 코드 세계에서는 이름을 못 만드는 건 없다. 모든 코드는 의미를 가지고 있기 때문이다. 이제는 코드에 이름이 없는 걸 발견하게 되면, 이유를 알려고도 하지 않는다. 그래, 본인은 나름의 변명과 근거를 들어 설명을 하겠지만, 어쨌든 그걸 말하는 본인도 결국 의미를 말하기 때문에 모순이다. 무슨 이야기냐고? 상수 이야기이다. Contant 나는 상수란, 1) 이름이 없고 2) 변경하는게 하늘의 별따기인 값이라고 정의한다. 코드를 읽다보면 이런 상수가 심심치 않게 등장한다. bagPrice = 1000 if (bagPrice > 2000) { print("bag price over a budjet") } 가방 가격이 2000보다..
2024.02.25