\(@^0^@)/
[BOOK] 노개북 클린코드 + 코어 자바스크립트, 데이터 타입 본문
최근에 딥 다이브를 읽었었는데 초반에는 읽을만했는데, 뒤로 갈수록 아직 나에겐 너무 어려워서 이해를 못 하겠더라
그러다 보니 계속 안 읽게 되어서 우선 딥한건 좀 접어두고,
먼저 핵심 개념을 파악하고 이해하기 위해 코어 자바스크립트를 구매하였다.
그리고 노마드코더의 개발 북클럽이 오늘부터 시작되어서, 클린 코드를 읽을 계기가 생겼다!
근데 클린 코드도 어려울 거 같은 느낌적 느낌이지만 클럽원들과 차근차근 스케줄표대로 뒤처지지 말고 따라가 보자!
[ 클린 코드 DAY 1 ]
오늘 읽은 범위 : 추천사 & 들어가면서 (xxii ~)
< 책에서 기억하고 싶은 내용 >
- 소프트웨어 개발에서 아키텍처는 중요하다.
- 세세함에 주의를 기울이고, 깨끗한 코드를 작성해야 하는 이유
1. 큰 실무에서 실력을 쌓고 신뢰를 얻으려는 전문가는 먼저 작은 실무부터 실력을 쌓고 신뢰를 얻어야 함.
2. 꼭 맞게 닫히지 않는 문이나 비뚤어진 바닥 타일이나 지저분한 책상 등 아주 사소한 것들이 전체의 매력을 깎아먹기 때문. - - 5S 철학
1. 정리 또는 조직 : 적절한 명명법 등과 같은 방법을 사용해 무엇이 어디에 있는지 알아야 한다.
2. 정돈 또는 단정함 : 코드는 누구나 예상하는 위치에 있어야 한다.
3. 청소 또는 정리 : 작업 공간에서 과거 이력이나 미래 바람을 기억한 주석 혹은 주석으로 처리한 코드는 제거한다.
4. 청결 또는 표준화 : 그룹 내에서는 일관적인 구현 스타일과 기법으로 작성해야 한다.
5. 생활화 또는 규율 : 관례를 따르고, 자기 작품을 자주 돌아보고, 기꺼이 코드를 변경해야 한다. - - 장인 정신을 익히는 과정
1. 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다.
2. 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.
< 궁금한 내용이나, 이해되지 않는 내용 >
- 스크럼(Scrum) : 프로젝트 관리를 위한 상호, 점진적 개발 방법론이며, 애자일 소프트웨어 개발 중의 하나이다.
소프트웨어 개발 프로젝트를 위하여 고안되었지만, 소프트웨어 유지보수 팀이나 일반적인 프로젝트/프로그램 관리에서도 적용될 수 있다.
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%81%AC%EB%9F%BC_(%EC%95%A0%EC%9E%90%EC%9D%BC_%EA%B0%9C%EB%B0%9C_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4) - TPM(Total Productive Management) : 설비 "본연의 모습"을 추구해 가면서, 업무와 관련된 모든 loss를 "제로"로 만들어가는 활동, 생산 효율을 극한까지 높이기 위한 전사적 생산혁신 활동
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wjn21&logNo=221006447216
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hyunseok1117&logNo=140167471574#:~:text=TPM%EC%9D%B4%EB%9E%80%2C%20%E2%80%9CTotal%20Productive%20Maintenance,%EB%84%8C%EC%8A%A4%ED%98%91%ED%9A%8C%EA%B0%80%EC%A0%9C%EC%B0%BD%ED%95%98%EC%98%80%EB%8B%A4.&text=%EC%9E%AC%ED%95%B4%EC%A0%9C%EB%A1%9C%2C%20%EA%B3%A0%EC%9E%A5%EC%A0%9C%EB%A1%9C%2C%20%EB%B6%88%EB%9F%89,%EA%B9%8C%EC%A7%80%20%EB%86%92%EC%9D%B4%EB%8A%94%20%EA%B2%83%EC%9D%B4%20TPM%EC%9D%B4%EB%8B%A4. - 린(lean) 규칙 : 애자일 방법론의 일종으로 기존의 개발 방법론과는 다르게 생산 시스템을 프로그램 개발 방법론에 적용한 기법이다. 낭비(Waste)에 포커스를 두어 프로그램을 개발하는데 발생할 수 있는 모든 낭비를 최소화하고 결과를 측정, 성과를 분석하여 소프트웨어 가치를 최대화하고자 하는 것을 목표로 둔다.
https://itproda.tistory.com/90
http://www.incodom.kr/%EB%A6%B0_%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EA%B0%9C%EB%B0%9C%EB%B0%A9%EB%B2%95%EB%A1%A0 - 휴리스틱(heu-ristic) : 휴리스틱(heuristics) 또는 발견법(發見法)이란 불충분한 시간이나 정보로 인하여 합리적인 판단을 할 수 없거나, 체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 사람들이 빠르게 사용할 수 있게 보다 용이하게 구성된 간편 추론의 방법
https://ko.wikipedia.org/wiki/%ED%9C%B4%EB%A6%AC%EC%8A%A4%ED%8B%B1_%EC%9D%B4%EB%A1%A0
https://m.blog.naver.com/businessinsight/221053956083
< 오늘 읽은 소감? 떠오르는 생각을 가볍게 적어보기 >
코드를 작성할 때, 세세함이 많이 부족했던 지난 과거가 떠오른다..
(설계를 하지 않고 무작정 코딩부터 시작했었다ㅠ)
5S 철학에 의거하여 코딩을 한다면, 상대방에게도 나에게도 좋은 코드가 나올 것 같다.
책임 있는 개발자가 될 수 있도록 성장하자!
< 소감 3줄 요약 >
- 5S 철학 : 1. 정리 2. 정돈 3. 청소 4. 표준화 5. 규율
- 진정으로 책임 있는 개발자라면 제품 생명주기까지 고려해야 한다.
- 코드에 정직하고, 코드의 상태에 관하여 동료들에게 정직하고, 무엇보다도, 자기 코드에 대해서 자신에게 정직하라.
[ 출처 : 클린 코드 ]
[ 코어 자바스크립트 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줄 요약 >
- 기본형은 값이 담긴 주솟값을 바로 복제
참조형은 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제. - 변수와 상수를 구분 짓는 변경 가능성의 대상은 변수 영역 메모리
불변성 여부를 구분할 때의 변경 가능성의 대상은 데이터 영역 메모리 - 기본형은 주솟값을 복사하는 과정이 한 번만 이루어지고, 참조형은 한 단계를 더 거치게 된다는 차이.
즉, 참조형 데이터가 '가변 값'이라고 설명할 때의 '가변'은 참조형 데이터 자체를 변경할 경우가 아니라 그 내부의 프로퍼티를 변경할 때만 성립함.
< 오늘 읽은 소감? 떠오르는 생각을 가볍게 적어보기 >
코드를 적을 때, 이렇게 동작원리를 하나하나 생각하면서 코딩해본 적이 없어서
그림으로 상세하게 설명되어 있는데도 이해하는데 약간의 어려움이 있었지만,
앞으로 코딩할 땐, 이번에 배운 동작원리가 머릿속에 그려지지 않을까..^^
[ 출처 : 코어 자바스크립트 ]
'BOOKS > 코어 자바스크립트' 카테고리의 다른 글
[BOOK] 코어 자바스크립트, this(2) (0) | 2022.03.14 |
---|---|
[BOOK] 코어 자바스크립트, this(1) (0) | 2022.03.11 |
[BOOK] 코어 자바스크립트, 스코프 (0) | 2022.03.08 |
[BOOK] 코어 자바스크립트, 실행 컨텍스트 (0) | 2022.03.04 |
[BOOK] 코어 자바스크립트, 데이터 타입 (0) | 2022.03.02 |