리그오브레전드라는 게임이 있습니다.
리그오브레전드는 100개 넘는 챔피언들 중 1개를 픽하여 5:5 으로 소환사의 협곡에서 치열하게 싸우는 그런 게임입니다.
소환사챔피언이라고 불리우는 챔피언들이 공통적으로 사용할 수 있는 스킬이 있습니다.
그 스킬을 보통 스펠이라고 부릅니다.
보통 이 스팰은 D키와 F키에 할당하여 사용하게 됩니다.
그 스킬중에 모든 소환사들 99프로가 다 쓰는 스킬이 있습니다.
점멸스킬입니다.
점멸 스킬은 순간적으로 순간이동을 하는 스킬입니다.
딱 한번 스킬을 시전할 수 있으며 300초간의 쿨타임을 가지게 됩니다.
이 점멸 스킬을 잘써서 상대를 죽이기도하고, 본인이 죽을 뻔한 위기를 피하기도 합니다.
이 점멸스킬을 보통 D나 F키에 할당하여 사용하게 됩니다.
그래서 나타나게된 리그오브레전드의 논란...
D점멸이냐 F점멸이냐 ( https://www.insight.co.kr/news/286619 )
롤에서는 이 문제를 서로간의 취향차이라고 보고 있습니다. (다만 f점멸이 승율이 약간 더 높은게 함정)
이와 거의 비슷하지만 그렇지 않은 것이 코딩에도 한 가지 있습니다.
바로 코딩 컨벤션중에 아래와 같은 항목입니다.
1.
if ($foo == 'bar') {
}
2.
if ($foo == 'bar')
{
}
위의 숫자를 가르켜 1번과 2번으로 칭하도록 하겠습니다.
1번과 2번은 보통 롤에서 F점멸이냐 D점멸이냐 이야기 나오는 것 처럼 서로간의 취향차이인 부분이 있지만, 전 그렇지 않은 부분도 있다고 생각합니다.
현업에서 실제로 종사하고 제가 생각하기에 훌륭한 프로그래머라고 생각하거나 존경하는 프로그래머들은 대부분 2번의 방식을 고수하고 사용하고 있습니다.
왜 그런가 여러가지 생각을 해봤는데, 일반적으로 우리의 눈은 대칭을 정말 잘 찾습니다.
닫혀진 항목이 어디에서 열려있는지 한눈에 대칭의 구조로 찾기가 쉽습니다.
물론 대부분의 IDE에서는 갈호들을 찾아주기도 합니다.
다만 바로 if의 i의 바로 아래에 있는곳에 열어주게되면 닫히는 항목도 똑같은 위치에서 닫히게 됩니다.
https://github.com/rhymix/rhymix/blob/master/modules/member/member.controller.php#L75
라이믹스에서 if가 복잡하게 읽혀져 있는 항목입니다.
해당 링크의 코드들을 보면 아래 끝나는 } 닫히는 중괄호를 찾게되면 처음 시작하는 부분이 같은 포지션의 위에서 똑같이 열려 있기 때문에 어느 if문의 중갈호가 시작되는지 파악하기가 일반적으로 더 쉽습니다.
이를 만약 1번 방식으로 하게되면 다음과 같습니다.
실제로 17번째줄에 닫힌 중갈호를 찾으면 7번째줄에 시작점 끝에서 찾아야 하므로 순서가 뒤죽박죽이고 코드들이 오밀조밀 라인수의 합쳐서 보여지게 됩니다.
2번 방식으로 하면 실제로 보여지는 코드이 분리되어 확실하게 구분되기에 if문의 시작점이라던지 변수가 어디에 잘 선언되어있는지 시각적으로 나뉘어서 확실하게 보기가 편해집니다.
보통 1번 진영을 쓰는 사람들이 많이 말씀하시는 것 중 하나가 코드들이 오밀조밀 모이게 되므로 모니터속에 한눈에 보이는 코드들이 많다고 이야기 합니다.
하지만, 지금은 옛날이 아니지요.
옛날에야 800x600, 640x480 과 같은 아주 낮은 모니터에서 코딩을 하였기 때문에 코드들을 한눈에 보기가 어려웠지만, 현재는 720p이상급이며 모니터에서 보여지는 라인들의 수가 예전보다 훨신 많아진 상황이기에 한눈에 많이 보인다는 이야기가 옛날이야기가 되는거죠.
요즘은 2번처럼 해도 많이 보여지고, 확실하게 코드들을 나뉘어서 보여지는 것이 오히려 더 좋은 세상이 왔습니다.
라이믹스팀은 2번방식을 고집하고 있습니다.
XE팀에서도 2번방식을 고집하였지만, 이번에 XE3을 넘어가시면서 PSR-2 https://www.php-fig.org/psr/psr-2/ 코딩스타일을 넘어갔습니다.
PSR-2 코딩스타일은 1번 방식을 선호합니다.
2번에 익숙했던 개발자분들이 지금은 좀 불편하다고 생각하시지 않을까 생각이 들긴하네요.ㅎ
여러분들은 1번인가요 2번인가요?
회사에서 코딩스탠다드로 1번을 사용할 수 밖에 없는 상황이 아닌 개인프로젝트나 좀 더 선호하시는 방향이 1번이시라면 혹시 다른 이유가 있는지, 이 글을 보고 2번으로 한번 해보실 의향이 있으신지 궁금합니다.
의견이 많이 오가면 좋을 것 같네요 :)
메리크리스마스!