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
수정 아이콘
키워드라도 얻어야 노력을 해볼 수 있을 것 같아서 질문을 드리긴 했는데,
공부할 내용이 산더미처럼 쌓여가는 기분이 들긴 합니다.. 흑흑..
대체 어쩌다 이렇게 된건지 모르겠지만 저 외의 모든 팀원들이 다 같이 이런 코딩을 잘하는 법에 일자무식들이라..
클린코드 책 꼭 읽어보겠습니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
163263 [질문] 엑셀에서 보이는부분만 붙혀넣는 방법이 있을까요?? [14] 사는게젤힘드러5879 22/04/27 5879
162847 [질문] 노트북(이번에 나온 LG 그램) 메모리 16과 32기가 차이가 어느정도일까요? [6] BlueSKY--5902 22/04/07 5902
162778 [질문] 코딩을 배우고 싶은데 조언 부탁 드립니다. [7] WhiteBerry3414 22/04/04 3414
162620 [질문] 영어공부가 미친듯이 싫은데 공부할 방법 없을까요? [39] 신류진7360 22/03/28 7360
162594 [질문] 노트북 구매하려 합니다. 도움 좀 부탁드립니다. [1] 색마3352 22/03/26 3352
162570 [질문] 홈페이지를 웹뷰 어플로 제작하려고 합니다(플레이스토어 목표) [1] 엔쏘2184 22/03/25 2184
161684 [질문] 밥솥중에 스텐내솥은 어디가 좋나요? 바람의바람5044 22/02/11 5044
161638 [질문] fast campus 어떤가요? [12] 주식을마시는새5355 22/02/09 5355
161569 [질문] 취미이지만 진지하게 코딩을 배워 보고 싶습니다. [6] GoThree6564 22/02/06 6564
161528 [질문] 컴퓨터 견적 질문드립니다. [8] Su A4279 22/02/04 4279
161380 [질문] 컴퓨터 비전공자가 입문하기 좋은 코딩 및 머신러닝 교육컨텐츠에 어떤게 있을까요? [9] daftpunk5833 22/01/27 5833
160829 [질문] 코딩을 깔끔하게 하는 비법이 있을까요? [14] 멋진신세계6844 22/01/02 6844
160643 [질문] 파이썬 코딩 질문드립니다. [8] 민트초코우유6967 21/12/26 6967
160405 [질문] 아이폰 단축어 앱에서 도로명 주소를 가져오는 방법 [3] 허느6495 21/12/17 6495
160148 [질문] 회사를 옮겨야 할까요? [18] 시계깎는노인8242 21/12/04 8242
159959 [질문] 그룹스터디 할만한 곳 추천 부탁드립니다 [3] 용노사빨리책써라6992 21/11/25 6992
159898 [질문] 파이썬 이중 for range 질문입니다 [6] 회전목마7101 21/11/23 7101
159788 [질문] 영상편집 노트북 추천주시면 감사하겠습니다. [11] 스카야9500 21/11/18 9500
159450 [질문] 코딩이 뭔가요? [31] 오렌지망고9408 21/11/03 9408
159069 [질문] 엑셀-VBA를 공부하려면 어떤식으로 접근해야 할까요. [2] 스핔스핔8665 21/10/18 8665
158941 [질문] 코딩 부트캠프 후기나 추천 부탁드립니다. [6] 네파리안8305 21/10/13 8305
158794 [질문] 개발용 컴퓨터 견적 확인 부탁드립니다. [7] 황신강림7471 21/10/08 7471
157684 [질문] 이직 고민중입니다 (IT) [4] 버벌진트8507 21/08/23 8507
목록 이전 다음
댓글

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