분류 전체보기 58

[노개북_클린코드] 6장. 객체와 자료구조

TIL (Today I Learned) 2022.05.03 오늘 읽은 범위 6장. 객체와 자료구조 책에서 기억하고 싶은 내용 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. (p.119) 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다. (p.119) 자료 구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않는다. (p.119) 디미처 법칙은 잘 알려진 휴리스틱으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다. (p.123) 허용된 메서드가 반환하는 객체의 메서드는 호출하면 안 된다. (p.123) 자료 구조체의 전형적인 형태는 공개 변수만 있고 함수가 없는 클래스다. 이런 자료 구조체를 때로는 자료 전달 객체(DTO)라 한다. (p.126)..

내가 읽은 책 2022.05.03

[노개북_클린코드] 5장. 형식 맞추기

TIL (Today I Learned) 2022.05.02 오늘 읽은 범위 5장. 형식 맞추기 책에서 기억하고 싶은 내용 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무다.(p.96) 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. (p.96) 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다. (p.98) 줄바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미한다. (p.100) 호출하는 함수를 호출되는 함수보다 먼저 배치한다. (p.104) 친화도가 높을수록 코드를 가까이 배치한다 (p.106) 오늘의 소감 함수를 작게 쪼개는 연습을 하다보니 인자로 함수를 넘기거나 다른 함수를 함수 안에서 호출할 때, 그 내용을 다시 찾기위해..

카테고리 없음 2022.05.02

[노개북_클린코드] 4장.주석

TIL (Today I Learned) 2022.04.29 오늘 읽은 범위 4장. 주석 책에서 기억하고 싶은 내용 "나쁜 코드에 주석을 달지 마라. 새로 짜라." -브라이언 W. 커니핸, P. J. 플라우거(p.68) 프로그래밍 언어 자체가 표현력이 풍부하다면, 아니 우리에게 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면, 주석은 거의 필요하지 않으리라. (p.68) 진실은 한곳에만 존재한다. 바로 코드다. (p.69) 정말로 좋은 주석은, 주석을 달지 않을 방법을 찾아낸 주석이라는 사실을!(p.70) 주석을 다는 목적은 코드만으로 설명이 부족해서다. (p.89) 오늘의 소감 지금까지 읽은 부분 중에 가장 양심이 찔린 부분이라고 생각한다. 항상 주석이 좋은 코드를 위한 도구라고 생각하고 ..

내가 읽은 책 2022.04.29

[노개북_클린코드] 3장.함수

TIL (Today I Learned) 2022.04.27 오늘 읽은 범위 3장. 함수 책에서 기억하고 싶은 내용 함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다.(p.42) 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.(p.44) 코드는 위에서 아래로 이야기처럼 읽혀야 좋다.(p.46) 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한 번에 한 단계씩 낮아진다.(p.46) 이름이 길어도 괜찮다. 겁먹을 필요없다.(p.49) 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다.(p.56) 어쩌면 중복은 소프트웨어에서 모든 악의 근원이다.(p.60) 오늘의 소감 실제 코드를 보며 함수가 작아야하는 이유를 설명..

카테고리 없음 2022.04.27

[노개북_클린코드] 2장.의미있는 이름

TIL (Today I Learned) 2022.04.24 오늘 읽은 범위 2장. 의미있는 이름 책에서 기억하고 싶은 내용 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.(p22) 프로그래머는 코드에 그릇된 단서를 남겨서는 안 된다.(p.24) 전문가 프로그래머는 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다.(p.32) 그 외 의미있는 이름을 만드는 방식들,,, 오늘의 소감 그동안 코드를 짤 때 나도모르게 조금 더 짧고 타자치기 쉬운 이름들을 붙여서 나중에 그 변수나 함수를 사용할 때 코드를 위로 올려 찾아보던 경험이 떠올랐다. 작은 규모고 유지보수가 필요없는 과제 형식의 코드라 그렇다는 핑계로 하던 방식이 습관이 되어 지금까지 의미있는 이름을 짜는 것이 어려워 진..

내가 읽은 책 2022.04.24

