해결된 질문
작성
·
767
1
강의하는 영상보며 항상 배우고 있습니다.
요즘 알고리즘 문제도 공부하면서 항상 고민인 부분인데요.
if-else문에서 else를 써야하는가 입니다.
강의7:16초에서 영한님은 else를 사용하지 않으시더라구요.
그래서 궁금해서 웹에 검색을 하니 camelcase급으로 표준화된 방식이다. 아니다 케이스 바이 케이스다. eslint라는 곳에서는 if 다음에 return이 있으면 else쓰지마라 라고도 하더라구요.
질문 : 현업에서는 else를 지양하는 편인가요?
답변 2
3
안녕하세요. 김재준님, 공식 서포터즈 OMG입니다.
알고리즘의 경우 조건에 따라 분기처리해야 하니 if-else 구조가 많이 발생할 수 도 있을 것 같습니다만,
애플리케이션을 개발하는 개발자 입장에서 조건문이 많고 중첩되어 있다면 프로그램을 읽고 분석하는데에 많은 시간과 구조를 이해하는 데에 에너지를 소모해야합니다.
가령 각 알파벳이 하나의 작업단위 혹은 작은 비즈니스 로직이라 했을 때,
A
B
C
...
H' (if)
H'' (else)
->>>>>>>> H''1 (else 속 if)
->>>>>>>> H''2(else속 else)
...
프로그램의 자연스러운 흐름에서 분기가 포함된 흐름을 이해해야하는 점은 구조를 이해함에 있어 방해요소라 할 수 있습니다.
그래서 클린코드 혹은 기타 좋은 코드를 작성하는 방법을 다루는 책 등에서는 else를 지양하는 내용을 강조해서 설명합니다.
개인적인 경험 기반 억지로 else문을 줄이기 보다는,
중첩된 조건문은 지양하고 [ 하나의 메서드 안에서 if-else구조는 한번만 포함, 두 개 이상 발생하는 경우 메서드로 추출하는 방법이 읽기 좋았습니다. ], if 절에는 정상적인 상황에 대한 조건을 두고 비정상적인 상황을 else절에 두어 자연스럽게 읽기좋은 코드를 작성하는 것을 권장드립니다.
https://brunch.co.kr/@cg4jins/2
아래 두 권의 책도 개인적으로 추천드립니다.
3
안녕하세요.
else 를 쓰고 마는것은 팀의 컨벤션에 따라 다릅니다.
클린코드를 지향하는 팀에서는 분기문을 지우기 위해 if/else , switch 사용을 지양하고
메서드 분리를 통해 가독성을 높이려고 하지만
(관련링크 : https://limdingdong.tistory.com/8) ,
else 를 쓰거나 쓰지않는 표준화된 방식은 없습니다.
좋은 답변 감사드립니다. else를 안 쓰는 표준화방식은 없는거군요,,
강의를 듣다가 코드 리팩토링방법중 else를 제거하는것도 하나의 방법중 하나라는 말을 들었던적이 있는데 그때 당시 이해가 안갔습니다.
스프링바라기님이 알려주신 좋은 링크덕분에 이제서야 이해가 가네요 : )
다시 한번 좋은 답변 감사드립니다.
좋은 답변 감사드립니다. 클린코드라는 영역을 알게되어 너무 기쁘네요.
지금껏 코드를 작성하면서 풀이에만 집중하고 가독성에 집중해야겠다는 생각은 잘 하지 못했던 것 같습니다. OMG님의 설명을 듣고 else를 사용안함으로서 얻는 가독성에 대해 알 수 있어 감사합니다.
알려주신 감사한 책들 보고 클린코드에 대해 공부해보겠습니다. 친절하고 자세한 답변 항상 감사합니다.