본문 바로가기

lombok에 대해 1. lombok이란? Lombok을 간단히 설명하면 컴파일 시 흔하게 코드를 작성하는 기능들을 완성해주는 라이브러리 getter, setter 등의 코드를 줄여서 취소한의 코드로 할수 있게함 2. lombok 관련 어노테이션 @Setter : setter 메서드를 만들어주는 역할을 @Data : @ToString, @EqualsAndHashCode, @Getter/©Setter, @RequiredArgsCtonstructor를 모두결합한 형태로 자주 사용되는 모든 메서드들을 한 번에 생성할 수 있다는 장점 @Log4j : 로그 객체를 생성
Context Switching 1. Context Switching이 무엇인가? 멀티프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 기존의 프로세스의 상태 또는 레지스터 값 (Context)을 저장하고 CPU가 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값(Context)을 교체하는 작업을 Context Switch(Context Switching)라고 한다 2. Context는 무엇인가? 사용자와 다른 사용자, 사용자와 시스템 또는 디바이스간의 상호작용에 영향을 미치는 사람, 장소, 개체등의 현재 상황(상태)을 규정하는 정보들을 말한다. android나 servlet등에서도 context가 있지만 OS에서 Context..
unit test에 대해 유닛테스트 사용법 : https://jkonury.tistory.com/196 1) 용어정리 - unit: 구성 단위 (여기서 말하는 구성단위는 프로그램의 기본 단위인 모듈) - JUnit: 자바용 단위 테스트 작성을 위한 산업 표준 프레임워크다, Java에서 독립된 단위 테스트를 도와주는 framework! - 모듈: 프로그램 내의 하나의 기능으로 생각하자(예: MS Word라는 프로그램이 있다는 가정하에 Word내에 있는 기능 중, 폰트 사이즈 선택 기능이 일종의 모듈이라 볼 수 있다) 2) unit test란? 유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. - 코드를 가능한 한 작은 단위로 실행해보는 테스트를 작성하는..
스프링 프레임워크에 대해 1. 스프링 프레임워크의 차별성 1-0) 스프링은 경량 프레임워크다. 스프링은 가장 성공적인 '경량(light-weight) 프레임워크' 이다. 스프링은 특정 기능을 위주로 간단한 jar 파일 등을 이용해서 모든 개발이 가능하도록 구성된 프레임워크이다. 1-1) 복잡함에 반기를 들어서 만들어진 프레임워크 엔터프라이즈급 프레임워크들의 가장 큰 문제점으로는 복잡성으로 보고 있다. 다양한 경우를 처리할 수 있는 다양한 기능을 가지도록 만들다 보니 하나의 기능을 위해서 너 무 많은 구조가 필요한상태가 되었다. 이러한복잡성을 해결하기 위해서 나온 경량화된 프레임 워크가 스프링이다. 일반적인 Java의 클래스와 인터페이스를 이용하는 구조이기 때문에 진입 장벽이 높지 않았고,EJB(Enterprise JavaBean..
maven이란? 1. maven이란? 빌드 도구인 maven의 주요 특징 중 하나는 의존 모듈(jar 파일) 관리에 있다. 메이븐의 경우 중앙 저장소(central repository)라고 불리는 서버로부터 필요한 jar 파일을 다운 로드 받아 의존 모듈을 관리한다. 라이브러리들을 편리하게 공유하고 다운받고자 나온 것이 메이븐이다. 즉, 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들 을 자동으로 다운 할 수 있다. jar파일을 직접적으로 다른이에게 보낼 필요 없이 pom.xml에 필요한 것을 명시해놓으면 네트워크 를 통해서 라이브러리를 매우 손쉽게 다운할 수 있다. Maven을 이용하게 된다면 코드 몇줄로 필요한 라이브러리를 작동시키고 그 라이브러리가 필요로 하는 다른 라이..
자바의 동작원리 1. 자바의 동작 원리 관점1 아래는 소프트웨어를 구성하는 양대 개념이다. 1-1. source, code, language 라는 원인의 표현 아래는 같은 대상을 바라보는 관점에 따라 다르게 사용하는 표현들 1) 원인을 나타내는 표현중에 하나인 source - 원천2) 부호 기호를 나타내는 코드 code3) 약속이라는 측면에서의 언어라는 표현 language 1-2. source, code, language의 원인을 통해 만들어진 결과의 표현 1) application - app2) program 자바라는 컴퓨터 프로그래밍 언어에 문법에 맞게 코드를 작성해서 컴퓨터에게 시키고싶은 일을 시키는것이 우리가 하고자 하는일이다. 2. 자바의 동작 원리 관점2 java virtual machine 이 설치되어있고..
스프링 시큐리티의 내부구조 1. 스프링 시큐리티의 내부구조 스프링 시큐리티에서 가장 중요한 역할을 하는 존재가 인증을 담당하는 AuthenticationManager(인증 매니저)이다. AuthenticationManager는 다양한 방식의 인증을 처리할 수 있도록 위와같은 구조로 설계되어 있다. ProviderManager는 인증에 대한 처리를 AuthenticationProvider라는 타입의 객체를 이용해서 처리 를 위임한다. AuthenticationProvider(인증 제공자)는 실제 인증 작업을 진행한다. 이때 인증된 정보에는 권한에 대한 정보를 같이 전달하게 되는데 이 처리는 UserDetailsService라 는 존재와 관련 있다. UserDetailsService 인터페이스의 구현체는 실제로 사용자의 정보와 사용자..
스프링 시큐리티의 기본동작 방식 1. 스프링 시큐리티의 기본 동작 방식 스프링 시큐리티의 기본 동작 방식은 서블릿의 여러 종류의 필터와 인터셉터를 이용해서 처리된 다. 필터는 서블릿에서 말하는 단순한 필터를 의미하고 인터셉터는 스프링에서 필터와 유사한 역 할을 한다. 필터와 인터셉터는 특정한 서블릿이나 컨트롤러의 접근에 관여한다는 점에서는 유사하지만 결정 적인 차이를 구분하자면 필터는 스프링과 무관하게 서블릿 자원이고, 인터셉터는 스프링의 빈으로 관리되면서 스프링의 컨텍스트 내에 속한다는 차이이다. 왼쪽은 일반 필터로 현재 실행되는 서블릿 컨텍스트에 속하긴 하지만 스프링과 무관하다. 반면에 인터셉터의 경우는 스프링의 내부에서 컨트롤러를 호출할 때 관여하기 때문에 스프링의 컨 텍스트 내에 있는 모든 자원을 활용할 수 있다. 하나의 스프링..