본문 바로가기

Web

(3)
[JavaScript] EventLoop와 비동기 동작 자바스크립트는 기본적으로 단일쓰레드에서 동작한다. 하지만 주로 웹에 쓰이는 언어다보니, 단일쓰레드에서 동기적으로만 동작한다면 이런저런 문제가 발생할 수 있다. 외부에서 용량이 큰 데이터를 받아서 띄워주는 경우를 예로 들어보자. 만약 데이터를 받는 시간이 밀리세컨드 단위라면 동기적으로 실행되어도 큰 문제는 없을 것이다. 하지만 받는 시간이, 1, 2초나 그 이상의 시간이 걸리는 경우, 최악의 경우엔 데이터 파일 하나 때문에 웹페이지 전체를 띄우지 못하는 경우가 생길 수 있다. 이러한 문제상황에 대비해서, 자바스크립트에서는 단일쓰레드에서도 비동기적인 프로그래밍이 가능하도록 몇가지 장치를 해두었는데, 그것이 Event Queue와 Event Loop이다. Call Stack 사실 Call Stack은 비단 자..
자주 묻는 Programming 질문들 오버로딩 vs 오버라이딩 ...더보기 오버라이딩은 상위 클래스, 혹은 인터페이스의 메서드를 알맞게재정의 하는것. 오버로딩은 동일메서드에 대해 다른 인자를 받는 경우에 대해 중복정의하는것. 인터페이스 vs 추상클래스 ...더보기 인터페이스는 함수의 구현을 강제하기 위해. 추상클래스는 해당 추상클래스를 상속받아서 기능을 이용하고 확장시키는데 있음. 가비지 컬렉터? ...더보기 언제 실행되는가? JVM은 메모리를 부여받고 프로그램들을 실행하다가 **메모리가 부족해지는 순간**이 오면 OS에게 추가로 메모리를 요청한다. 바로 이 메모리를 더 달라고 요청하는 때에 가비지 콜렉터가 실행된다. 또한 서버의 경우 24시간 돌아가는데 이 때는 JVM이 한가할 때 가비지 콜렉터가 수행된다. 가비지컬렉터는 주로 주소를 잃어..
Java 개발자 입장에서 보는 JavaScript 0. 들어가며 자바와 자바스크립트는 사실 이름만 비슷할 뿐 전혀 다른 언어라고 해도 과언이 아니다. 변수 선언시 자료형을 명시하지 않고, 코드가 간결하며, 함수를 1급객체로 취급한다. 이런점에서 보면 자바스크립트는 자바보다는 오히려 최신언어인 파이썬, 스위프트 등과 더 가까운 모습을 보인다. 하지만 그럼에도 난 자바 (초보)개발자다. 가장 초기에 배운 언어도 자바고, 자주 쓰는 것도 자바고, 알고리즘 문제도 자바로 푼다. 그렇기 때문에 어떤 언어를 배우던 항상 자바를 중심에 두고 다른 언어와 비교하며 학습한다. 본 글도 자바에 대한 애정이 듬뿍 들어가있다. 큰 틀에서는 자바스크립트에 대한 학습내용이지만, 거의 모든 부분에 "자바"라는 단어가 들어가며 각 개념들을 자바와 비교해가며 해석하고 있다. 또한 스..