[노개북_클린코드] 1장.깨끗한 코드

TIL (Today I Learned) 2022.04.23 오늘 읽은 범위 1장. 깨끗한 코드 책에서 기억하고 싶은 내용 궁극적으로는 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. (p.3) 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다. (p.7) 깨끗한 코드를 작성하는 프로그래머는 빈 캠퍼스를 우아한 작품으로 바꿔가는 화가와 같다. (p.8) 나쁜 코드는 나쁜 코드를 '유혹'한다! (p.9) 중복을 피하라. 한 기능만 수해하라. 제대로 표현하라. 작게 추상화하라. (p.14) 잘 짠 코드가 전부는 아니다. 시간이 지나도 언제나 깨끗하게 유지해야 한다. (p.18) 오늘의 소감 컴퓨터 전공을 졸업하며 그동안 제출의 의의를 두고 구현한 코드들의 문제점을 다시 한번 생각해보는 기회가 ..

내가 읽은 책 2022.04.23

[JavaScript] hoisting

Hoisting " 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것 " 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것 자바스크립트의 모든 선언에는 호이스팅이 일어남 let, const, class를 이용한 선언문은 발생하지않은 것 처럼 동작 var 변수 선언과 함수선언문에서 동작 🔔 함수표현식은 hoisting x Parser가 함수 실행 전 해당 함수를 한번 훑음 자바스크립트 함수는 실행되기 전에 함수 안에 필요한 변수값들을 모두 모아서 유효 범위의 최상단에 선언 정보를 기억하고 있다가 실행 실제 메모리나 코드의 변화는 x 변수 생성 단계 : 선언 -> 초기화 -> 할당 var로 선언한 변수는 호이스팅 시 undefined로 변수를 초기화함 ..

카테고리 없음 2022.03.23

[JavaScript] Node.Js

Node.js Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임 🔔 런타임: 특정 언어로 만든 프로그램을 실행할 수 있는 환경 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능 이벤트 기반 libuv 라이브러리 사용 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식 이벤트가 발생하면 리스너에 등록해둔 콜백함수를 호출 이벤트가 끝난 후 노드는 다음 이벤트가 발생할때까지 대기 이벤트 루프 여러 이벤트가 동시에 발생했을 때 어떤 순서로 콜백함수를 호출할지 이벤트루프가 판단 이벤트 종료까지 처리작업을 반복하기 때문에 루프라고..

[생활코딩] React

React 복잡한 코드를 숨기고 사용자 정의 태그(컴포넌트)를 만들어 부품처럼 사용할 수 있도록 해줌 1. 개발환경 - node.js 설치 - vscode를 사용하여 개발 - 터미널에 npx create-react-app my-app 입력 - 설치가 완료되면 npm start로 시작 🔔 npm: 자바스크립트를 위한 패키지 관리자, 런타임 환경 Node.js의 기본 패키지 관리자 이다. - index.js 파일에 코드를 작성 , 각 기능을 구현한 여러 js파일을 import하여 사용 - npm run build : 배포판을 생성 - npx serve -s build: 배포 서버를 생성 2. 컴포넌트 생성 컴포넌트(함수형) 이름은 대문자로 시작 컴포넌트 생성 전 코드 //기존의 코드 function App(..

[Javascript] React

React 공식 홈페이지: https://ko.reactjs.org/ React – 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리 A JavaScript library for building user interfaces ko.reactjs.org 1. React? 사용자 인터페이스를 구축하기 위한 선언적이고 효율적이며 유연한 JavaScript 라이브러리 프론트엔드 라이브러리: 동적인 웹페이지를 효율적으로 관리하기 위해 사용 배우기 쉽고, 복잡함이 적음 복잡한 UI를 쉽게 구성하도록 도와줌=> 사용자의 View에 초점 선언형: 높은 생산성을 보장 컴포넌트 기반 : 여러 부분을 분할하여 코드의 재사용성과 유지보수성을 증가 🔔 컴포넌트: 하드웨어처럼 독립적인 기능을 수행하는 단위 모듈, re..