본문 바로가기

개발 관련78

6. 객체 지향 프로그래밍 다루는 내용 객체 프로퍼티의 이해 객체의 이해와 생성 상속의 이해 1. 객체 프로퍼티의 이해 객체는 특별한 순서가 없는 값의 배열 (key-value 쌍의 그룹) 가장 단순한 방법은 var person = new Object(); person.name = "snack"; person.sayName = function() { console.log(this.name) }; var person = { name : 'snack', sayName: function() { console.log(this.name); } }; 프로퍼티에는 데이터 프로퍼티와 접근자 프로퍼티 두 가지가 있음. 데이터 프로퍼티에는 [[Configurable]] - 프로퍼티의 속성을 바꾸거나 접근자 프로퍼티로 변환할 수 있음을.. 2022. 7. 13.
5. 참조 타입 다루는 내용 객체로 작업하기 배열 생성하고 조작하기 자바스크립트의 데이터 타입 이해 원시 데이터 및 원시 래퍼로 작업하기 1. 객체로 작업하기 객체란 참조 타입이며 클래스와는 다르다. 1-1. Object 타입 가장 많이 사용하는 타입으로 new 연산자 혹은 객체 리터럴로 생성할 수 있다.1) var person = new Person(); 2) var person = {}; 객체 리터럴 표기법을 사용하면 Object 생성자를 호출하지 않으며, 프로퍼티가 여러개 일 때 가독성을 위해 사용하길 권함. 1-2. Array 타입 배열의 크기는 동적으로 할당되며, 배열 element 에 어떤 데이터 타입도 가능 Object 와 비슷하게 new 연산자 혹은 배열 리터럴로 생성 가능1) var colors1 = n.. 2022. 7. 13.
4. 변수, 스코프, 메모리 다루는 내용 변수의 원시값과 참조값 실행 컨텍스트의 이해 가비지 컬렉션의 이해 1. 원시값과 참조값 원시값은 기본타입(문자열, null, undefined etc), 참조값은 메모리에 저장된 객체(객체의 프로퍼티) 대부분의 언어에서는 문자열을 참조값으로 침 (Ex. Java String) 참조값의 경우 동적 프로퍼티가 가능 (원시값은 불가) 1) 참조값 var person = new Object(); person.name = "snack"; console.log(person.name); // snack 2) 원시값 var name = "snack"; name.age = 29; console.log(name.age); // undefined 값을 복사할 경우에도 원시값과 참조값은 서로 다름 1) 원시값 /.. 2022. 7. 13.
3. 언어의 기초 다루는 내용 문법 데이터 타입 제어문 함수 1. 문법 대소문자를 구분 식별자 -> 변수, 함수, 프로퍼티, 함수 매개변수의 이름으로 관습적으로 카멜 케이스를 사용 camelCase 스트릭트 모드 (엄격하게 체크하는? 것으로 자바스크림트가 실행되는 방식이 매우 많이 바뀜) 'use strict' 문장 마지막에 세미콜론을 꼭 써야 하는 건 아니지만, 세미콜론을 쓰길 권장 제어문에서 문장 하나만 실행하더라도 항상 코드 블록을 쓰길 권장if(test) { console.log(test); } 키워드 : 특정 조작 목적 (ex. break, case etc) 예약어 : 키워드로 쓸 가능성이 있음 (ex. abstract, enum etc) 키워드와 예약어는 식별자든 프로퍼티 이름에든 쓰지 않는 편이.. 2022. 7. 13.
2. HTML 속의 자바스크립트 다루는 내용 type language 대체, 콘텐츠 타입(마임 타입) 지정 application/javascript, text/javascript(생략가능, default값) 사이에 스크립트 코드가 있고 src 속성을 사용하고 있다면 인라인 코드는 무시됨 일반적으로 자바스크립트 코드를 모두 요소 안에 페이지 콘텐츠 마지막에 쓰는데, 자바스크립트 파일을 전부 defer 속성을 설정하면 해당 요소를 만나는 즉시 코드를 내려받지만 실행은 지연한다. 외부 스크립트를 불러올 때만 유효하며, 인라인 스크립트의 defer 속성은 무시한다. async 속성은 defer 와 같이 외부스크립트에만 적용된다는 점은 비슷하나, 스크립트가 순차적으로 실행된다는 보장이 없다. 비동기는 페이지의 load 이벤트 전에는 실행되지만,.. 2022. 7. 13.
13. 동시성 동시성이 필요한 이유? 동시성은 커플링(결합)을 없애는 전략이다, 즉 무엇과 언제를 분리하는 전략이다 단일 스레드의 경우 호출 스택을 살펴보면 프로그램 상태가 곧바로 드러난다. 응답 시간과 작업 처리량 혹은 한 번에 한 사람만 처리하는 경우, 정보를 대량으로 분석하는 경우, 이런 경우를 위해 동시성이 필요하다 할 수 있다. 미신과 오해 동시성은 성능을 높여준다 (때때로 높여준다, 각 스레드가 독립적인 행동을 취할 때) 동시성을 구현해도 설계가 바뀌지 않는다 (단일과 다중 스레드 시스템은 설계가 판이하게 다름) 웹 또는 EJB 컨테이너를 사용하면 동시성을 이해할 필요가 없다 (오히려 더 알아야 한다. 동시 수정, 데드락 등을 피하기 위해) 타당한 생각 동시성은 다소 부하를 유발한다 (성능 측면에서 부하가 .. 2022. 7. 13.