디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

코딩의 기초

ㅇㅇ(1.249) 2025.03.31 17:04:51
조회 120 추천 2 댓글 9

https://gall.dcinside.com/board/view/?id=programming&no=2829956&fcno=9038098

 

https://gall.dcinside.com/board/view/?id=programming&no=2829972&fcno=9038131

 




코딩의 기초는 응집도와 결합도를 아는 것입.

위의 글에서 이야기 한 것 처럼 코딩은 함수를 잘 만들어야함.



그러기 위해서 필요한 것은 응집도와 결합도에 대한 이해임.




응집도는 말 그대로 응집되는 것, 하나의 논리, 함수, 기능에 수렴하는 것을 말함.

소스코드는 수 많은 논리들로 이루어짐, 응집도가 높다는 것은, 이 논리들이 각각 개별로서 존재하며

상호작용 하고 있다는 것을 뜻함.




1차원 적으로 말하자면 각각의 응축으로 인해, 이것과 저것에 대한 구분이 생긴다는 것임.

이러한 구분을 언어적으로 지원하는게 함수임.




그렇다면 응집도를 이해한다는 것은 소스코드에서 무엇을 함수로 만들어야 할지에 대한 시각이 생긴다는 것과 같음.

그래서 초보들은 함수를 잘 만들지 못함. 응집도에 대한 이해력이 낮기 때문임.




이러한 응집도는 해당 프로그램 내에서의 기능적인 응집도가 있고, 비즈니스적 응집도가 있음.

초보들이 응집도를 어려워 하는 이유는 구조적인 응집도와 구현목표에 따른 응집도에 대한 구분을 어려워 하기 때문임.




구조적인 응집도는 레고블럭을 만드는 것과 같음.

레고 블럭을 만들어서 목표에 도달하고자 하는 것임.




반면에 비즈니스 적인 응집도는 바로 목표를 위한 응집도임.

찰흙, 시멘트, 자갈, 같은 것임.


그래서 틀을 잡지 못하면 코드가 개판이 되기 쉬움.




코딩이란 구조적인 응집도와 비즈니스 적인 응집도를 소스코드에서 구분할줄 알아야하며

비즈니스적인 목표를 구조적 응집도 위에 올릴줄 알아야함.




이것을 모르면, 함수를 알수가 없음.


무엇을, 어떻게, 어느정도로 단락을 끊어주어야 하는지 혼동이 오기에

초보들의 코드는 사람이 이해하기 짜증나는 코드가 됨.




구조적인 코드를 만들고 있다고 생각하는 초보들이 많음. 즉 기계적인 코드를 짜는 것임.

이건 비즈니스의 절차의 구조를 그대로 코딩을 하면서, 자기가 구조화된 코드를 짜고 있다고 생각하기 때문임.




응집도를 높이기 위한 지식은 cs계에 거의 없었음.

oop에서 약간, 클린코드류에서 기초적인 방법론을 얻을수 있을 뿐이었는데

리팩토링이 등장하면서 응집도를 높이는 기술이 가시적으로 나타난 것임.




그래서 몇일, 몇개월, 몇년 뒤에 소스코드를 다시 보면 이해하지 못한다는 말이 과거로부터 존재하는 것임. (과거에는 리팩토링을 몰랐으니까)

응집도가 뒤틀려 있기에 시간이 지나 소스코드를 보게될때, 해당 기능의 의미를 이해하기 어려움.

이것이 응집도에 대한 불완전한 이해로 짠 코드들의 결말임.




두번째 결합도도 마찬가지임.


응집도를 극한으로 높여 파라메터 결합도, 순서 결합도 수준에서 코드를 정리해 나가면

특정 기능의 처리로직과 리소스가 프로그램 구조에서 명확하게 드러나게됨.


이것들을 모아서 메인함수, 혹은 클래스로 구성을 하면 기본적인 하나의 기능을 코딩하여 완료했다고 말할수 있음.



