본문 바로가기

분류 전체보기191

[javascript] event loop - 런타임의 이해 목차 자바스크립트 엔진 런타임 환경 정리 참조 링크 싱글 스레드 기반의 자바스크립트는 어떻게 비동기 처리가 가능할까요? 왜 setTimout 0을 넣어주면 해결이 될까요? 결론부터 얘기하면 web API, task que, eventLoop이 있기 때문에 가능합니다. 이제 자세히 설명해보겠습니다. 자바스크립트 엔진 싱글스레드 기반 자바스크립트는 싱글 스레드 기반의 언어입니다. 하나의 힙, 하나의 콜스택을 가지기 때문에 한 번에 한 가지 일밖에 할 수 없습니다. 만일 서버에 요청하는 함수가 실행되었다면 응답이 올 때까지 다음 동작은 불가능한 것이 원칙입니다. 힙 (memory heap) 동적으로 생성되는 객체들이 할당, 구조화되지 않은 넓은 메모리 공간 콜 스택 (call stack) 함수 실행시 push.. 2022. 1. 25.
강변역에서 바라본 한강의 겨울 겨울에 접어드니 나날이 사진찍기 너무 힘듭니다. 날씨가 따뜻해지면 미세먼지가 심하고 미세먼지가 좀 좋아지면 날씨가 너무 추워집니다. 그런데 오늘, 정말 오랜만에 날씨가 너무 좋아서 퇴근하자마자 카메라를 들고나갔습니다!! 강변입니다. 강변은 2호선이 지나가는 강변역 수방사 군인을 포함한 많은 분들이 찾는 동서울터미널 강변 테크노마트 가 모여있는 북적북적 바쁜 동네입니다. 항상 보이는 도로 한가운데에 있는 저 사다리는 언제 타는걸까요. 날씨가 따뜻한 데에도 한강이 다 녹지 않는 걸 보면 올해 한파의 강도가 가늠됩니다. 한강 위로 걸어 다니는 큰부리큰기러기. 발 시리겠다. 사진 찍고 있는데 앞에 앉아서 가만히 있던 친구입니다. 새삼 월드타워가 너무 커보이네요. 강변역에 들어오는 2호선 열차에는 퇴근하는 분들로.. 2022. 1. 24.
동기와 비동기 (synchronous, Asynchronous ) 목차 동기 - synchronous 비동기 - Asynchronous 정리 javascript의 ajax, JAVA 외부 API 등을 호출하다 보면 데이터를 주고받을 때 동기 방식 혹은 비동기 방식으로 할지 정합니다. 각각의 정의와 특징을 알아보고 비교해봅시다. 동기 - synchronous 요청과 결과가 동시에 일어난다는 것입니다. 요청을 했으면 응답이 주어질 때까지 대기합니다. 위 화면에서 "확인" 버튼을 누르면 다음과 같은 프로세스가 이뤄질겁니다. 현재 비밀번호가 일치하지 않는다면 3번까지만 진행됩니다. 즉 1번 요청에 대한 응답이 이뤄져야만 그다음 4번 요청을 하게 됩니다. 동시에 일어난다는 것은 요청에 따른 응답(결과)이 동시에 일어난다는 의미입니다. 따라서 위 프로세스는 아래와 같이 순차적으로.. 2022. 1. 24.
눈 쌓인 강남 2022. 1. 23.
System.out.println 보단 logger System.out.println API 패키지 : java.lang (Java 기본 API) System.out.println("Hello World!"); 추후 logger를 배우게 되면서 위 API를 호출하는 것이 아니라 여러 JAVA 로깅 라이브러리 (log4j2, logback) 중 하나를 선택하여 로깅을 하게 됩니다. Logger 라이브러리 : slf4j, log4j2, logback 등 import org.slf4j.Logger; import org.slf4j.LoggerFactory; ... private static final Logger logger = LoggerFactory.getLogger(HomeController.class); ... logger.debug("Hello Worl.. 2022. 1. 18.
[TOMCAT] 다중 Context(톰캣) 세션 충돌 문제 이슈 하나의 서버에 포트를 달리하여 여러 프로젝트를 운영하는 경우 (1 IP, 1 Tomcat, multiple Context) 하나의 서버에 여러 톰캣을 설치하여 여러 프로젝트를 운영하는 경우 (1 IP, multiple Tomcat, multiple Context) 위 2가지 경우에 서로 사이트를 교차해서 접속하다보면 세션이 종료(충돌)되는 경우가 발생한다. 원인 이는 WAS가 JESSIONID 쿠키를 여러 Context에 발급해주면서 발생하는 문제이다. * Context = Tomcat (was)에 올라가는 하나의 web aplication 해결방안 톰캣이 각 Context의 JESSIONID를 다른 이름으로 발급해주도록 설정해준다. ../tomcat/conf/server.xml .... ... 2022. 1. 17.