HTTP 200 OK

Memento mori & Carpe diem

전체 글 65

Spring Security 주요 아키텍처 이해( Part 1)

위임 필터 및 필터 빈 초기화 DelegatingProxyChain, FilterChainProxy Servlet Filter 흐름 요청을 받은 WAS가 Servlet Container에게 Request, Response를 던져주면, 이를 먼저 Filter에서 받아. Request에 대한 필터링를 진행하고, 서블릿에게 ServletRequest, ServletResponse를 넘겨준다. 요청에 대한 작업이 끝난 후 Response에 대한 필터링를 진행 쉽게말해, 요청과 응답에 대한 필터링을 진행한다. DelegatingProxyChain 서블릿 필터에서 서블릿 필터를 구현한 스프링 빈에게 요청을 위임해주는 대리자 역할의 서블릿 필터 서블릿 필터는 스프링에서 정의 된 빈을 주입해서 사용할 수 없다 왜냐하면..

Spring 2022.05.30

JWT 토큰이란

Authentication 로그인 인증 구현 방식에는 session cookie 방식과 jwt토큰 방식이 존재한다. session cookie 방식은 사용자에 따라서 고유의 session ID가 발급되며 유의미한 정보를 담고 있지 않기 때문에 쿠키방식보다는 안전하지만, 세션저장소에 모두 담아두기 때문에 다수의 요청이 발생시 부하가 발생할 수 있다. JWT 세션쿠키와 하게 인증에 필요한 정보들을 암호화한 토큰을 사용한느 방식으로 비밀키가 유출되지 않는 이상 토큰을 복호화 하지 못하므로 보안이 유리하다. access token의 기한은 유효하지만 access token이 만료되기 전에 사용자가 로그인하면 refresh token을 이용해서 access token을 재발급하여 사용기한을 늘릴 수 있다. ref..

CS 2022.05.28

Annotation && AOP란?

Annotation이란? Annotation은 JDK 1.5부터 도입된 것으로 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종입니다. 대부분이 많이 봤을 만한 @Override, @Deprecated 가 Annotation 예로 Annotation의 구현된 정보에 따라 연결되는 방향이 결정됩니다. 즉, 전체적인 소스코드의 로직을 바꾸진 않지만 Annotation의 타겟을 연결 방법이나 소스코드의 구조를 변경할 수 있습니다. Annotation의 기능을 잘 활용한다면 비즈니스 로직과 별도의 시스템 설정은 Annotation에게 위임함으로써 개발자들은 로직 구현에만 집중할 수 있습니다. 따라서 Annotation을 통해 AOP(Aspect Object Programming)을 구성할 수 있습니다..

Spring 2022.05.11

Spring IoC 컨테이너 및 Bean소개(1) [with spring docs]

Spring IoC 컨테이너와 Bean에 대한 소개 IOC 컨테이너라고 하는 스프링 컨테이너는 DI(Dependency Injection)의 관점에서는 빈 팩토리라고도 하고, 이런 빈 팩토리에 여러가지 기능을 추가한 것을 어플리케이션 컨텍스트라고 한다. 객체가 생성자, 팩토리메서드에 대한 인수 또는 팩토리 메서드에서 생성되거나 반환 된 후 개체 인스턴스에 설정된 속성을 통해서만 개체가 종속성(즉, 작업하는 다른 개체)을 정의하는 프로세스이다. 컨테이너는 Bean을 생성할 때 의존성들을 주입한다. 이 프로세스는 기본적으로 클래스 또는 Service Locator 패턴과 같은 메커니즘을 사용하여 종속성의 인스턴스화 또는 위치를 제어하는 Bean 자체(이름, Inversion of Control)이다. org..

Spring 2022.05.11

PostCSS

PostCSS란? CRA(create-react-app)에서도 default설정인 postcss에 대해 알아보고자 작성하게 되었다. Sass가 CSS의 전처리기 인것에 비해 postcss는 JS플러그인을 통해 스타일을 변형하는 후처리기로서 동작한다. copy-webpack-plugin은 특정한 디렉터리나 파일을 복사해 번들링 된 폴더 내에 경로로 삽입하는 플러그인이다. html-webpack-plugin autoprefixer : -webkit- 등의 prefix 없이 스타일을 지정할 수 있다. a { display: flex; } 스타일 변환 결과 a { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex } ..