코딩을 배워나가며, oop니 디자인패턴이니 이것저것을 배우고 있는데

가장 기본이 되는 것은 응집도와 결합도를 소스코드에서 볼수 있는 시각을 갖는 것임.


이런 기본중의 기본이 안되고, oop 디자인 패턴을 배워봤자 

겉멋만 든 병신같은 소스코드만 만들게됨.



기초가 가장 중요함.


추천 비추천

2

고정닉 2

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 사회생활 대처와 처세술이 '만렙'일 것 같은 스타는? 운영자 25/03/31 - -
이슈 [디시人터뷰] LPBA의 차세대 스타, 당구선수 정수빈 운영자 25/04/02 - -
2837922 키오스크 개발중인데 연동할 프린트 이름이 맘에 안 듬 ㅇㅅㅇ [4] 강유현갤로그로 이동합니다. 04.01 48 0
2837921 형님들 이런건 뚫는 방법이 없나요? [2] ㅇㅇ(149.40) 04.01 41 0
2837920 내가 옵시디언에 저장해둔 내 공부 내용들 몇개 보는 중 [5] ㅆㅇㅆ(124.216) 04.01 55 0
2837919 악질 화교분탕 뿌팍스 ㅇㅇ(175.223) 04.01 26 0
2837918 깡계로 어그로 끌꺼면 비번까지 다르게 해라 [2] ㅇㅇ갤로그로 이동합니다. 04.01 45 0
2837917 나도 GPT 딸깍 시도해본다 ㅇㅅㅇ [4] 강유현갤로그로 이동합니다. 04.01 66 0
2837916 권력을 남용하는 운영자는 필요없다. 넥도리아(223.38) 04.01 39 0
2837915 이런거도 되네. [1] 찍먹갤로그로 이동합니다. 04.01 39 0
2837914 러스트가 참 좋은게 할 줄 모르면서 빨아도 되게 뿌듯함 [1] 프갤러(110.8) 04.01 47 0
2837913 클로드AI한테 바탕화면 아이콘 정리 시킴. [5] 찍먹갤로그로 이동합니다. 04.01 77 0
2837912 Rust도 이론상 최강 GUI 가능 ㅇㅅㅇ [6] 강유현갤로그로 이동합니다. 04.01 69 0
2837911 개발자들 툴이 디자이너보다 가성비 씹오지지않냐 ㅇㅅㅇ? [7] 강유현갤로그로 이동합니다. 04.01 66 0
2837910 반프리 오늘예 한 일 ㅇㅅㅇ [3] 강유현갤로그로 이동합니다. 04.01 47 0
2837909 개초보가 싸질러 놓은거 치우느라 빡친다. [3] 프갤러(59.16) 04.01 70 0
2837908 데사학과 2학년인데 [7] 공갤러(211.234) 04.01 68 0
2837907 러스트 해볼까? [3] 프갤러(114.202) 04.01 55 0
2837906 나님 기룍회복용 폭식했뀨❤+ ♥냥덩소프트♥갤로그로 이동합니다. 04.01 28 0
2837905 우울증 약 안먹고 [2] hrin(118.235) 04.01 50 0
2837904 근디 윈폼 말고 qt나 크로스플랫폼 그런건 안씀? [10] 프갤러(110.8) 04.01 74 0
2837903 집왔다 10시까지 작업좀 하다 자야지.. [5] ㅆㅇㅆ(124.216) 04.01 42 0
2837902 밤 한번 샐까 [4] 재현갤로그로 이동합니다. 04.01 46 0
2837901 si 서비스 왔다갔다 해본 게이 있음? ㅇㅇ(211.234) 04.01 37 0
2837900 ❤✨☀⭐나님 시작합니당⭐☀✨❤ [2] ♥냥덩소프트♥갤로그로 이동합니다. 04.01 32 0
2837899 윈폼으로 유틸리티 만들고 노는게 재밌다 [8] 프갤러(114.202) 04.01 61 0
2837898 난 천상 개발자인가 [2] ㅇㅇ(182.216) 04.01 63 0
2837897 야근수당 안주면 나도 일정 맞춰줄 의무가 없어 [6] 프갤러(211.234) 04.01 58 1
2837896 중국인 입국허가,보궐선거에 맞춰 전국 주민센터 시스템 장애 ♥냥덩소프트♥갤로그로 이동합니다. 04.01 23 0
2837895 전 회사가 사업팀이 왕이라 개발자들 죄다 탈주박았는데 ㅇㅅㅇ [14] 강유현갤로그로 이동합니다. 04.01 82 0
2837894 쓰레기 러스트 [6] 프갤러(121.139) 04.01 71 1
2837893 오늘 공부한거 [3] 프갤러(113.59) 04.01 40 0
2837892 이제는 일정 좆까 뭐 소송이라도 걸거냐 이 마인드인데 [9] 프갤러(61.74) 04.01 65 0
2837891 개인이 앱개발해서 성공은 거의 불가능 아님? [3] ㅇㅇ(114.202) 04.01 47 0
2837890 외주 보니까 개발자 도망간 프로젝트들 보이는데 [8] 프갤러(121.139) 04.01 71 0
2837889 si 가면 이런 느낌임? [1] 프갤러(121.139) 04.01 59 0
2837888 요즘 백엔드 취업이 그리 잘된다며? [3] ㅇㅇ(180.182) 04.01 119 0
2837887 1980년대 일본으로 시간 여행 하고싶다 ㅇㅇ Kyle(103.21) 04.01 23 0
2837886 DB에서 외래키 제약 있으면 테스트 데이터 어케 넣음? [1] 프갤러(58.237) 04.01 39 0
2837885 ㅆㅇㅆ는 40기점으로 좀 풀리긴할거임 [4] RyuDOG갤로그로 이동합니다. 04.01 59 0
2837884 엣헴 ♥냥덩소프트♥갤로그로 이동합니다. 04.01 21 0
2837883 본인 SI 탈주하고 SI 혐 걸린 썰 ㅇㅅㅇ [1] 강유현갤로그로 이동합니다. 04.01 69 0
2837882 근데 SI 주로 가는 사람들 SI 가는 이유가 뭐임 ㅇㅅㅇ? [6] 강유현갤로그로 이동합니다. 04.01 57 0
2837881 중경외시 컴공이면 보통 초봉 얼마정도 나올까 [7] ㅇㅇ(211.234) 04.01 117 0
2837880 씨발 왤케 덥지 [2] 프갤러(121.139) 04.01 40 0
2837879 4월 4일 극좌내란배급견들 집단살자로 민심을 보여주세양❤+ ㅋㅅㅋ ♥냥덩소프트♥갤로그로 이동합니다. 04.01 41 0
2837878 si 3달짼데 산출물만 ㅈㄴ 만드는중 [4] ㅇㅇ(118.235) 04.01 70 0
2837877 냥덩이의 그리운 고향.. ♥냥덩소프트♥갤로그로 이동합니다. 04.01 36 0
2837876 나님 여름 대비 극심한 다이어트로 기력이 딸룟.. ♥냥덩소프트♥갤로그로 이동합니다. 04.01 31 0
2837874 프리하니까 ㄹㅇ 코딩 자체는 쉬운데 너무 나태해짐 ㅇㅅㅇ 강유현갤로그로 이동합니다. 04.01 35 0
2837873 GPT새끼 SDK 문서 잘 분석해주냐 ㅇㅅㅇ? 강유현갤로그로 이동합니다. 04.01 31 0
2837872 허무하다 허무해 [3] ㅇㅇ(211.234) 04.01 49 0
뉴스 김재욱, 최여진에 스키장 프러포즈 “도망치지 말고 함께하자” 디시트렌드 04.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2