입문자를 위한 자바스크립트 기초 강의_미니플젝01
생성자 객체를 생성할 때 사용하는 함수로서 ‘생성자 함수’라고도 부른다. 사용할 기능을 정의한 일반 함수와 생성자 함수 사이에 특별한 문법적 차이는 존재하지 않는다. 즉 함수도 생성자의 역할을 할 수 있는데 단, 생성자 함수는 목적이 객체 생성에 있다. 이런 생성자 함수는 자바스크립트가 제공하지 않는 유형의 데이터를 창조 할 수 있다는 점에서 쓸모있다. 여기서 중요한 키워드 하나!! 바로 this 키워드이다. this 키워드는 객체 그 자신을 의미하는데 이 키워드를 이용해 해당 객체의 속성이나 메소드를 추가할 수 있다. // 강아지를 표현하는 'Dog' 객체를 만들고 싶다. function Dog() { this.name = "콩이" this.breed = "시츄" } 생성자 함수는 ‘객체를 이렇게 만들..
2022.07.23
입문자를 위한 자바스크립트 기초 강의_JS기초04
* createElement&appendChild document의 createElement메소드는 지정된 이름의 HTML 요소를 만들어 반환해준다. document.createElement('div') document.createElement('a') document.createElement('p') 위와 같이 HTML 요소가 만들어지고 반환되었다고 해서 바로 웹브라우저 화면에 추가되는 것은 아니다. dom에다가 추가하는 작업을 해 주어야 하는데 이때 사용하는 것이 appendChild이다. 기본 사용법과 예제 코드는 아래와 같다. // 기본사용법 target.appendChild(자식으로 추가할 요소) // 예제 const p = document.createElemennt('p') document.b..
2022.07.23
01-1 리눅스의 이해
리눅스의 특징 오픈 소스 운영체제. 멀티유저, 멀티태스킹(작업이 없는 상태에서도 다른 작업이 cpu 점유 가능) 운영체제. 다중 스레드를 지원하는 네트워크 운영체제. 여기서 스레드란 프로세스 내에서 실행되는 작업을 의미하고, 프로세스는 프로그램이 CPU를 할당받아 업무 처리하는 즉 동적 상태를 의미. 여러 종류의 파일 시스템을 지원하는 운영체제(ex2, ex3, ex4, DOS, FAT16 FAT32, NTFS 등등) 리눅스의 장단점 유닉스와 완벽하게 호환 가능하며 POSIX 규격을 따르고 있음. PC용 운영체제보다 안정적. 특별한 사항을 제외하고 항상 켜 놓아도 안정적으로 운영됨. 하드웨어 기능을 효과적으로 사용. 즉 다른 운영체제보다 적은 양의 메모리를 필요로 함. SWAP 방식을 통해 램이 부족한 ..
2022.07.16
자바와 JUnit을 활용한 단위테스트_08
8장. 깔끔한 코드로 리팩토링하기. 낮은 중복성과 높은 명확성이라는 두 가지 목표를 합리적인 비용과 놀라운 투자 수익률로 달성할 수 있다. 단위 테스트를 만들면 이러한 목표에 도달할 수 있다. 이 장에서는 이런 목표를 마음에 두고 코드를 리팩토링 하는 방법에 대해 알아보도록 한다. 리팩토링 코드를 이리저리 옮겨서 시스템이 정상 동작함을 보장하는 것. 마음대로 코드를 바꾸는 것은 위험하다. 이런저런 방식으로 바꾸었을 때 적절한 보호 장치가 있는지 확인할 필요가 있는데 이것이 바로 테스트이다. 리팩토링의 가장 중요한 것은 이름짓기. 대상은 클래스, 메서드, 모든 종류의 변수들이다. 명확성은 코드 의도를 선언하는 것이고 좋은 이름은 코드 의도를 전달하는 가장 좋은 수단이다. 누군가가 메서드나 클래스명만 봐도 ..
2022.07.16
입문자를 위한 자바스크립트 기초 강의_JS기초03
* 함수 함수는 '호출될 수 있는 코드 조각'이다. 변수를 선언하고 값을 대입하면 변수를 값 대신 사용할 수 있는 것처럼 함수도 이와 동일하다. 함수를 선언하고 난 이후 코드 조각 대신 함수명을 사용할 수 있다. 그럼 이런 함수를 만드는 방법 함수선언식과 함수표현식에 대해 알아보자. 함수선언식은 아래와 같은 형태를 가지며 선언 이후 함수명은 중괄호 안의 기능 대신 사용할 수 있다! function 함수명() { //함수의 기능을 표현한 구문. 즉 쉽게 말하자면 코드 조각이 들어가는 곳. } 함수표현식 역시 선언 이후 함수명은 중괄호 안의 기능 대신 사용할 수 있고 형태는 아래와 같다. const 함수명 = function() { // 함수의 기능을 표현한 구문 } 이렇게 함수가 만들어졌다면 이제 만들어진..
2022.07.12
자바와 JUnit을 활용한 단위테스트_07
7장. 경계 조건: CORRECT 기억법 1. Conformance(준수) - 값이 기대한 양식을 준수하고 있는가? 2. Ordering(순서) - 값의 집합이 적절하게 정렬되거나 정렬되지 않았나? 3. Range(범위) - 이성적인 최솟값과 최대값 안에 있는가? 4. Reference(참조) - 코드 자체에서 통제할 수 없는 어떤 외부 참조를 포함 하고 있는가? 5. Existence(존재) - 값이 존재하는가? null이 아니거나 0이 아니거나 등등등,,,, 6. Cardinality(기수) - 정확히 충분한 값들이 있는가? 7. Time(절대적 혹은 상대적 시간) - 모든 것이 순서대로 일어나는가? 정확한 시간에,,
2022.06.19
입문자를 위한 자바스크립트 기초 강의_JS기초02
* null, undefined 그리고 boolean null 데이터는 '없다'라는 의미를 가진 데이터이다. 의도적으로 데이터가 없음을 나타내기 위해 사용하는 일종의 표현 수단이다. undefined는 아직 데이터가 정의되어 있지 않음을 의미하는 것이다. 변수 선언만 하고 값이 없는 상태. boolean은 데이터 타입 중 하나. true, false 단 두가지 값만 존재하는데 참인지 거짓인지 판별할 때 사용하는 데이터. * Document Object Model 웹브라우저는 HTML 문서를 해석하고 화면을 통해 해석된 결과를 보여주는데 이 과정을 우리는 '랜더링'이라고 한다. 랜더링의 과정에서 html을 트리 형태로 구조화해 표현하는 문서(객체)를 생성하는데 이것이 DOM이다. DOM은 또한 자바스크립트..
2022.06.11
자바와 JUnit을 활용한 단위테스트_06
6장. Right-BICEP: 무엇을 테스트할 것인가? 1. Right: 결과가 올바른가? 테스트 코드는 무엇보다도 먼저 기대한 결과를 산출하는지 검증할 수 있어야 한다. @Test public void answersArithmeticMeanOfTwoNumbers() { ScoreCollection collection = new ScoreCollection(); collection.add(() -> 5); collection.add(() -> 7); int actualResult = collection.arithmeticMean(); assertThat(actualResult, equalTo(6)); } ScoreCollection에 더 많은 숫자나 큰 수를 넣어서 테스트를 강화할 수도 있지만 이런 테스..
2022.06.11
자바와 JUnit을 활용한 단위테스트_05
5장. 좋은 테스트의 FIRST 속성. 단위 테스트를 주의 깊게 사용했을 때 많은 이점을 얻을 수 있다. 하지만 테스트 또한 유지 보수해야 하는 또 다른 코드이다. 테스트를 빛나게 하고 값어치를 하는 테스트를 만드는 데 도움을 주는 핵심 개념과 전술에 대해 알아보도록 한다. "FIRST"의 원리. F는 fast, I는 isolated, R은 repeatable, S는 Self-validating, T는 timely. Fast: 빠르다. 빠른 테스트는 코드만 실행하며(로컬에 있는 로직 코드만 실행함) 소요 시간은 수 밀리초 수준이다. 느린 테스트는 데이터베이스, 네트워크 호출처럼 외부 자원을 다루는 코드를 호출하고 수십, 수백 밀리 초가 걸리기도 한다. 물론 시스템이 커지면 단위 테스트도 실행하는데 오래 ..
2022.06.05