\(@^0^@)/

[BOOK] 노개북 클린코드 + 코어 자바스크립트, 데이터 타입 본문

BOOKS/코어 자바스크립트

[BOOK] 노개북 클린코드 + 코어 자바스크립트, 데이터 타입

minjuuu 2022. 1. 21. 19:03
728x90

최근에 딥 다이브를 읽었었는데 초반에는 읽을만했는데, 뒤로 갈수록 아직 나에겐 너무 어려워서 이해를 못 하겠더라
그러다 보니 계속 안 읽게 되어서 우선 딥한건 좀 접어두고,
먼저 핵심 개념을 파악하고 이해하기 위해 코어 자바스크립트를 구매하였다.
그리고 노마드코더의 개발 북클럽이 오늘부터 시작되어서, 클린 코드를 읽을 계기가 생겼다!
근데 클린 코드도 어려울 거 같은 느낌적 느낌이지만 클럽원들과 차근차근 스케줄표대로 뒤처지지 말고 따라가 보자!


[ 클린 코드 DAY 1 ]

오늘 읽은 범위 : 추천사 & 들어가면서 (xxii ~)

< 책에서 기억하고 싶은 내용 >

  • 소프트웨어 개발에서 아키텍처는 중요하다.
  • 세세함에 주의를 기울이고, 깨끗한 코드를 작성해야 하는 이유
    1. 큰 실무에서 실력을 쌓고 신뢰를 얻으려는 전문가는 먼저 작은 실무부터 실력을 쌓고 신뢰를 얻어야 함.
    2. 꼭 맞게 닫히지 않는 문이나 비뚤어진 바닥 타일이나 지저분한 책상 등 아주 사소한 것들이 전체의 매력을 깎아먹기 때문.
  • - 5S 철학
    1. 정리 또는 조직 : 적절한 명명법 등과 같은 방법을 사용해 무엇이 어디에 있는지 알아야 한다.
    2. 정돈 또는 단정함 : 코드는 누구나 예상하는 위치에 있어야 한다.
    3. 청소 또는 정리 : 작업 공간에서 과거 이력이나 미래 바람을 기억한 주석 혹은 주석으로 처리한 코드는 제거한다.
    4. 청결 또는 표준화 : 그룹 내에서는 일관적인 구현 스타일과 기법으로 작성해야 한다.
    5. 생활화 또는 규율 : 관례를 따르고, 자기 작품을 자주 돌아보고, 기꺼이 코드를 변경해야 한다.
  • - 장인 정신을 익히는 과정
    1. 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다.
    2. 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.

< 궁금한 내용이나, 이해되지 않는 내용 >

< 오늘 읽은 소감? 떠오르는 생각을 가볍게 적어보기 >

코드를 작성할 때, 세세함이 많이 부족했던 지난 과거가 떠오른다..
(설계를 하지 않고 무작정 코딩부터 시작했었다ㅠ)
5S 철학에 의거하여 코딩을 한다면, 상대방에게도 나에게도 좋은 코드가 나올 것 같다.
책임 있는 개발자가 될 수 있도록 성장하자!

< 소감 3줄 요약 >

  1. 5S 철학 : 1. 정리 2. 정돈 3. 청소 4. 표준화 5. 규율
  2. 진정으로 책임 있는 개발자라면 제품 생명주기까지 고려해야 한다.
  3. 코드에 정직하고, 코드의 상태에 관하여 동료들에게 정직하고, 무엇보다도, 자기 코드에 대해서 자신에게 정직하라.

[ 출처 : 클린 코드 ]


[ 코어 자바스크립트 DAY 1 ]

오늘 읽은 범위 : (데이터 타입) p.01 ~ p.20 

