Language(9)
-
Event Loop
콜 스택(Call Stack)함수 호출 정보를 쌓아두고, 실행이 끝나면 다시 이전 위치로 돌아갈 수 있게 한다.자바스크립트는 싱글 스레드 언어로, 한 번에 하나의 작업만 처리할 수 있기 때문에 동기적으로 함수가 호출되고 종료되는 순서를 정확하게 관리한다.에러가 발생했을 때, 스택 내부의 함수 호출 정보를 바탕으로 경로를 추적한다. 브라우저의 에러 메시지에서 Stack Trace가 콜 스택의 내용이다.재귀 함수 등 복잡한 호출 구조에서도 실행 컨텍스트를 쌓아두어 올바르게 동작할 수 있다. 매크로태스크 큐(Macrotask Queue)Task Queue, Event Queue라고도 부른다.SetTimeout, setInterval, DOM 이벤트, I/O, UI 렌더링 등에서 발생한 비동기 콜백 함수가 대기..
2025.05.09 -
hoisting
let변수의 scope가 선언된 블록({})으로 한정되며, 동일한 이름의 변수 재선언 불가.var 변수처럼 호이스팅이 발생하지만, 초기화 전까지 사용할 수 없음.const : let의 속성 + 불변성 hoisting자바스크립트 엔진이 각 스코프의 실행 전에 선언을 미리 처리.코드 실행 전에 변수, 함수, 클래스, import 선언문이 해당 스코프의 맨 위로 끌어올려진 것처럼 동작.var : 선언만 호이스팅 되고, 값 할당은 호이스팅되지 않아 선언 전에 접근하면 undefined 출력.TDZ(Temporal Dead Zone) : let, const로 선언한 변수는 호이스팅은 되지만, 초기화 전에 접근할 수 없어 ReferenceError가 발생하는 구간.함수 : 전체가 호이스팅되어, 선언 전에 호출해도 ..
2025.05.08 -
rt.jar과 ee.jar
jre에는 rt.jar가 내장되어 있다.하지만 servlet을 실행하려면 ee.jar의 구현체가 있어야 한다.ee.jar는 interface 형태이기 때문에 구현체인 컨테이너가 필요하다. 예를 들어 tomcat.여기까지가 내가 현재 알고 있는 정보.이제 조금 더 상세히 알아보자. jar(java archive)플랫폼 독립적인 파일 형식.자바 애플릿, 클래스 파일(.class), 이미지, 사운드 등 필요한 모든 구성 요소를 하나의 파일로 패키징하는 용도.zip 파일 포맷을 기반하여, 압축으로 파일 크기를 줄이고 다운로드 속도를 향상시킴으로써 네트워크 전송 및 배포가 효율적이다.생성 : JDK에서 제공하는 jar 명령어를 사용해 만들 수 있다.실행 : 실행 가능한 jar 파일은 Manifest에 Main-C..
2025.04.25 -
예외 처리(Exception Handling)
에러(Error)시스템 상에서 비정상적 상황이 발생한 오류.애플리케이션에서 해결할 수 없다.VirtureMachineError, OutOfMemoryError, ThreadDeath, StackOverflowError 등. 예외(Exception)사용자의 잘못된 조작이나 개발자의 코딩 실수 등 정상적인 프로그램의 흐름에서 벗어난 오류.발생했을 경우, 에러와 같이 프로그램이 종료되지만 예외 상황을 예측하여 방지할 수 있다.Throwable 클래스의 자식 클래스인 java.lang.Exception 클래스를 상속 받는다.실행 예외와 일반 예외로 나뉜다. 실행 예외(Unchecked Exception)런타임 시점에서 예외 발생이 확인된다.명시적인 예외 처리를 강제하지 않는다.예외 처리를 하는 것보다는 개발할 ..
2024.10.31 -
JUnit 5 테스트 코드
JUnit 5Java에서 독립된 단위 테스트(Unit Test)를 지원하는 프레임워크Java8부터 지원 단위 테스트클래스나 함수 등 작은 단위로 나누어 독립적으로 테스트함으로써 단위별 신뢰성을 확인한다.기존 기능에 영향을 주지 않는다. JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit VintageJUnit PlatformJVM에서 테스트 프레임워크를 시작하기 위한 기반. 플랫폼에서 실행되는 테스트 프레임워크를 개발하기 위한 테스트엔진 API를 정의. 커맨드 라인에서 플랫폼을 실행할 수 있는 콘솔 런처 제공. 사용자 정의 테스트 엔진 생성.JUnit Jupiter JUit 5에서 테스트 및 확장 코드를 작성하기 위한 프로그래밍 모델과 확장 모델의 결합체.Jupiter..
2024.10.27 -
예외 처리_try, except, else, finally, raise
[점프 투 FastAPI] 2_04_2에서 db 세션 객체를 생성하고 Connection Pool에 반환하는 동작을 자동화하는 제너레이터를 작성한다.@contextlib.contextmanagerdef get_db(): db=SessionLocal() try: yield db finally: db.close()여기서 try, finally는 뭘까? Java에서 사용해 봤던 기억은 있는데 확실히 알아보자. try가능하면 실행하고 오류가 발생하면 다음으로 넘긴다.if문과 비슷한 것 같다. 맞으면 실행하고 아니면 elif, else문으로 넘기는 것과 비슷해 보인다. excepttry와 except만 사용하면 try에서 어떤 오류가 발생한다면 except로 넘어간다.a ..
2024.03.26