본문 바로가기

전체 글

(76)
[클린코드] 형식 맞추기 형식 맞추기 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실하게 따라야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야 한다. 필요하다면 규칙을 자동으로 적용하는 도구를 활용한다. 형식을 맞추는 목적 코드 형식은 중요하다! 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무이다. 오늘 구현한 코드의 가독성은 앞으로도 바뀔 코드의 품질에 지대한 영향을 미친다. 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다...
[클린코드] 함수 함수 작게 만들어라 함수는 작을수록 좋다. 좋은 함수를 가진 코드 예시 public static String renderPageWithSetupsAndTeardowns( PageData pageData, boolean isSuite) throws Exception { if (isTestPage(pageData)) includeSetupAndTeardownPages(pageData, isSuite); return pageData.getHtml(); } 블록과 들여쓰기 if문/else문/while문 등에 들어가는 블록은 한 줄이어야 한다. 들여쓰기 수주은 1단이나 2단을 넘어서면 안 된다. 중첩구조가 생길만큼 함수가 커져서는 안 된다. 한 가지만 해라 함수는 한가지를 해야한다. 그리고 그 한가지를 잘 해야 ..
[Javascript] Javascript 변수 - var, let, const JavaScript 변수 CPU에서 연산을 수행하고, 데이터는 memory에 저장되어 있다. CPU가 메모리에 엑세스할 때 바이트 단위로 엑세스를 하는데, 여기서 memory cell은 1바이트씩 이루어진 메모리의 공간을 의미한다. 메모리의 주소는 16진수로 시작된다. 메모리에 데이터를 가져와서 CPU가 특정 연산을 수행한 후 결과를 새로운 공간에 저장한다. 메모리를 넣고 빼고 저장하기 위해서는 메모리의 주소를 알아야한다. 메모리 주소는 쉽게 알 수 없고, 메모리에 직접적인 접근이 어렵기 때문에 메모리 주소를 reference를 할 수 있는 변수를 사용해야 한다. (C언어를 제외한 대부분의 언어들은 메모리에 직접 접근이 어렵다.) 변수(식별자) 변수 → 식별자(identifier) 식별자가 가지고 있는 ..
[Javascript] 데이터 타입 데이터타입 기본적인 용어 1. literal (리터럴) 특정 값을 나타내기 위해 사람이 이해할 수 있는 문자, 약속된 기호, 기호를 이용하는 notation(표기법) 1 ) 3 - 숫자 literal 2 ) 'Hello', "Hello", `Hello`(ES6에 새롭게 표현된 문자열) - 문자literal 3 ) null(개발자가 직접 사용하는 값) - null literal 4 ) undefined(변수가 있는데 아직 초기화가 이루어지지 않았다는 것을 의미) -undefined literal 5 ) {'name' : 'kim'} - 객체 literal 6 ) [1, 2, 3] - 배열 literal 7 ) function( ){ } -함수 literal 2. statement(문) - 프로그램의 최소 ..
[Javascript] History of Javascript, ES6 수업에 들어가기 앞서 수업 과정 ECMAScript -> React -> Java -> Database -> Servlet -> Spring History of Javascript 자바스크립트는 웹에서 사용 가능한 목적으로 prototype 기반 함수형 언어로 만들어졌다. 자바스크립트는 자바와 연관은 없으며, 이름만 자바스크립트로 불려졌다. 당시, 자바스크립가 처음 생기고 이 언어를 가지고 표준화를 진행하려고 했다. 이때, 표준화를 비영리 표준기구인 ECMA에서 진행하였고, ECMAScript라는 이름으로 표준화가 진행된다. Javascript와 ECMAScript가 같다고 볼 수 있을까? 같지 않다. JavaScript는 ECMAScript와 환경에 따른 알파가 합쳐진 개념이다. 흔히 말하는 JavaS..
[Javascript] 객체(2) 객체는 Property의 집합 property는 property attribute(속성)를 가진다. Javascript 객체는 내부 slot과 내부 method를 가지고 있다. ( 이것도 역시 property라고 할 수 있다 ) 내부 slot과 내부 method는 개발자가 직접적으로 사용할 수 없다. ( Javascript Engine에 의해 사용이 가능하다 ) 내부 slot [ [ ... ] ] 내부 method [ [ ... ] ] obj.__poroto__ 를 사용하면 직접적으로 내부 slot에 접근할 수 있다. obj.__poroto__ 는 [[Prototype]]에 접근할 수 있다. property attribute property를 생성할 때 해당 property의 상세를 나타내는 값이다. (..
[Javascript] 스코프 스코프(Scope) 식별자가 유효한 범위를 의미한다. 스코프 체인(Scope chain) 자바스크립트 엔진이 identifier을 찾을 때 사용하는 매커니즘을 의미한다. 모든 스코프는 global 스코프와 연결되어 있다. Javascript 엔진은 코드를 실행할 때 Context(문맥)을 고려해서 실행한다 현재 실행중인 코드가 어디에 있는 코드이고 코드 주변 정보를 파악해서 실행한다는 의미이다. ≫ lexical Environment → execution context 거의 대부분의 언어(Javascript포함)는 Lexical Scope를 사용한다 동적스코프 Dynamic Scope 함수가 호출되었을 때, scope를 함수가 호출된 곳을 기준으로 설정 정적 스코프 Static Scope, Lexical..
[Javascript] 함수 Javascript의 함수는 객체이다 function(함수) 일련의 과정을 수행하기 위한 statement를 { }(중괄호)를 이용해서 하나의 실행 단위로 만들어 놓은 것이다. 함수를 사용하려면 함수를 정의하고 호출(call, invoke)해서 사용한다. 함수 사용 목적 반복적인 코드를 함수화 시키면 1. 유지보수가 좋다. 2. 오류 발생률이 적어지고 그에따라 신뢰도가 높아진다. 함수의 정의(definition) 이름이 있는 함수는 named function (기명함수) 이름이 없는 함수는 anonymous function (익명함수) - literal로 변수에 저장할 때 많이 사용한다. 기명함수(이름 있는 함수) function add(x, y){ // 함수이름과 파라미터(매개변수) return x +..