1. windows setx 변수명 "저장할값" 2. ubuntu vi /etc/environment 변수명="값" 위와 같은 형식으로 작성하고 저장 3. centos vi /etc/profile.d/myenvvars.sh export 변수명="저장할값" 위와 같은 형식으로 작성하고 저장
들어가며 Spring에서 Bean은 Spring IoC(Inversion of Control) 컨테이너에 의해 관리된다. 이러한 Bean들은 일반적으로 Application의 서비스 계층, 데이터베이스 연결, 메시지 처리 등의 기능을 수행하는데 Spring에서 개발자가 정의한 대부분의 Bean들은 싱글톤(Singleton) 패턴으로 관리된다. IoC 컨테이너는 하나의 인스턴스만 생성하고, Application의 모든 부분에서 해당 인스턴스를 공유하는 것이다. 물론 Bean의 Scope 설정에 바꾸어주면 여러개의 인스턴스를 생성하여 관리할 수도 있긴하다. - Singleton으로 관리되는 Case 1. @Service 어노테이션 보통 @Serice 어노테이션이 붙은 클래스는 어떠한 클라이언트 요청에도 독립..
어떠한 Web Application에서 Spring Security사용하여 로그인을 Form Login 방식으로 구현했다면 해당 Application의 로그인 요청을 일반적으로 UsernamePasswordAuthenticationFilter라는 필터에 의해 처리된다. 사용자가 로그인폼에서 작성한 아이디와 비밀번호를 제출하면, 해당 formData를 HTTP 요청과 함께 서버로 전송하는데 Spring Security는 Servlet Filter 기반의 보안체인들을 사용하기 때문에, 이러한 요청들이 여러가지 보안 관련 필터들을 거쳐오게 된다. 그 많은 필터들 중 UsernamePasswordAuthenticationFilter는 POST 방식으로 들어온 로그인 요청을 처리하는 역할을 하는데 아래와 같은 작..
Spring에서 Filter와 Interceptor는 모두 요청과 응답을 중간에 가로채서 처리하는 목적으로 사용된다. 하지만 이들 사이에는 몇가지 주요한 차이점이 존재한다. 1. 작동위치 - Filter : 위 그림에서 보이는 것처럼 필터는 Servlet Contrainer level에서 작동한다. 즉 Spring Context가 시작되기 전에 이미실행되기 때문에 Spring과 상관없이 웹 App의 모든 요청/응답에 대해서 동작할 수 있다. - Interceptor : 인터셉터는 Spring context level에서 작동한다. 따라서 Spring MVC의 DispatcherServlet 이 컨트롤러를 호출하기 전후로 동작한다. 따라서 특정 컨트롤러 또는 핸들러 매핑을 타겟으로 설정할 수 있다. #핸들..
SQL문의 쿼리실행은 크게 Parsing, Exexcution, Fetch의 세가지 단계로 나누어 볼 수 있다. 1. Parsing(구문분석) 단계 해당 단계에서는 SQL 쿼리문을 분석하여 구문을 해석하는 단계로서 DB는 해당 쿼리가 문법적으로 올바른지 확인하고 의미를 분석하는 단계이다. 이 과정에서 쿼리의 실행 계획도 생성하고 쿼리 최적화도 이루어진다. 2. Execution(실행) 단계 Parsing이 완료되면 파싱된 쿼리를 기반으로 실제 데이터를 검색하거나 조작하는 단계이다. FROM 절에서 명시한 테이블이나 뷰에서 데이터를 가져오고 WHERE절의 조건에 따라 행( ROW)를 필터하며, GROUP BY와 집계 함수를 사용하여 데이터를 그룹화하고 집계한다. 3. Fetch (검색) 단계 Executi..
본인이 작업하는 환경에 node.js가 설치되어있다면 굳이 크롬, 엣지 등과 같은 브라우저의 도움없이도 js파일을 실행시킬 수 있다. 아래와 같은 javascipt파일이 있다. 간단한 생성자 함수 예제 코드로 실행되면 mike, jane, tom이 console로 출력되어야한다. 위와같이 node 실행시킬js파일명.js 으로 실행시켜서 확인해볼 수 있다.