개발 언어
Java의 변수와 메모리 영역
Java의 변수 Class 변수 class가 메모리에 올라갈 때 생성 → 딱 한번만 생성됨, 인스턴스 생성 안해도 접근 가능. instance변수에 static을 붙인 것. instance 변수 instance가 생성될 때 (new / compiletime) local 변수 변수 선언문이 실행될 때(runtime) 위 3가지 변수가 올라가는 메모리 영역 Class변수 → Method area 이 영역에서 생성되는 변수는 프로그램이 종료될 때 까지 할당된 메모리를 점유한다. 이 때문에 메모리의 비효율성을 발생시킨다. Android 에서 static 남발하면 메모리 누수가 발생. instance변수 → Heap 지역변수는 초기화가 자동적으로 이루어지지 않는다. local 변수 → Stack Static의 의..
Heap 메모리 vs Stack 메모리
Heap 메모리 vs Stack 메모리 Stack 메소드 호출시에 처리되는 매개변수, local변수 등이 저장되며, Stack구조로 되어있다. Heap 배열이 생성되는 공간이며 GC는 Heap 메모리 공간 내에 object 중에 참조값이 없는 object에 대해서 실행하여, heap 메모리 영역을 청소한다. 또한, heap 메모리 영역의 모든 object는 프로세스(application) 내에서 전역적으로 액세스가 가능하며 참조가 가능하다. Method Area Class정보를 처음 메모리 공간에 올릴 때, 초기화되는 대상을 저장하기 위한 메모리공간.(메소드 정보,class type정보 등) class 변수도 함께 저장하는데, 그것은 static variable과 같다.
Javascript #5 (Scope)
스코프(Scope) 자바스크립트에서 스코프(Scope)란 어떤 변수들에 접근할 수 있는지를 정의한다. 스코프는 전역 스코프와 지역 스코프, 두 가지로 나뉜다. 전역 스코프 전역 스코프는 변수가 함수 바깥이나{}바깥에서 선언되었다면, 전역 스코프에 정의된다. const globalVariable = 'variable' cs 위와같이 전역 변수를 선언한다면 코드 모든 곳에서globalVariable이라는 변수를 사용할 수 있다. 당연히 함수 내에서도 사용이 가능하다. 아래 코드를 보자. 1 2 3 4 5 6 const hello = 'Hello Marcus' function marcusHello () { console.log(hello) } console.log(hello) // 'Hello Marcus!'..
Javascript #4 (Hoisting)
Hoisting 자바스크립트의 변수(variable)에 대해서 조금 깊게 이해하기 위한 개념 중 하나이다. Javascript의 Hoisting 우리가 무의식적으로 사용하고 있을 것이다. 모든 변수 선언은 호이스트된다. 호이스트란, 변수의 정의가 그 범위에 따라 선언과 할당으로 분리되는 것을 의미한다. 쉽게 말하면 변수가 함수내에서 정의되었을 경우 선언이 함수의 최상위로, 함수 바깥에서 정의되었을 경우는 전역 컨텍스트의 최상위로 변경된다. 코드로 확인해 보겠다. 1 2 3 4 5 6 7 8 9 10 const hoisting = () => { console.log("First name:", name); var name = "Marcus"; console.log("Last:", name); } hoisti..
Javascript #3 (alert, console)
- JS file은 항상 body 아래에 있어야 함. - sciprt는 이렇게 닫아줘야 함. 1 2 3 4 5 6 7 8 9 10 11 12 Hello Javascript Hello World! Colored by Color Scripter cs Javascript - alert index.js에 아래와 같이 입력 1 alert("Hello! This is Javascript!"); cs - index.html을 실행시키면 아래와 같이 alert창이 실행되는 것을 확인할 수 있음. - index.html에서 정상적으로 index.js를 읽었다는 것. Javascript - console.log index.js에 아래와 같이 입력 1 console.log("Hello! This is Javascript! ..
Javascript #2 (ECMAScript, Vanilla JS)
ECMAScript Specifiacation 같은 것. ES5는 ECMAScript5를, ES6는 ECMAScript6를 의미.(버전을 의미) Javascript는 중앙집권화 되어있어서, 업데이트를 하게 되면 모든 브라우저에서 반영이 됨. 일종의 안내책자 같은 것. Vanilla JS Javascript의 한 종류로, Library 없는 것을 의미.(Vanilla는 비격식으로 평범한, 특별할 것 없는 이라는 뜻을 가진 형용사) 브라우저를 통해 우리(사용자)에게 제공된 Javascript. 웹의 기초중의 기초. DOM에서 elementID를 select하는 속도 비교 (이미지출처 : http://vanilla-js.com/) Javascript는 언어고 ECAMScript는 Specifiacation이다..
Javascript #1 (Javascript)
Javascript? - Web에 쓰이는 하나 뿐인 프로그래밍 언어. - 객체(Object)기반의 스크립트(scrip) 언어. - HTML로는 웹의 내용을 작성하고 CSS로는 웹을 디자인한다면, 자바스크립트로는 웹의 동작을 구현. - 웹사이트를 interactive로 만든다는 것. - 컴퓨터나 스마트폰에 포함된 대부분의 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있음.Javascript로 하는 일 HTML 페이지 변경 및 HTML element와 content의 추가/제거. CSS 및 HTML element의 스타일 변경. 사용자와의 상호작용, Form의 유효성 검증. 마우스와 키보드 event에 대한 스크립트 실행. 웹 브라우저 제어, 쿠키 등의 설정/조회. AJAX를 이용한 웹 서버와의 통신...