코드의 변경이력을 기록하는 방법에 대해

azurenote의 이미지

회사의 프로세스에서는 메서드마다 주석에 변경일자와 변경자의 이름을 기록할 것을 지시합니다. 그런데 최근의 리팩토링 관련 서적들은 SCM에 기록할 것을 권합니다.
하지만 단순하게 SVN을 사용하는 경험상 커밋로그만 가지고 특정 메서드의 모든 변경이력을 추적하는 건 불가능해 보입니다.

회사에서는 SVN을 쓰고, 저도 SVN밖에 써본적이 없습니다. 제대로 써본건 아니고 그냥 단순 commit revert update 정도만 씁니다.

주석에 변경자와 변경일자를 기록하는 게 의미가 있을까요?

또 SCM에 기록을 한다면 어떻게 해야 할까요?

조언이나 비슷한 논의가 있었던 스레드의 주소를 주시면 감사하겠습니다.

익명 사용자의 이미지

메쏘드 마다 변경일자와 변경자만 기록한다면

그냥 자동화해서 db나 파일에 저장하고

웹으로 조회가능하도록 하면 될것 같은데요.

jick의 이미지

메서드마다 주석에 변경일자를 기록하라고 하면... 아마도 절~대 시키는 대로 다 하는지 확인 못할 거구요, 결국 빈 구멍이 숭숭 생겨서 있으나 마나하게 된다는 데 500원 겁니다.

차라리 SCM 커밋 메시지에 "이 커밋은 무엇무엇 때문에 뭘 고친 커밋임"이라고 기록하게 하는 게 훨씬 강제하기 쉽습니다. (물론 그것도 쉽게 되지는 않겠습니다만... 메서드 단위 주석보다는 낫겠죠.)

변경 역추적은 svn blame이 킹왕짱입니다. (빈틈이 없기 때문에 아마 사람들에게 뭘 열심히 기록하라고 마르고 닳도록 설교하는 것보다 훨씬 편할 겁니다. 원래 커밋하면서 문제 일으키는 사람들이 꼭 로그 제대로 안 남기죠. -_-)

feanor의 이미지

GNU Coding Standards에서는 주석 대신 ChangeLog 파일에 변경 이력을 기록합니다.

http://www.gnu.org/prep/standards/html_node/Change-Logs.html

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.