현재 버전

제 개인적인 생각을 얘기하자면

1. 변수명에 return 이런건 별로 안좋다고 생각합니다. 차라리 result가 나아 보이네요, 아니면 해당 데이터를 표현할수 있는 단어를 선택하는게 좋다고 봅니다.(searchData.... 코드만 봐서는 데이터가 뭔지 유추가 안되서 예를 못들겠네요.)

s, str, string, 이런것도 절절하게 데이터를 표현할수 있는 단어를 선택했다면 굳이 적을 이유가 없다고 봅니다. 대신에 해당 데이터의 특징이 문자열임을 나타내야 할 때, 즉 대개 같은 지역 내에서 데이터는 같지만 converting을 이유로 Reference타입의 객체와 String 객체로 표현이 되어 서로의 구분용도로 str등을 명시하는거라면 괜찮다고 생각합니다. 


2. if문 안에 들어가는 내용에 대해 보통 ! 을 쓰지 말라고 합니다. 하나로 통일 하자는 의미도 있고 가독성이 떨어지기 때문입니다. 아래구문만 보더라도 왼쪽 보다 오른쪽이 많이 헷갈립니다.

if(String.IsNullOrEmpty(requestURL))  -> if(!String.IsNullOrEmpty(requestURL)) 

다만 if else구문이 아닌 if문으로 끝나면 되는 상황에서의 !은 쓰는게 맞습니다. 안쓰면 if로 끝나는게 if else로 써야 하니까요. 

오해하지 말아야 하는게

 if(String.IsNullOrEmpty(requestURL)) if(String.IsNotNullOrEmpty(requestURL))

이 둘중에 오른쪽걸 쓰지말라는 것이 아닙니다. 저렇게 캡슐화 되어 있는 메소드의 경우 어떤것을 쓰던 무방합니다. 단지 !연산자를 보이지 않게 해야한다는거죠


그리고 이건 취향의 문제인데 저정도의 코드라면 저 같은 경우는 3항 연산자를 더 좋아합니다. 

string requestURL = GetConfig("HRSYNC_WS_URL");

string result = String.IsNullOrEmpty(requestURL) ? "FAILED|호출이 필요한 URL 정보가 존재하지 않습니다" : getJson(requestURL, parameters, pSearchKey);

return result;

저기서 result변수에 담지않고 바로 return하기도 하죠. 이방식을 선호하는 이유는 result의 초기화 데이터에 대해서 고민할 필요가 없기 때문입니다. 작성하신 코드를 보면 result를 초기화 하려고 Empty를 쓰셨는데, 이것은 사용자가 의도한 바와 다를수 있음을 내포하고 있는거죠 

코드를 보면 return은 getJson(), 하고 "FAIL ~~~" 이두가지 상황만은 의도하려고 있는데, 코드를 봤을때는 return은 Empty상황도 잠재적으로 내포하고 있기 때문입니다. 물론 해당 코드는 몇번을 돌려도, 2가지 상황만 나오겠죠, 하지만 코드를 대충 봤을때 3가지 상황을 가졍하고 코드를 찬찬히 읽어봐야 2가지 상황이란걸 좁힐수 있다는 겁니다. 

이러한 측면에서 result값을 초기에 Empty로 하는것을 옳지 않을수 있습니다. 차라리 "FAIL~~~ "로 초기화 하는것이 나을테죠. 그러면 if else구문은 if문 단독으로 바꾸는 것이 더 효율적인데(다시 이미 초기화 된 항목을 다시 초기화 할 필요는 없으니까요) 하지만 이건 또 가독성이 떨어지게 됩니다. 

그러한 연유로 저러한 상황에서 3항연산자를 많이 쓰려고 하는데 이건 취향 문제이니 이것저것 고민을 잘 해보세요









수정 이력

2017-11-16 11:17:11 에 아래 내용에서 변경 됨 #1

제 개인적인 생각을 얘기하자면

1. 변수명에 return 이런건 별로 안좋다고 생각합니다. 차라리 result가 나아 보이네요, 아니면 해당 데이터를 표현할수 있는 단어를 선택하는게 좋다고 봅니다.(searchData.... 코드만 봐서는 데이터가 뭔지 유추가 안되서 예를 못들겠네요.)

s, str, string, 이런것도 절절하게 데이터를 표현할수 있는 단어를 선택했다면 굳이 적을 이유가 없다고 봅니다. 대신에 해당 데이터의 특징이 문자열임을 나타내야 할때 대개 같은 지역 내에서 데이터는 같지만 converting을 이유로 Reference타입의 객체와 String 객체로 표현이 되어 서로의 구분용도로 str등을 명시하는거라면 괜찮다고 생각합니다. 


2. if문 안에 들어가는 내용에 대해 보통 ! 을 쓰지 말라고 합니다. 하나로 통일 하자는 의미도 있고 가독성이 떨어지기 때문입니다. 아래구문만 보더라도 왼쪽 보다 오른쪽이 많이 헷갈립니다.

if(String.IsNullOrEmpty(requestURL))  -> if(!String.IsNullOrEmpty(requestURL)) 

다만 if else구문이 아닌 if문으로 끝나면 되는 상황에서의 !은 쓰는게 맞습니다. 안쓰면 if로 끝나는게 if else로 써야 하니까요. 

오해하지 말아야 하는게

 if(String.IsNullOrEmpty(requestURL)) if(String.IsNotNullOrEmpty(requestURL))

이 둘중에 오른쪽걸 쓰지말라는 것이 아닙니다. 저렇게 캡슐화 되어 있는 메소드의 경우 어떤것을 쓰던 무방합니다. 단지 !연산자를 보이지 않게 해야한다는거죠


그리고 이건 취향의 문제인데 저정도의 코드라면 저 같은 경우는 3항 연산자를 더 좋아합니다. 

string requestURL = GetConfig("HRSYNC_WS_URL");

string result = String.IsNullOrEmpty(requestURL) ? "FAILED|호출이 필요한 URL 정보가 존재하지 않습니다" : getJson(requestURL, parameters, pSearchKey);

return result;

저기서 result변수에 담지않고 바로 return하기도 하죠. 이방식을 선호하는 이유는 result의 초기화 데이터에 대해서 고민할 필요가 없기 때문입니다. 작성하신 코드를 보면 result를 초기화 하려고 Empty를 쓰셨는데, 이것은 사용자가 의도한 바와 다를수 있음을 내포하고 있는거죠 

코드를 보면 return은 getJson(), 하고 "FAIL ~~~" 이두가지 상황만은 의도하려고 있는데, 코드를 봤을때는 return은 Empty상황도 잠재적으로 내포하고 있기 때문입니다. 물론 해당 코드는 몇번을 돌려도, 2가지 상황만 나오겠죠, 하지만 코드를 대충 봤을때 3가지 상황을 가졍하고 코드를 찬찬히 읽어봐야 2가지 상황이란걸 좁힐수 있다는 겁니다. 

이러한 측면에서 result값을 초기에 Empty로 하는것을 옳지 않을수 있습니다. 차라리 "FAIL~~~ "로 초기화 하는것이 나을테죠. 그러면 if else구문은 if문 단독으로 바꾸는 것이 더 효율적인데(다시 이미 초기화 된 항목을 다시 초기화 할 필요는 없으니까요) 하지만 이건 또 가독성이 떨어지게 됩니다. 

그러한 연유로 저러한 상황에서 3항연산자를 많이 쓰려고 하는데 이건 취향 문제이니 이것저것 고민을 잘 해보세요