[백엔드] 스프링 컴포넌트 스캔과 Bean 등록하기 및 DI
·
CS/백엔드
스프링은 스프링 컨테이너를 통해서 의존성 주입 기능을 지원한다. 컨테이너에 들어가는 객체들을 빈이라고 칭하고, 스프링은 빈으로 등록할 객체를 찾은 뒤에 컨테이너에 등록하고, 필요한 경우 컨테이너에서 빈을 빼오는 일을 수행한다. 이 과정은 그냥 애플리케이션을 시작하면 자동으로 이루어지지만, 어떤 매커니즘으로 이루어지는지 궁금했기 때문에, 조사해보고자한다. 코드 중에서 불필요한 부분은 생략했다. 주로 내가 공부하려는 기능과 무관한 코드거나, 클래스 사전설정 코드거나, 로그를 다루는 로직이다.Bean 등록과정먼저 ApplicationContext에 Bean을 등록하기 위해서는 두 가지 과정이 필요하다. Bean은 스프링 컨테이너에 등록될 때 Bean만 등록되는 것이 아니라 BeanDefinition이라고하는,..
[객체] 오브젝트 독서 #1 - 객체지향 프로그래밍과 RDD, 캡슐화
·
CS/객체지향
객체지향 프로그래밍 (OOP)클래스의 메서드와 같은 행동을 프로세스, 클래스의 변수와 같은 상태나 정보를 데이터라고 칭한다. 절차적 프로그래밍에서는 프로세스와 데이터를 별도의 모듈에서 관리하는 것, 객체지향 프로그래밍은 데이터와 프로세스를 하나의 모듈에 위치하도록 프로그래밍하는 방식이다. 하지만 단순히 변수와 메서드만 클래스에 넣었다고해서 절차적 프로그래밍이 객체지향 프로그래밍이 되는 것이 아니다. 객체지향 프로그래밍에서는 모든 객체들이 자율적으로 협력에 참가해야한다.응집도와 결합도소프트웨어의 품질을 측정하는 기준은 응집도, 결합도가 있다. 응집도란 모듈에 포함된 요소들이 연관된 정도, 즉 변경이 발생할 때 모듈 내부에서 발생하는 변경의 정도이다. 만약 한 개의 모듈에서 변경사항이 생겨 코드를 수정할 경..
[백엔드] 인증요청 시의 SecurityFilterChain의 동작과정
·
CS/백엔드
https://dev-dx2d2y-log.tistory.com/218 [백엔드] 로그인 시의 SecurityFilterChain의 동작과정https://dev-dx2d2y-log.tistory.com/217 [백엔드] Spring Security 첫 걸음 - DelegatingFilterProxy, FilterChainProxy로 Web Context Filter에 Spring Bean Filter 등DelegatingFilterProxy그 전에 그냥 HTTP 요청이 어떻게 처리되냐면..클라dev-dx2d2y-log.tistory.com이전에는 로그인과정에서 SecurityFilterChain의 동작과정에 대해서 알아보았다.UsernamePasswordAuthenticationFilter와 같은 Auth..
[백엔드] 로그인 시의 SecurityFilterChain의 동작과정
·
CS/백엔드
https://dev-dx2d2y-log.tistory.com/217 [백엔드] Spring Security 첫 걸음 - DelegatingFilterProxy, FilterChainProxy로 Web Context Filter에 Spring Bean Filter 등DelegatingFilterProxy그 전에 그냥 HTTP 요청이 어떻게 처리되냐면..클라이언트로부터 요청이 들어오면 HttpServletRequest, HttpServletResponse 객체가 생성되며, 이 객체는 필터들을 통과하며 조건에 부합하는dev-dx2d2y-log.tistory.comSpringSecurity 단계에서 저번에는 DelegatingFilterProxy와 FilterChainProxy에 대해서 알아보았다.스프링에서 ..
[백엔드] Spring Security 첫 걸음 - DelegatingFilterProxy, FilterChainProxy로 Web Context Filter에 Spring Bean Filter 등록하기
·
CS/백엔드
DelegatingFilterProxy그 전에 그냥 HTTP 요청이 어떻게 처리되냐면..클라이언트로부터 요청이 들어오면 HttpServletRequest, HttpServletResponse 객체가 생성되며, 이 객체는 필터들을 통과하며 조건에 부합하는 요청인지를 검사받게되고, 서블렛과정에서 실제 비즈니스 로직이 수행된다. 스프링에서 Servlet의 인스턴스는 DispatcherServlet이라는 핵심 인스턴스가 담당하며, 클라이언트로부터 들어온 요청을 분석해 적절한 컨트롤러에 인계한다. 그래서 모든 과정이 시작되는 것이다. 하나의 서블렛은 하나의 HttpServletRequest나 HttpServletResponse를 처리할 수 있다.그리고 필터에서는 하위필터로 요청이 내려가는 것을 막고, 필터 스스로..
[백엔드] OAuth는 어떻게 진행되는가?
·
CS/백엔드
내가 처음 백엔드 개발할 때 담당했던 기능이 로그인, 그리고 GDG 프로젝트세션에 들어와서 처음 만진 것도 로그인, 그리고 이 블로그의 첫 글도 로그인.. 그만큼 잘 까먹는 기능이기도하기 때문에 로그인 기능을 이번에 제대로 다져놓아보려한다.다시, OAuthOAuth란 무엇인가?OAuth(Open Authorization)이란, 인터넷 사용자들이 한 웹사이트를 이용할 때, 해당 사이트가 다른 웹사이트에 있는 자신의 정보에 접근할 수 있도록하는, 인증을 위한 개방형 프로토콜이다. 대표적인 예시가 구글로그인, 네이버 로그인과 같은 소셜로그인 기능으로, 제 3의 웹사이트가 구글 또는 네이버에 있는 자신의 개인정보에 접근할 수 있도록 허가해주는 것을 말한다. 이외에도 웹사이트가 임의로 구글캘린더의 일정을 추가한다..
[컴퓨터구조] 혼공컴구 독서 #9 - 메모리와 주소의 종류, MMU, 캐시메모리와 CPU 경향성
·
CS/컴퓨터구조
메모리에 저장된 위치는 주소로 표현한다. 사실 주소는 한 가지만 있는게 아니라 두 가지가 있다. 하드웨어는 물리주소를 사용하고, CPU나 실행 중인 프로그램은 논리주소를 사용한다.물리주소와 논리주소https://dev-dx2d2y-log.tistory.com/197 [컴퓨터구조] OOO, OoOE, 토마슬로 알고리즘을 통한 비순차적 명령어 처리 + 혼공컴구 독서 #6 - CPU아니 열람실에서 공부중인데 6시 이후로 급격하게 추워짐 뭐야이거 개추워https://dev-dx2d2y-log.tistory.com/191 [컴퓨터구조] 혼공컴구 독서 #5 - 명령어 사이클과 인터럽트https://dev-dx2d2y-log.tistory.com/189 [dev-dx2d2y-log.tistory.com이전에 Regi..
[논리회로] 캐리 예측 가산기 및 곱셈기
·
CS/논리회로
https://dev-dx2d2y-log.tistory.com/204 [논리회로] 수의 표현과 가산기, 리플 캐리 가산기 및 래딕스-컴플리먼트 기법을 통한 감산기 설https://dev-dx2d2y-log.tistory.com/198 [논리회로] 가장 기본적인 논리게이트로 합성하기https://dev-dx2d2y-log.tistory.com/193 [논리회로] 논리회로 기초 및 AND, OR, NOT 게이트, 논리연산 기초회로 기초간단하기 때dev-dx2d2y-log.tistory.com저번에는 가산기에 대해서 알아보았다. 가감산기는 이렇게 생겼으며, /Add / Sub 제어신호에서 덧셈을 0, 뺄셈을 1로 신호를 주어 가산 또는 감산을 진행한다.그리고 ADDER의 구조는 리플-캐리 가산기를 사용하여 위..