2011년 2월 6일 일요일

A/B는 뭘까?

A/B는 무슨 뜻일까?

A and B일까?
A or B일까?
A와 B가 같다는 뜻일까?
B가 A를 대체할 수 있다는 뜻일까?

스펙(SRS)를 적다보면 의외로 정확하게 적는 습관이 없다는 것을 알게 되다. 하지만 이러한 모호함은 소프트웨어를 개발하는데 큰 방해가 되고 비싼 댓가를 치를 수도 있다.

적는 사람은 당연하다고 적은 것들이 이것을 읽는 사람은 헷갈릴 수 있습니다. 따라서 괜히 몇바이트 절약하기 위해서 애매한 축약을 할 필요가 없다.

OS가 맞을까? O/S가 맞을까?
SW가 맞을까? S/W가 맞을까?
NW가 맞을까? N/W가 맞을까?
"전후"를 써야하나? "전/후"를 써야 하나?
rw와 r/w의 차이를 구분할 수 있나?

MS와 M/S의 차이는? 이것은 Market share일까? Microsoft일까?

이것을 가지고 고민할 필요는 없다. 일단 애매할 수 있다면 풀어쓰는 것이 좋다. 
정답이 있다고 하더라도 누군가가 헷갈려하는 사람이 있다면 그 자체가 문제이다.

그럼 MM과 M/M 중 어떤 것이 맞을까? (Man-Month의 단위로 인력 투입량을 뜻함)
이는 Man x Month를 뜻하는 것으로 MM이 맞다. 하지만 M/M을 쓰는 사람들이 의외로 많다. Man x Month와 Man/Month는 완전히 다른 단위이므로 앞으로 틀린 단위는 사용하지 않는 것이 좋겠다.

스펙문서(SRS)뿐만 아니라 소프트웨어 개발자라면 문서를 작성할 때 항상 정확하고 읽는 사람들이 헷갈리지 않다록 작성하는 습관을 들여야 한다.

댓글 9개:

  1. 참고로 man-month는 측정 단위를 표현하는 명사입니다. (Unit of measure)
    man x month와는 좀 다른 개념입니다.
    12 man-months라는 말의 의미는 한 사람이 정해진 working time (month를 몇 man-days로 정하는가에 따라 기준이 다름) 동안 전혀 방해 받지 않고 12개월의 시간을 계속 지속적으로 작업하는 분량의 업무(work)를 표현하는 단위입니다.
    물론, Henry Gantt 같은 사람은 단순히 해당 업무에 투입되는(=할당되는) 인력자원으로 man-hour 수치를 나누는 것으로 해당 업무의 총 소요 시간을 계산하는 방식을 사용하기 했습니다만,
    제 개인적인 의견에는 man-month의 원래 의미에 비추어 보았을 때 MM으로 표기하는 것이 M/M 보다 더 적합하다고 주장하는 것에는 조금 무리가 있다고 생각 됩니다.
    또한, M/M는 km/h 와 유사하게 man per months로 해석할 수 있는 소지도 존재한다고 보여집니다.
    다시 정리하면 MM이나 M/M 둘 다 그리 적합한 약자라고 보여지지는 않습니다.

    답글삭제
  2. 햇갈릴 경우에는 그에 관한 내용을 용어집이라는 문서를 하나 만들어서 관리하거나, 아니면 바로 아래에 용어에 대한 주석을 다는 것이 좋은 것 같더라고요. 아니면 위키의 한 페이지를 만들어서 링크를 거는 것도 좋은 것 같고요.

    사람 머리에서 컴파일이 가능한 프로그램 명세서를 작성해야 하는데, 이게 말만큼 쉽지 않은 것 같습니다.

    답글삭제
  3. 쭉 놓고 보면, 코드나 문서나 작성하는 요령은 비슷한 것 같습니다
    남이 잘 알아보고 이해하기 쉬워야 하는 등..

    경험상 글 (과제 계획서 또는 회의록 등등..) 잘 쓰는 친구가
    코드도 잘 쓰는 것 같습니다 ^_^

    답글삭제
  4. M/M이 다른 단위로 해석될 수 있다는 건 본문에도 이야기가 나와있습니다.
    12 man-months가 한 사람의 12개월 업무 분량일 수 있지만,
    12명의 1개월 업무 분량으로도 해석할 수 있는 걸로 알고 있습니다.
    물론 개인차나 업무차이 때문에 인력투입량을 딱 떨어지도록 내는 건 어렵겠지만
    man-month가 12man-month라고 하면 프로젝트 기간이 4개월이면 3명을 투입하도록 계산하겠지요.
    man-month라는 단위가 기니 딱 보아도 의미상 M/M은 틀린 것에 가까우니 MM으로 쓰는 쪽이 낫다는 뜻으로 쓰신 것 같습니다.

    답글삭제
  5. 안녕하세요. 나그네님
    Man-Month는 MM으로 쓰자는 제안은 많이 있었기에 MM을 주로 쓰고 있지만 여전히 M/M을 쓰는 곳도 있습니다. M/M은 청설모님말과 같이 다른 의미로 오해를 할 수 있으므로 MM을 쓰자는 얘기이고 헷갈릴 수 있으면 MM을 쓴 곳에서 범례로 MM == Man-Month라고 표시를 해주면 될 것 같습니다.
    국제 표준도 아니고 일반적으로 쓰는 용어이므로 맞고 틀리고 이슈는 아니고 헷갈리지 않으면 될 것 같습니다.

    답글삭제
  6. 주의사신님 안녕하세요.
    회사에서 표준 용어집이 있느냐고 물어보는 것만으로도 어느 정도 역량을 평가할 수 있습니다.
    프로그램 명세서를 작성하는 것은 잘못하면 부담만 될 수 있는 것이라서 효율적인 문서를 작성하는 것은 가장 어려우면서도 중요하다고 할 수 있습니다.

    답글삭제
  7. csj님 안녕하세요.
    동감입니다. 코드를 잘 쓰는 것을 좀더 확대해서 개발을 잘한다고 말하고 싶군요.

    답글삭제
  8. 편의를 위해서 약어를 쓰는 것과(물론 익숙하다는 전제하에)
    잘난척하기 위해 약어를 쓰는 것과 비슷한 문제일려나요?

    아무튼 무엇에 대한 축약인지 알수 없는 약어는 보는 사람으로 짜증을 유발해요 ㅠ.ㅠ

    답글삭제