클린코드 5장 & 6장 궁금증 자문자답

지송·2023년 9월 21일
0

클린코드

목록 보기
3/8

📚 클린코드 5장 형식 맞추기 및 7장 객체와 자료구조 을 읽고 생긴 궁금증을 정리해 보았습니다


< 느낀 점 >

원래 짧은 서두로 간략하게 적던 걸 느낀 점을 길게 써 보기로 했다
다른 스터디원 분이 마음에 들었던 문장을 옮기고 감상평을 남기시길래
그러한 형태가 마음에 들어서 (스터디를 진행하면 여러 감상을 늘여 놓게 되는데 그러한 감상들을 글로나마 옮겨적어 반성 및 생각 포인트들을 정리하고 싶었다!) 따라해 보려고 했지만 모든 문장이 하나의 주제를 관통하고 있어서 영 고르기 어려웠다...

그래서 간략하게 생각을 주절주절 늘여놓는 공간으로 쓰기로 했다 이번 5장 6장은 지난 장들과는 다르게 이해가 직관적으로 되지는 않아서 한 번 더 생각하게 되었는 것 같다 약간의 추상적인 개념이기도 하고 본격적으로 설계에 있어서 봐야하는 점들이다 보니까 전체적인 그림을 그릴 때 주의해야 되는 것들이었다! 세세한 그림을 그리다 보면 실수할 수 있는 그런 부분들이었다 생각한다

형식 맞추기를 읽으며 딱 떠오른 게 있는데 바로 캐시였다 컴퓨터구조 운영체제를 공부할 때 아주 많이 봤던 캐시... 캐시 메모리의 적중률을 높이기 위해 수평 거리 수직 거리 유사성 친화성 연관성에 따라 적중률이 올라가는 그런 맥락이었던 것 같은데! 딱 떠올라서 다른 스터디원 분들도 떠오르셨을까? 흥미롭기도 하고

쓰다 보니 주절주절 길어졌는데 이제 궁금증 정리 타임으로 넘어가야지


1. 여러 가지 디자인 패턴 정리하기

개발을 하다 보면 다들 종종 비슷한 패턴을 보게 된다고 한다
5장 형식 맞추기를 보며 그러한 패턴에 대한 생각이 문득 떠올랐다
컴파일러 강의를 들을 때 과제로 비지터 패턴을 배운 적 있는데 그때 다른 디자인 패턴도 공부해 봐야겠다! 다짐한 적이 있는데 오늘 간단하게 무엇이 있는지만 보고 가야지

https://hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8616098823
한빛 감사합니다

싱글턴 패턴(Singleton Pattern)

추상 팩토리 패턴(Abstract Factory Pattern)

다른 건 위 한빛 링크를 참고하면 더 다양하다!


2. for문 돌 때 int i로 안에 선언이 나은가 바깥 선언이 나은가?

이것도 5장을 보며 문득 떠올랐는데 과연
for(int i = 0; i < n; i++) 과 int i; for(i = 0; i < n; i++)중에 효율적으로 더 나은 게 있는가 궁금증이 들었다.

결론부터 말해 보자면 효율적인 측면의 차이는 크지 않은 듯하고 그때 더 편한 방식을 사용하면 될 것 같다! 전자의 방법은 더 간결하지만 스코프가 해당 for문 한정이라 후에 또 i를 사용하려면 선언을 해 주어야 하고 후자의 방법은 조금 더 복잡하지만 후에 i를 또 재사용 가능하다. 만약 break문 등으로 중도 이탈한 경우 i 변수 값을 확인하고 싶을 때 미리 선언하는 방식을 사용하면 되겠다.


3. 가위 규칙 정리 및 다른 규칙 찾아보기

가위 규칙이라는 게 보편적으로 사용되는 건 아니고 다들 암묵적으로 쓰고 있는 듯하다 해당 명칭은 클린코드로 유명해진 듯?

https://blog.eq8.eu/article/scissors-rule-in-coding.html

영문 결과만 조금 나오길래 첨부한다...


4. 디미터의 법칙

디미터 법칙(Law of Demeter)은 데메테르의 원칙이라고도 불리며 의미상으로 최소 지식의 원칙이라고 한다. 다른 객체가 어떠한 자료를 갖고 있는지 속사정을 몰라야 한다는 것을 의미하며 객체는 그것이 내부적으로 보유하고 있거나 메시지를 통해 확보한 정보만 가지고 의사 결정을 내려야 한다

휴리스틱의 일종이라 불리는데 이러한 명칭을 서치하며 알게 돼서 다음에 휴리스틱들을 조금 더 찾아 봐야겠다!

https://dkswnkk.tistory.com/687

해당 블로그를 참조하면 이해하기가 더 쉽다!

profile
💻 늘 공부하고 발전하는 개발자

0개의 댓글