REACT 2022.04.10

[webpack] loader & plugin

webpack을 사용하던 중 다양한 로더와 플러그인의 역할과 기능에 대해 학습하고자 작성하게 되었다. ▶loader와 plugin의 차이 로더는 파일을 해석하고 변환하는 과정에 관여하는 반면, 플러그인은 해당 결과물의 형태를 바꾸는 역할(기본적인 동작에 추가적인 기능을 제공하는 속성)이다. ▶로더(loader)란? 로더는 빌드 도구를 통한 빌드 과정에서 각 파일을 import 혹은 load할 때 모듈의 소스코드를 변형시키는 전처리 과정을 수행 webpack은 기본적으로 JS / JSON 파일만 이해할 수 있어서, other type의 파일을 convert 해줘야 한다 ▶자주 사용하는 로더 종류 css-loader : css 파일이 js 코드로 변경, 즉 JS파일 내부에서 css파일을 불러오는 역할(내부적..

REACT 2022.03.30

npx란??

nvm : Node Version Manager npm : Package Manager npx : Package Runner npm과 nvm은 유용하게 사용중이였지만 npx는 사용해본적이 없어 정리를 해보려고 한다. npx는 npm의 5.2.0버전부터 새로 추가된 도구, 기본적으로 추가되어 있다. 현재 npm 버전에 이미 설치되어 있는지 확인 which npx npx는 npm의 5.2.0버전부터 새로 추가된 도구, 기본적으로 추가되어 있다. ▶npm install npm(Node Package Manager)은 프로젝트에 필요한 라이브러리를 다운로드 또는 관리 할 수 있도록 해주는 프로그램 ▶프로젝트 npm install에 --save를 붙이는 이유는? --save옵션은 package.json의 depe..

REACT 2022.03.30

State and Lifecycle

엘리먼트 렌더링에서는 UI를 업데이트 하는 한 가지 방법만 학습했으며, 렌더링 된 출력값을 변경하기 위해 ReactDOM.render()를 호출했습니다. function tick() { const element = ( Hello, world! It is {new Date().toLocaleTimeString()}. ); ReactDOM.render( element, document.getElementById('root') );} setInterval(tick, 1000); setInterval을 사용해 Clock컴포넌트가 매초 스스로 업데이트 할 수 있도록 변경할 수 있습니다. 함수에서 클래스로 변환하기 다섯 단계로 Clock과 같은 함수 컴포넌트를 클래스로 변화 할 수 있다. React.Componen..

REACT 2022.03.28

webpack 정리

webpack의 내용을 정확히 학습하기 위해 작성하였습니다. webpack과 babel 기본 설명 -> webpack & babel Webpack을 사용하는 이유 여러개의 파일을 하나로 묶어준다. Webpack을 사용하면 의존 모듈이 하나의 파일로 번들링되므로 별도의 모듈 로더가 필요 없습니다. 그리고 다수의 JS파일을 하나의 파일로 번들링하므로 HTML파일에서 script 태그로 다수의 JS파일을 로드해야 하는 번거로움도 사라진다. http 요청이 비효율적이기 때문이다. 웹 페이지는 수많은 파일들을 받아와야 하는데 http/1.1에서는 커넥션 하나를 열어 하나씩 요청을 보내야 한다(요청이 많을수록 비효율적) 때문에 하나의 파일로 합쳐주어 요청 횟수를 줄이고 속도를 향상시킨다.(여러 개로 나누는 것도 가..

REACT 2022.03.17

sqld 개인공부 정리 part2

문제 FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY DML - SELECT, INSERT, DELETE, UPDATE DDL - ALTER, CREATE, MODIFY, DROP TCL - ROLLBACK, COMMIT DCL - GRANT, REVOKE DISTINCT(집약) → 중복된 값들이 존재할때 중복을 제거하고 원하는 정보를 집약함 DISTINCT deptno, mgr는 group by(deptno, mgr) 와 비슷하다. select as → 생략가능 && 컬럼명에 띄어쓰기, “직원 번호” from → as 사용불가 concat 연산자 → +일경우 sql server → ||일경우 oracle concat은 인수가 무조건 2개임 논리연산자 and..

활동 2022.03.12