< 책에서 기억하고 싶은 내용 >

  • 데이터 타입
    - 기본형 (primitive type) : 숫자, 문자열, boolean, null, undefined, symbol
    - 참조형 (reference type) : 객체, 배열, 함수, 날짜, 정규표현식, Map, WeakMap, Set, WeakSet
  • 기본형은 값이 담긴 주솟값을 바로 복제
    참조형은 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제
  • JS는 메모리 관리에 대한 압박에서 자유롭다.
    숫자의 경우 정수형인지 부동소수형인지를 구분하지 않고 64비트, 즉 8바이트를 확보.
    모든 데이터는 바이트 단위의 식별자, 더 정확하게는 메모리 주솟값을 통해 서로 구분하고 연결할 수 있다.
  • 식별자 : 어떤 데이터를 식별하는 데 사용하는 이름, 즉 변수명
  • 변수 : 변경 가능한 데이터가 담길 수 있는 공간 또는 그릇.
  • 데이터 할당할 때 변수 영역에 값을 직접 대입하지 않고 굳이 번거롭게 한 단계 더 메모리 공간을 거치는 이유 :
    데이터 변환을 자유롭게 할 수 있게 함과 동시에 메모리를 더욱 효율적으로 관리하기 위해.
    효율적으로 문자열 데이터의 변환을 처리하려면 변수와 데이터를 별도의 공간에 나누어 저장하는 것이 최적.
    변수 영역과 데이터 영역을 분리하면 중복된 데이터에 대한 처리 효율이 높아짐.
  • 변수와 상수를 구분하는 성질은 '변경 가능성', 바꿀 수 있으면 변수, 바꿀 수 없으면 상수.
    변수와 상수를 구분 짓는 변경 가능성의 대상은 변수 영역 메모리
    불변성 여부를 구분할 때의 변경 가능성의 대상은 데이터 영역 메모리
  • 기본형 데이터인 숫자, 문자열, boolean, bull, undefined, symbol은 모두 불변 값.
    데이터 영역에 저장된 값은 모두 불변 값이지만, 변수에는 다른 값을 얼마든지 대입할 수 있음.
    바로 이 부분 때문에 흔히 참조형 데이터는 불변하지 않다(가변 값이다)라고 하는 것.
  • 참조 카운트 : 어떤 데이터에 대해 자신의 주소를 참조하는 변수의 개수
  • 어떤 데이터 타입이든 변수에 할당하기 위해서는 주솟값을 복사해야 하기 때문에, 엄밀히 따지면 JS의 모든 데이터 타입은 참조형 데이터 일 수 밖에 없다.
    다만 기본형은 주솟값을 복사하는 과정이 한 번만 이루어지고, 참조형은 한 단계를 더 거치게 된다는 차이.
    즉, 참조형 데이터가 '가변 값'이라고 설명할 때의 '가변'은 참조형 데이터 자체를 변경할 경우가 아니라 그 내부의 프로퍼티를 변경할 때만 성립함.

< 소감 3줄 요약 >

  1. 기본형은 값이 담긴 주솟값을 바로 복제
    참조형은 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제.
  2. 변수와 상수를 구분 짓는 변경 가능성의 대상은 변수 영역 메모리
    불변성 여부를 구분할 때의 변경 가능성의 대상은 데이터 영역 메모리
  3. 기본형은 주솟값을 복사하는 과정이 한 번만 이루어지고, 참조형은 한 단계를 더 거치게 된다는 차이.
    즉, 참조형 데이터가 '가변 값'이라고 설명할 때의 '가변'은 참조형 데이터 자체를 변경할 경우가 아니라 그 내부의 프로퍼티를 변경할 때만 성립함.

< 오늘 읽은 소감? 떠오르는 생각을 가볍게 적어보기 >
코드를 적을 때, 이렇게 동작원리를 하나하나 생각하면서 코딩해본 적이 없어서
그림으로 상세하게 설명되어 있는데도 이해하는데 약간의 어려움이 있었지만,
앞으로 코딩할 땐, 이번에 배운 동작원리가 머릿속에 그려지지 않을까..^^

[ 출처 : 코어 자바스크립트 ]

728x90