Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

함수의 return 위치 컨벤션: 조건 발생 시점 vs 마지막에 하나만#284

hyeonhb started this conversation inA vs B
Discussion options

❓ 질문

작성한 함수들을 뒤돌아보면 크게 2가지 모습을 띠고 있기에, 고민이 시작되었습니다.

어떤 기준으로 사용이 나뉘는 걸까, 개발자가 그걸 고민하기 전에 컨벤션을 정해서 고민을 덜어주는 게 좋지 않을까?
무엇보다 함수 내부가 변경되면return 사용법도 같이 바꿔줘야 하는 상황도 있을 텐데...


1️⃣ 조건마다 바로 return

functionexample(){if(condition)returntrue;elsereturnfalse;}

장점

  • 코드가 간결하고 읽기 쉬움
  • 불필요한 변수 선언 없이 **선언적(declarative)**으로 읽힘
  • 복잡한 조건문에서guard clause 패턴을 적용하기 용이
  • 중첩 if문을 피하고 조기 탈출 가능

단점

  • return point가 여러 곳에 생기므로,복잡한 함수에서는 흐름 추적이 어려울 수 있음
  • 공통 처리 필요 시, 각 return 위치에서 중복 코드 발생 가능성 있음

2️⃣ 마지막에 return

functionexample(){letresult=false;if(condition)result=true;elseresult=false;returnresult;}

장점

  • 함수 흐름이 한눈에 보임 →exit point가 명확
  • 디버깅/로깅/clean-up 처리를 return 전에 공통으로 넣기 쉬움

단점

  • 간단한 경우에는 불필요한 변수 관리 발생 → 코드가 장황해질 수 있음
  • mutable state (예:result 변수)를 굳이 선언해야 함

각자 가지고 있는 장점이 뚜렷하고 케이스가 대비되기 때문에 '둘 중 어떤 방법을 사용해야 한다' 이전에 '상황에 따라 둘 다 사용하면 된다'는 담론 또한 가능합니다.

만약 둘 다 사용되는 방향으로 간다면함수가 간단할 땐 1안,복잡하거나 clean-up 처리가 필요할 땐 2안을 선택하도록 선택 가이드를 잡아두게 될 것 같습니다.

Clean code 관점에서 함수의 return문 위치는?
조건 발생 시점
95%
마지막에 하나만
4%

24 votes

You must be logged in to vote

Replies: 0 comments

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Category
A vs B
Labels
None yet
1 participant
@hyeonhb

[8]ページ先頭

©2009-2025 Movatter.jp