달력

072009  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
다음과 같은 코드가 있다.

score += 10 + rolls[frameIdx + 1] + rolls[frameIdx + 2];

rolls[frameIdx + 1] + rolls[frameIdx + 2] 부분을 메소드로 뽑아내고자 한다. 이클립스에서 블록 지정을 하고 Alt+Shift+M 단축키를 누르면, 다음과 같은 메시지를 만날 수 있다.

Can only extract a single expression or a set of statements.[각주:1]

두 가지 해결책이 있다. 하나는 굳이 이클립스 명령을 쓰지 않는 방법이다. 다른 방법은 블록 지정 부분을 괄호로 묶고 나서 Extract Method 명령을 수행하는 방법이다.

score += 10 + (rolls[frameIdx + 1] + rolls[frameIdx + 2]);

결코, 빠른 방법은 아니지만 몇 가지 사소한 이점이 있다.
  • 타이핑 절감
  • 오타 방지
  • 자동 줄맞춤
  • inline 리패토링하면 다시 제거 가능



  1. 젠장. 보안 툴 탓에 이미지 파일을 못 올린다. [본문으로]
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
소송 문제나 OS 출시 등으로 화제(?) 중심에 서곤 하는 소프트웨어 회사가 있다. 다양한 사람을 통해 그 회사 이야기를 듣곤 한다. 프로젝트를 하면서 두 차례 정도 만난 일이 있다. 상식 밖의 주장을 하고, 일도 그렇게 했다.

한 번은 기술 검토를 한 바 있었다. 화면에서 버튼을 누르거나 하면 발생하는 이벤트를 처리하는 서버 프로그램을 처리하는 WAS 인스턴스가 두 개라고 했다. 왜 동일 이벤트를 처리하는데 WAS가 두 개냐고 물었더니 기술 책임자가 화면과 비즈니스를 섞으면 유지보수가 어렵다고 한다. 물론 그렇다. 하지만, 이는 개발 시점 혹은 Development View에서 논할 때 이야기다. 배포 측면(deployment view)에서 프로세스를 나눠서 원격 호출을 해야 하는가는 다른 문제다. 기술 책임자는 필요하면 WAS 인스턴스는 하나로 합칠 수 있다고 했다. 그렇지만, RMI를 쓰지 않고, 로컬에서 호출은 불가능하다고 한다.

'RMI가 좋다'라는 식의 앞뒤 없는 주장을 하기에 답답해서, 설계자 권한에 대해 간섭할 생각은 없으니 되는지 안 되는지 사실만 말해달라고 했다. 아무래도 그 업체와 다시 만나 일을 할 듯하다. 이번엔 상식적인 모습을 보여줄까?

우리 회사도 아닌데 이러쿵저러쿵 이야기할 권한 따윈 없지만, 대한민국 최고의 소프트웨어 기업이라 홍보하고 있다면 격에 맞게 행동했으면 좋겠다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회