PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2022/01/02 22:40:30
Name 멋진신세계
Subject [질문] 코딩을 깔끔하게 하는 비법이 있을까요?
원래 전공은 다른 일이었는데 어쩌다보니 연구소에서 코드를 짜서 프로그램을 만드는 일을 받아서 하게 되었습니다.

대략 오천줄 전후의 프로그램을 그래도 서너번 만들었는데요..
이게 하다보니까 제 스스로 코딩한 스타일이 너무 마음에 안 들더라구요.

일단 변수 선언이나 변수명, 함수명 짓는 것도 중구난방이고
함수를 제대로 쪼개지도 못해서 재사용 이런 것도 잘 안되고 거의 모든 코드를 일회용으로 사용합니다..

일단 프로그램을 파는 입장은 아니고, 아이디어를 구현해서 판단해보는 정도의 입장이라
어찌보면 그냥 기능이 돌아가게만 짜도 되겠습니다만
그래도 이제 2년쯤 코드를 짜고 있다보니까 스스로의 코드가 마음에 안든다! 정도의 감상을 가질 정도가 되었습니다.

원칙적으로는 깔끔하게, 함수는 재사용할 수 있을 정도로, 누구나 알아보기 좋게 가독성을 높게 등등이 있겠지만
과연 이러한 "좋고 예쁜 코드"를 어떻게 만들어야 하는지 감이 안옵니다.

혹시 이런 걸 배울 방법이나 정리된 팁 같은 게 있을까 싶어서 질문드리고자 합니다.
아니면 이런 건 코드를 계속해서 짜고 있다보면 점점 경험이 쌓이면서 코드가 예뻐(?)질까요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
22/01/02 22:47
수정 아이콘
말씀 하신 고민은 여러가지 방법을 통해서 해결 이 가능합니다.
1. 남들이 많이 쓰는 코딩 컨벤션을 적용 하시면 됩니다.
https://hodol.dev/journal/coding-convention/

2. 코드 중복 검사를 설치하셔서 중복 코드를 제거 합니다.

3. 코드 복잡도 측정을 하셔서 일정 수치 이하로 낮출수 있도록 코드를 수정 합니다.

위와 같은 행위를 매번하는것도 귀찮기 때문에 요즘은 어떤지는 모르겠지만 꽤 오래전 포털회사 재직시에는 CI 서버를 구축해서 코드 수정시 마다 위에것들을 자동으로 검사해주고 일정수치가 넘어가면 수정을 강제화 하는 식으로 사용하곤 했습니다.
멋진신세계
22/01/02 22:48
수정 아이콘
오 역시 다들 쓰시는 방법이 있었군요.
이게 주먹구구식으로 일단 만들다보니 다들 처음 보는 것들이라 왠지 쓰면 훨씬 나을 거 같기도 해요.
일단 하나씩 차근히 접근해 보겠습니다! 감사합니다!
맹독충
22/01/02 22:48
수정 아이콘
사용하시는 언어의 코딩 컨벤션, 코드 스타일 가이드를 검색해보세요.
스타일 가이드를 넘어 코드를 좀 더 잘 작성하고 싶다면 클린코드 책을 읽어보시고 실천하시는 걸 추천합니다.
https://book.naver.com/bookdb/book_detail.naver?bid=7390287
멋진신세계
22/01/02 22:49
수정 아이콘
어렴풋이 남들은 다 가독성 좋게 짜는데 나는 왜 뭔가 달라보이지... 라고 생각한 게 코딩 컨벤션인가보네요.
책 추천 감사합니다. 올 한해는 좀 더 클린한 코드를 짜도록 노력해 보겠습니다... 흑흑...
22/01/02 23:46
수정 아이콘
1. 자신만의 원칙을 정하시고, 정한 원칙을 무조건 준수해서 작성하세요. (되도록 예외를 두지 마세요.)
2. 최소주의를 지향하세요. (더 넣을 게 없는 코드를 만들기보다는 더 뺄 게 없는 코드를 만드세요.)
3. 대략 한 화면에서 한 화면 반 정도를 덮는 로직(제 기준입니다)이 80% 이상 중복된다고 느낀다면, 그것을 함수 하나로 합치세요.
멋진신세계
22/01/03 23:04
수정 아이콘
명심하고 정리 해보겠습니다!
22/01/03 00:31
수정 아이콘
좋은 말씀 많이 해주셨지만 사실 이렇게 말로 들어서 될만한 일이 아닙니다.

