So tired

한 줄짜리 if 문, for 문 그리고 함수 본문

Programming/Javascript

한 줄짜리 if 문, for 문 그리고 함수

기짜낭 2020. 4. 22. 03:34
728x90

조건문을 작성할 때마다 한 줄로 작성할 수 있을 것 같으면 중괄호를 표시할지 혹은 삼항 연산자를 사용할지 고민하곤 한다.

그래서 이에 대해 커뮤니티에서 얻은 답변 내용과 내 생각을 적어두려고 한다.

 

결론부터 얘기를 하자면, 정해진 규칙은 없으며 자신의 코드 스타일에 따라서 작성하면 된다고 한다.

하지만 작성 방법에 따라서 오류나 문제가 있을 수는 있다는 것을 기억하자.


스타일이 갈리는 이유를 꼽자면 주로 다음과 같았다.

 

1. 코드의 간결성 ("나는 짧은 코드가 좋아!")

2. 안정성 ("나중에 코드가 추가되거나 했을 때 오류 생기면 어캄?")

3. 가독성 ("보기 편한 게 가장 좋더라")

 

솔직히 3가지 다 포기하기 어려운 조건이긴 하다.

하지만 개인적인 생각으로는 2번이 가장 중요하다고 본다.

 

내가 짠 코드로 서비스를 하고 있는데 트랜스 파일러나 버전 컨트롤을 했을 때 오류가 났다? 상상만 해도 끔찍하다.

하지만 트랜스 파일러 같은 것을 필요로 하지 않는다면 얘기가 달라질 수도 있을 것 같다.


한 줄짜리 if문

if 문은 작성 방법이 다양하다.

그만큼 사람에 따라서 다양한 스타일로 작성된다.

// 1. 일반적인 표기법
if (true) {
	console.log("hi");
} else {
	console.log("bye");
}

// 2. 중괄호를 생략한 표기법 (들여쓰기x)
if (true) console.log("hi");
else console.log("bye");
    
// 3. 중괄호를 생략한 표기법 (들여쓰기o)
if (true) 
	console.log("hi");
else
	console.log("bye");


// 4. 삼항연산자 표기법
(true) ? console.log("hi") : console.log("bye");

 

나는 4번과 주로 다음과 같은 스타일을 사용한다.

if (true) { console.log("hi"); }
else { console.log("bye"); }

 

하지만 위와 같이 작성하게 되면 조건이 길어질 시, 코드가 한눈에 들어오지 않고 잘릴 때가 있다.

그래서 1번을 섞어 쓰기도 한다.

 

내가 다음과 같이 작성하는 이유는 혹시 모를 문제를 방지하기 위해 중괄호를 꼭 붙여주어야 한다고 생각하기 때문이다.


한 줄짜리 for문

나는 반복문도 if문과 비슷하게 중괄호를 붙여주는 편이다.

// 1. 일반적인 표기법
for(let i = 0; i < n; i++) {
	console.log("hi");
}

// 2. 중괄호를 생략한 표기법 (들여쓰기x)
for(let i = 0; i < n; i++) console.log("hi");

// 3. 중괄호를 생략한 표기법 (들여쓰기o)
for(let i = 0; i < n; i++)
	console.log("hi");

한 줄짜리 함수

한 줄짜리 함수는 위의 얘기와 핀트가 조금 다르다.

이것은 함수를 만들어 코드를 보관할 것인가에 대한 얘기이기 때문이다.

 

사실 한 줄짜리 코드는 그냥 작성해버리면 되니까 함수에 보관한다는 것은 조금 웃긴 얘기다.

하지만 나는 한 줄짜리 함수를 사용하며, 사용할 시에는 다음과 같은 조건을 따져본다.

 

1. 따로 객체로 보관할 만큼 코드가 여러 함수에서 사용되는가.

2. 다른 코드들에 비해 독립적인 기능을 하는가.

 

간단한 예시를 들자면,

초기화 같은 기능을 가진 코드는 초기화라는 역할이 뚜렷하며 여러 이벤트에 의해 일어날 가능성이 있다고 판단이 되기 때문에 한 줄짜리 코드일 지라도 함수에 담아 사용하는 편이다.


참고하면 좋은 글

 

OKKY | 한줄로 작성 가능한 코딩 어떻게 하시나요?

 PHP 개발 했을땐 코드이그나이터가 권장하는 방식이 allman 이라 통일해서 썼었는데  최근 java 나 javascript 할때는 각자 조금씩 차이가 있더라구요. K R 코딩과 1TBS 중에 어떤걸 선호하시는 편인가요. 다른사람들은 몇줄 줄여서 짤수있음에도 항상 중괄호를 붙이는거보고 좀 의아하기도 했어요. // K R if(cond

okky.kr

 

 

무조건 if for 문에 {}를 써야하는가......

http://www.gamecodi.com/board/zboard.php?id=GAMECODI_Anonymous&page=1&sn1=&divpage=1&...

1st.gamecodi.com

 

 

 

한줄짜리 코드에도 반드시 괄호를 써야한다.

The reason that you should use curly braces for one line statement.

blog.seulgi.kim

 

Comments