본문 바로가기

전체 글34

CleanCode 6장 객체와 자료구조 객체와 자료구조 자료 추상화 자료/객체 비대칭 디미터 법칙 자료 전달 객체 이 글을 읽기 전에 추상화의 개념을 간단하게 알아보자. 나무 위키에서는 추상화를 아래와 같이 정의했다. 컴퓨터과학에서 추상화는 어떤 종류의 대상들에 대해 그것이 가져야 할 핵심적인 특징들을 가지는 모델을 만드는 것이다. 예를 들어보자면 쇼핑몰에서는 회원에게 더 좋은 서비스를 제공하기 위해서는 고객의 정보가 필요하다. 회원의 정보는 이름, 주소, 휴대폰 번호, 성별 등... 이 있을 수 있다. 이때에 정보라는 범위가 모호하므로 위의 정보 외에도 직장, 취미, 특기, 음식, 이상형까지 포함할 수 있지만 회원 정보로는 필요하지 않다. 그렇기에 이러한 불필요한 정보들을 제거함으로써 중요한 공통점들만 남기는 것도 추상화라고 할 수 있다. .. 2022. 10. 5.
CleanCode 5장 형식 맞추기 형식 맞추기 형식을 맞추는 목적 적절한 행 길이를 유지하라 가로 형식 맞추기 팀 규칙 누군가 내 코드를 봤을 때 전문가라는 인상을 심어줄 수 있다면 얼마나 좋을까. 더 나은 코드를 작성하기 위해, 다른 프로그래머가 봤을 때 더 나은 가독성을 위해서는 끊임없는 고민과 노력이 필요한 것 같다. 회사에서 일한다면 회사에서 정한 규칙에 따라서, 개인이라면 개인이 정한 규칙에 따라서 일관성 있는 코드를 작성해야 한다. 그렇다면 일관성 있는 규칙을 세우기 위해서 무엇을 중요시해야 하는지 알아보자. 형식을 맞추는 목적 우리는 한가지를 분명히 짚고 넘어가야 한다. 우리 프로그래머들에게 코드란 의사소통의 일환이다. 그렇기에 코드 형식은 아주 중요하다는 것이다. 코드 형식을 맞추는 것이 개발자들의 일차적인 의무이다. 어쩌.. 2022. 9. 24.
CleanCode 4장 주석 주석 주석은 나쁜 코드를 보완하지 못한다. 코드로 의도를 표현하라 좋은 주석 나쁜 주석 "나쁜 코드에 주석을 달지 마라. 새로 짜라." -브라이언 w. 커니핸, P.J 플라우거 잘 달린 주석은 그 어떤 정보보다 유용하다. 그러나 우리에게 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면 주석은 필요 없다. 그러나 코드로 모든 의도를 표현하지 못해 때때로 주석을 사용하게 된다. 코드에 모든 생각을 담지 못한다면 그것은 자신에게 표현력이 부족하다는 것이다. 모든 진실은 코드에 담겨있다. 그렇기에 주석은 반가운 손님이 아니다. 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 이유는 코드만으로 모든 것을 말하지 못하기 때문이다. 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가, 주석이.. 2022. 9. 19.
CleanCode 3장 함수 함수 현재 프로그램의 가장 기본적인 단위는 함수이다. 함수를 잘 만드는 방법 몇가지에 대해서 정리해보자. 한 가지의 일만 해라 함수 당 추상화 수준은 하나로 함수 인수의 개수 부수효과를 일으키지 마라 반복하지 마라 명령과 조회를 분리하라 오류 코드보다 예외를 사용하라 반복하지 마라 함수는 어떻게 짜야하는가 및 결론 들어가기 전 함수를 왜 사용하는지 알아보자. 1.반복적인 프로그래밍을 피하기위해 즉, 코드의 재사용성을 높이기 위해서 2.큰 개념을(함수) 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서 (by CleanCode) 코드의 재사용성을 높이기 위해서라는건 모두 알고있는 사실일것이다. 그러나 '큰 개념을 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서' 라는 말은 처음들어보는 사람들도.. 2022. 9. 15.
Architecture 패턴이란? software Architecture와 Architecture Pattern이란? software Architecture 정의 소프트웨어의 골격이 되는 기본 구조이다. 건축학에서 건물의 구조를 건축학적으로 설계하듯 컴퓨터 공학에서는 소프트웨어의 구조(아키텍처)를 단계별로 설계하고 구축하게 된다. Architecture Pattern 정의 아키텍처 패턴은 소프트웨어 시스템의 구조를 구성하기 위한 기본적인 윤곽을 제시한다. 아키텍처 패턴에는 서브시스템들과 그 역할이 정의되어 있으며, 서브시스템 사이의 관계와 여러 규칙 지침 등이 포함되어 있습니다. 일반적으로 발생하는 문제점들에 대한 일반화되고 재사용 가능한 솔루션 이다. Architecture Pattern의 장점 개발 시에 발생하는 다양한 에러의 원인과.. 2022. 9. 14.
CleanCode 2장 의미 있는 이름 의미 있는 이름 책에서 말하는 의미 있는 이름을 작성하기 위해서는 너무나도 많은 사항들이 있지만 조금 간추려보았다. 의도를 분명히 밝혀라 (글쓴이 개인적으로는 가장 중요하다고 생각한다) 그릇된 정보를 피하라 의미 있게 구분하라 발음하기 쉬운 이름을 사용하라 검색하기 쉬운 이름을 사용하라 한 개념에 한 단어를 사용하라 말장난을 하지 마라 의미 있는 맥락을 추가하라 불필요한 맥락을 없애라 의도를 분명히 밝혀라 의미있는 이름이란 "의도가 분명히 드러나는 이름"이다. 좋은 이름을 짓는 것은 쉽지 않다. 그러나 좋은 이름 덕에 미래의 나, 그리고 다른 동료들은 이름만으로도 무슨 기능을 하는지 파악할 수 있고, 많은 시간을 절약할 수 있을 것이다. getDataList(){ this.$http.get(url).th.. 2022. 9. 14.