안녕하세요~~ 저는 C#, ASP.Net베이스로 개발?? 코딩을 하는 직딩입니다.
다름이 아니라 처음 오시는 신입사원분들이나 제 후배들을 보면서 조언 및 충고를 해주다가 써봅니다.
이건 개발자로 지내기 위해 제일 기본적인 내용들입니다.
1. 프로그램 작성시 항상 주석을 작성하는 습관을 들이자!
- 당연한 얘기지만 의외로 생각보다 많은 학생분들이 주석의 중요성을 잘 모르시더라구요...
보통 학교에서 혼자서 코딩해보고 개발해볼때에는 주석이 필요가 없습니다. 왜냐하면 자기 혼자서 만들기 때문에 자기는 다 내용을 아니까요.
하지만 회사에 취직을 하시면 이야기는 달라집니다. 기본적으로 프로젝트 하나에 최소 3명이상이 투입이 됩니다.
모두 자신이 맡은 부분을 개발하게 되고 분명 자기가 개발할 때 이상이 없던 부분이 개발서버에 올리면 에러가 날 경우도 있습니다.
급하다 보면 다른사람이 작성한 부분을 자신이 고칠 경우도 있고 제가 작성한 부분을 다른분이 고치는 경우도 있습니다.
문제는 기본적으로 코딩은 클래스당 최소 몇백줄에서 많게는 몇천줄입니다. 에러가 나는 부분을 찾기는 쉬우나 이 부분이 어떤 일처리를 하는지를 확실하게 알 수 없으면 앞부분부터 확인해야 합니다. 그러다 보면 시간이 많이 소비가 되기 때문에 보통은 매소드별로 주석처리 및 매소드 내에서 주요 처리부분에도 주석을 달아 주는 습관을 들이시는 것이 좋습니다.
또한 이후에 다른 인원이 가서 유지/보수를 한다고 하더라도 주석이 달려있어야 수정해야 할 부분을 찾기가 한결 쉬워집니다.
2. 변수 및 객체, 매소드는 알아 볼 수 있게 이름을 지어주자!
- 이 부분도 생각보다 중요합니다. 매소드별로 변수가 따로 주어지는 경우가 있습니다. 그런데 A매소드에서 name이라는 변수는 사람 이름을 명시하고고 B라는 매소드에서는 회사이름을 명시한다고 가정할 경우 둘다 name이라고 주면 다른사람이 처음 코드를 볼 경우 헷갈릴 수 있습니다.
그렇기 때문에 A매소드에서는 userName, B매소드에서는 compName 과 같이 명시적으로 이름을 지어주시고 매소드명 역시 CreateUserAccount(), CreateCompAccount()와 같이 명시적으로 이 매소드가 무엇을 하는지 매소드명으로도 대충 짐작할 수 있도록 지어주심이 좋습니다.
또한 ASP.NET의 경우 asp태그의 경우 TreeView, HiddenField, ListBox, Button과 같은 태그의 경우 runat="server"가 붙으면서 cs단에서 작성을 하게 됩니다.
이 때, 저같은경우 TreeView의 ID는 tvw명시적이름, HiddenField는 hdn명시적이름, ListBox는 lbx명시적이름, Button은 btn명시적이름과 같이 작성 해 줍니다. 그래야 나중에 볼때 '아 이건 어디에 대한 이벤트다. 이건 무엇에 대한 데이터 바인딩이다.'를 빠르게 캐치할 수 있습니다.
3. 중복되는 처리부분들은 다 매소드화 시키자!
- 내용들을 보면 가끔 중복되는 부분들을 이 매소드 저 매소드에 넣어두거나 if~else에서 if와 else에 동일한 내용이 들어가는 경우도 있습니다.
이런 부분들은 매소드화 시켜서 코드를 간결화 시켜주시면 되겠습니다.
(단, 중복되는 줄이 1~3줄 정도의 짧은 부분은 매소드화 하지 않으셔도 크게 관계 없습니다.)
4. 자바스크립트나 css는 따로 파일로 만들어서 연결해주자!
- html또는 aspx작성시에 위에 <script type="text/javascript"></script>또는 <style></style> 내에 몇십줄을 작성하기 보다는 파일로 따로 만들어 연결 시켜주는 습관을 가지는 것이 좋습니다. javascript나 css를 수정할 경우 따로 파일이 있다면 배포된 파일에서 수정을 하면 완료되지만, aspx파일 내에 작성을 할 경우 다시 수정해서 배포를 다시해야 하기 때문에 일이 번거로워 집니다.
5. 코딩 컴플리트시 테스트 코드는 모두 삭제!!
- 코드 컴플리트를 했을때에는 코드 내에 테스트를 위해 적어두었던 코드를 모두 삭제 해주셔야 합니다. // 또는 /**/, <!---->와 같이 주석으로만 처리 해두시면 해당 코드는 인식되지는 않지만 보기에두 지저분 하고 용량을 차지합니다.
아래는 제가 TreeView Populate 매소드 확인좀 하느라 작성하면서 주석 작성한 내용입니다.
이게 습관이 되어 있어야 프로젝트 나가서 실수로 주석 안달아서 혼나는 일이 없습니다 ㅎ
저도 아직 배워야 하는 입장입니다 ㅎ
개발 선배님들이 보고 제가 쓴 글에서 잘못된 부분이나 추가할 점을 댓글로 써주시면 감사하겠습니다.
그럼 좋은 하루 되세요!