“침묵은 금이다.” – 불필요한 로그는 코드의 가독성을 해친다.
“과유불급(過猶不及).” – 지나친 최적화는 코드의 유지보수를 어렵게 만든다.
“Keep It Simple, Stupid (KISS).” – 단순함 속에 진리가 있다.
1. 라곰(LAGOM)과 코딩: 적절한 균형 찾기
라곰은 스웨덴식 ‘중용(中庸)’의 개념으로, 필요한 만큼만 사용하고, 과하지도 부족하지도 않은 상태를 유지하는 철학입니다. 이 개념을 코딩에 적용하면 코드의 가독성, 유지보수성, 확장성을 고려한 최적의 균형을 찾는 것이 됩니다.
코드가 너무 짧으면 읽기 어렵고, 너무 길면 관리하기 어렵다.
주석이 너무 적으면 의미를 파악하기 힘들고, 너무 많으면 불필요한 소음이 된다.
최적화가 너무 부족하면 성능이 떨어지고, 너무 많으면 복잡도가 증가한다.
결국, 라곰한 코드란 가독성과 효율성 사이의 완벽한 균형을 찾는 것입니다.
2. 동서양의 중용과 소프트웨어 개발
1) 공자의 중용(中庸)과 코드 스타일
“군자는 중용을 지키고, 소인은 중용을 알지 못한다.”
좋은 개발자는 극단을 피하고 유지보수하기 쉬운 코드를 작성합니다.
- 너무 복잡한 알고리즘을 사용하지 말 것.
- 너무 단순화해서 코드의 의도를 흐리지 말 것.
- 적절한 추상화(Abstraction)를 유지할 것.
💡 극단적으로 길거나 짧은 함수는 유지보수가 어렵다. 한 함수는 한 가지 역할만 수행하도록 한다.
# 과유불급: 너무 복잡한 코드
def process_data(data):
return [x.strip().lower().replace(" ", "_") for x in data if x]
# 라곰한 코드
def normalize_text(text):
"""텍스트를 정규화한다."""
return text.strip().lower().replace(" ", "_")
def process_data(data):
"""데이터 리스트를 정규화한다."""
return [normalize_text(x) for x in data if x]
2) 불교의 중도(中道)와 코드 최적화
“두 극단을 피하고, 중도를 따르라.”
최적화는 중요하지만, 지나친 최적화는 코드의 가독성을 해칠 수 있습니다.
- 필요한 만큼만 최적화하라.
- 너무 많은 캐싱과 미세 최적화는 코드 유지보수를 어렵게 만든다.
💡 조기 최적화는 악이다 (Premature Optimization is the Root of All Evil).
# 과유불급: 불필요한 최적화
def factorial(n, cache={}):
if n in cache:
return cache[n]
if n == 0:
return 1
cache[n] = n * factorial(n - 1, cache)
return cache[n]
# 라곰한 코드
from functools import lru_cache
@lru_cache(maxsize=128)
def factorial(n):
"""팩토리얼을 계산하는 적절한 최적화 코드."""
return 1 if n == 0 else n * factorial(n - 1)
3) 성경의 중용과 협업
“너를 가난하게도, 부하게도 마옵시고 오직 필요한 양식으로 나를 먹이소서.” – 잠언 30:8
- 팀원에게 너무 많은 책임을 부여하지 말고, 너무 적게 부여하지도 말라.
- 코드 리뷰에서는 과도한 비판보다 생산적인 피드백을 제공하라.
- 코딩 스타일 가이드라인을 따르되, 지나친 엄격함은 피하라.
💡 Pull Request의 크기는 적당해야 한다. 너무 작으면 병목이 되고, 너무 크면 리뷰가 어려워진다.
# 불필요한 잔소리 코드 리뷰
def add_numbers(a,b):
return a+b # 이 부분에서 공백을 더 추가해주세요. 😅
# 라곰한 피드백
def add_numbers(a, b):
"""두 숫자를 더하는 함수"""
return a + b # 코드 스타일 가이드를 따름
3. 라곰한 코드 스타일을 위한 5가지 원칙
1️⃣ 불필요한 로그를 남기지 않는다. (print()
남발 금지)
2️⃣ 필요한 만큼만 주석을 작성한다. (주석은 코드보다 적을 것, 하지만 의미를 명확히 할 것)
3️⃣ 가독성을 위해 적절한 코드 길이를 유지한다. (한 함수는 한 가지 역할만)
4️⃣ 필요 이상의 최적화는 피한다. (성능보다 유지보수성이 중요할 때가 많다)
5️⃣ 협업을 고려한 코드 스타일을 따른다. (팀원과 소통하는 코드를 작성하라)
4. 결론: 라곰한 코딩이 좋은 개발자를 만든다
라곰은 코딩 철학과 완벽하게 맞닿아 있습니다.
- 가독성과 최적화 사이의 균형
- 주석과 코드 자체의 명확성 사이의 균형
- 단순함과 확장성 사이의 균형
“침묵은 금이다.”
쓸데없는 로그와 불필요한 주석, 지나친 최적화를 줄이고
적절한 균형을 유지하는 라곰한 코드를 작성합시다! 🚀