Programming121 [javascript] event loop - 런타임의 이해 목차 자바스크립트 엔진 런타임 환경 정리 참조 링크 싱글 스레드 기반의 자바스크립트는 어떻게 비동기 처리가 가능할까요? 왜 setTimout 0을 넣어주면 해결이 될까요? 결론부터 얘기하면 web API, task que, eventLoop이 있기 때문에 가능합니다. 이제 자세히 설명해보겠습니다. 자바스크립트 엔진 싱글스레드 기반 자바스크립트는 싱글 스레드 기반의 언어입니다. 하나의 힙, 하나의 콜스택을 가지기 때문에 한 번에 한 가지 일밖에 할 수 없습니다. 만일 서버에 요청하는 함수가 실행되었다면 응답이 올 때까지 다음 동작은 불가능한 것이 원칙입니다. 힙 (memory heap) 동적으로 생성되는 객체들이 할당, 구조화되지 않은 넓은 메모리 공간 콜 스택 (call stack) 함수 실행시 push.. 2022. 1. 25. 동기와 비동기 (synchronous, Asynchronous ) 목차 동기 - synchronous 비동기 - Asynchronous 정리 javascript의 ajax, JAVA 외부 API 등을 호출하다 보면 데이터를 주고받을 때 동기 방식 혹은 비동기 방식으로 할지 정합니다. 각각의 정의와 특징을 알아보고 비교해봅시다. 동기 - synchronous 요청과 결과가 동시에 일어난다는 것입니다. 요청을 했으면 응답이 주어질 때까지 대기합니다. 위 화면에서 "확인" 버튼을 누르면 다음과 같은 프로세스가 이뤄질겁니다. 현재 비밀번호가 일치하지 않는다면 3번까지만 진행됩니다. 즉 1번 요청에 대한 응답이 이뤄져야만 그다음 4번 요청을 하게 됩니다. 동시에 일어난다는 것은 요청에 따른 응답(결과)이 동시에 일어난다는 의미입니다. 따라서 위 프로세스는 아래와 같이 순차적으로.. 2022. 1. 24. 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. 세션과 쿠키, JESSIONID 목차 쿠키와 세션이 왜 필요한가. HTTP 프로코톨의 2가지 특징 쿠키 (Cookie) 세션 (Session) 쿠키와 세션의 차이 쿠키와 세션이 왜 필요한가. HTTP 프로토콜의 2가지 특징 connectionless stateless 클라이언트 (브라우저)와의 통신 (request -> response)가 끝나면 연결을 끊어버립니다. (1.connectionless) 통신이 끊기고 나면 서로의 상태정보를 유지하지 않습니다. (2.stateless) 쿠키와 세션이 없다면 로그인후 페이지를 이동(request)할 떄마다 사용자는 로그인을 해야합니다. 클라이언트의 state(로그인 상태)를 서버에 알려주기 위해서말이죠. 쿠키 (Cookie) 쿠키는 클라이언트가 가지고 있는 텍스트 형식 데이터파일입니다. 쿠키.. 2022. 1. 14. JAVA logging framework (기본) - slf4j, log4j와 logback 목차 로깅이란? 로깅을하는 이유 log4j logback log4j2 slf4j (공통 추상체) log4j2 vs logback log4j2 보안 이슈 로깅이란? 시스템의 동작 시 상태 / 동작 정보 등을 시간의 경과에 따라 기록한 것을 로그, 이렇게 기록하는 행위를 로깅이라 함. 로깅을 하는 이유 로그는 프로그램 동작 과정, 기록 그 자체입니다. 로그를 통해 시스템의 동작 과정, 사용자의 이용 패턴 등을 분석할 수 있고 나아가 법적인 분쟁이슈, 증거자료 등에도 충분히 쓰일 수 있습니다. JAVA에서 많이들 사용하는 logging framework에는 크게 2가지(log4j, logback)가 있고 그 상위에 구현체 한가지 (slf4j)가 있습니다. 이 글에서는 이 것들을 명확히 구분하여 인식하고자 합니.. 2022. 1. 14. 이전 1 ··· 17 18 19 20 21 다음