확실한건 피드백 없이 코드를 백날 혼자 짜봐야 코드가 깔끔하게 되진 않습니다. 어떻게든 남과 같이 프로젝트를 하면서 피드백을 받아야해요
멋진신세계
22/01/03 23:05
수정 아이콘
피드백이 있으면 참 좋을텐데.. 저희 팀 모두가 컴공/코딩 전문가들이 아니다보니..
저 이외에도 문제점은 인식하고 있지만 아무도 어떻게 해야 나아지는지를 모른 채 갈팡질팡하는 것 같아요.
그렇다고 프로그래밍을 잘 하는 분을 합류시킬만한 상황도 아니구요...
일단 위에서 언급해 주신 것들이라도 인지하면서 다시 한 번 노력해보려고 합니다..! 감사합니다!
22/01/03 00:46
수정 아이콘
이 분야 바이블로는 Clean Code by Robert Cecil Martin 가 있죠.
멋진신세계
22/01/03 23:10
수정 아이콘
바이블이라니 꼭 읽어보겠습니다. 많이들 추천해 주셨네요...!
밥오멍퉁이
22/01/03 07:13
수정 아이콘
클린코드좋고, 클린코드보다는 지금상황에선 리팩터링 이라는 도서 추천드립니다.
본문에서 말씀하신 내용을 잘 실천하는건 상당히 어려운일이라서 시간과 품이 걸리실거구요. 재사용성에 대한것은 객체지향 프로그래밍 및 관련된 디자인패턴을, 깔끔하고 사이드이펙트적은 코드에 대한것은 함수형 프로그래밍 관련공부 해보시면 도움이 되실 것 같습니다.
멋진신세계
22/01/03 23:08
수정 아이콘
혹시 리팩토링이 마틴 파울러라는 분이 쓰신 책이 맞을까요...?
일단 두 책을 공부해가면서 개념을 익혀야겠네요. 말씀해주신 키워드들도 염두에 두고 공부해보겠습니다.
(이렇게 공부할 것이 쌓여만 가는군요...)
라자냐
22/01/03 08:07
수정 아이콘
(수정됨) .
멋진신세계
22/01/03 23:09
수정 아이콘
키워드라도 얻어야 노력을 해볼 수 있을 것 같아서 질문을 드리긴 했는데,
공부할 내용이 산더미처럼 쌓여가는 기분이 들긴 합니다.. 흑흑..
대체 어쩌다 이렇게 된건지 모르겠지만 저 외의 모든 팀원들이 다 같이 이런 코딩을 잘하는 법에 일자무식들이라..
클린코드 책 꼭 읽어보겠습니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
160841 [질문] 요즘 결혼하면 일반적으로 남녀 어떻게 준비하나요? [24] CastorPollux10496 22/01/03 10496
160840 [질문] 컴퓨터 조립 직접 하는거 괜찮을까요? [8] 잘생김용현8400 22/01/03 8400
160839 [질문] 2년이상 운행안한 차량 처리관련 질문입니다. [2] 큐브큐브7216 22/01/03 7216
160838 [질문] 여수여행 부모님 모시고 3인가족 여행 숙소 질문입니다. [10] BISANG7422 22/01/03 7422
160837 [질문] 갤럭시 플립3 업데이트해도 되나요? [6] 고등어3마리4208 22/01/03 4208
160836 [질문] 국내 여행지 추천 부탁드립니다 [11] norrell6481 22/01/03 6481
160835 [질문] 아파트아이 사용하시는 분들 질문입니다 [3] 호아킨6745 22/01/03 6745
160834 [질문] 스파이더맨 노웨이홈 보기전에 보면 좋을 유튜브? [4] 동보미5899 22/01/03 5899
160833 [질문] 중고차 질문입니다.(3000만원대) [15] 교자만두6661 22/01/03 6661
160832 [질문] 남편 컴퓨터 맞추려면 얼마 정도면 될까요? [23] Hammuzzi8252 22/01/03 8252
160831 [질문] 회사 짝녀랑 거리두기 어떻게 하면 될까요... [48] 나는바보다10436 22/01/02 10436
160830 [질문] 공무원 시험 돈 안갚은거 있으면 면접서 떨어지나요? [22] StondColdSaidSo6602 22/01/02 6602
160829 [질문] 코딩을 깔끔하게 하는 비법이 있을까요? [14] 멋진신세계7361 22/01/02 7361
160827 [질문] 백신 3차 접종은 몇개월 후에 맞는게 좋을까요? [14] VictoryFood8437 22/01/02 8437
160826 [질문] 자취방 컴퓨터책상 크기선택좀 도와주세요 [5] JP-pride7439 22/01/02 7439
160825 [질문] 하루 두끼 vs 한끼 [6] 그때가언제라도5898 22/01/02 5898
160823 [질문] 나혼자만레벨업 단행본은 언제 완결될까요? [1] 나래를펼쳐라!!6968 22/01/02 6968
160822 [질문] 다른 기기는 와이파이 속도가 빠른데, 노트북 하나만 느립니다. [2] 7417 22/01/02 7417
160821 [질문] 컴퓨터 그래픽카드 인식 관련 질문입니다. [6] 알콜프리5331 22/01/02 5331
160820 [질문] 대선 관련해서 봐야할 유튜브 링크 좀 알려주세요 [1] Stranded5402 22/01/02 5402
160819 [질문] 국내 해외축구팀 팬덤 규모 [8] 선동열7634 22/01/02 7634
160817 [질문] 집에서 삼겹살 구워먹기 좋은 인덕션이나 렌지? [2] 바보영구5312 22/01/02 5312
160816 [질문] 가전 구매 질문(세탁기, 에어컨, 냉장고) [3] ShamanRobot5410 22/01/02 5410
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로