java & spring 5

[Spring Security] csrf().disable()하는 이유는?! 그리고 CORS

0. Intro매번 CSRF, CORS를 공부하고 뒤돌아서 잊어버렸는데 면접에서 대답 못하는 사태가 벌어졌다..이전에 spring security에서 csrf().disable()에 대해서 제대로 이해하지 않고 사용한 것도 생각나서 이번 기회에 확실하게 정리하고 기억하고자 한다. 1. SOP와 CORS브라우저는 기본적으로 같은 출처에서만(origin) 리소스를 공유할 수 있다라는 SOP(Same-origin policy) 정책을 따르고 있다. 하지만 다른 출처와의 상호작용이 필요한 경우를 위해 특정 조항에 해당하는 리소스 요청은 출처가 다르더라도 허용하기로 했다. 그 중 하나가 CORS(Cross-Origin Resource Sharing) 정책을 지킨 리소스 요청이다. 다시 말해, SOP의 불편함을 해..

java & spring 2024.11.03

[Design Pattern] 스프링은 어떤 디자인 패턴을 사용하고 있을까?

0. Intro을 읽으며, 싱글톤 패턴은 스프링 빈, 팩토리 패턴은 스프링 컨테이너가 DI하는 것을 떠올렸다.내가 이해한 바가 맞는지, 그리고 Spring에서 사용중인 다른 디자인 패턴은 어떤 것들이 있는지 알아보고자 이 글을 작성하게 되었다.결론부터 얘기하면, 스프링에서는 싱글톤 패턴, 팩토리 메서드 패턴, 프록시 패턴, 템플릿 메서드 패턴을 사용하고 있다.하나씩 살펴보자.1. 디자인 패턴(Design Pattern)이란?우선 디자인 패턴이 무엇이고, 어떤 것들이 있는지 알아보자.디자인 패턴이란, 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미한다.여러 종류의 디자인 패턴이 있으며, 각각의 상황과 문제에 맞는 ..

java & spring 2024.11.02

[Spring] 싱글톤 레지스트리와 스프링의 IoC 컨테이너

0. Intro[토비의 스프링] 1장 오브젝트와 의존관계 '1.6 싱글톤 레지스트리와 오브젝트 스코프'를 읽고 정리한 내용입니다.GitHub PR 링크 : https://github.com/Kimhan-nah/toby-spring/pull/8 [1장 오브젝트와 의존관계] 1.6 싱글톤 레지스트리와 오브젝트 스코프 by Kimhan-nah · Pull Request #8 ·Issue 1장 오브젝트와 의존관계 #2 정리 싱글톤이 멀티스레드 환경에서 서비스 형태의 오브젝트로 사용되는 경우에는 상태 정보가 없는 무상태(stateless) 방식으로 만들어져야 하는데, ConnectionMakergithub.com  싱글톤이 멀티스레드 환경에서 서비스 형태의 오브젝트로 사용되는 경우에는 상태 정보가 없는 무상태(s..

java & spring 2024.08.20

[Spring] IoC 컨테이너와 Bean

0. Intro이 글은 Spring 공식 문서 'Core Technologies'의 'IoC Container'에 대하여 정리한 글입니다.+ 토비의 스프링 스터디에서 동일한 내용에 대한 PR 링크입니다.1. IoC Container : ApplicatoinContextorg.springframework.context.ApplicationContext interface는 Spring IoC Container를 나타내며, Bean을 인스턴스화, 구성(configuring)하는 일을 담당한다. 또 BeanFactory의 하위 인터페이스로, 몇가지 enterprise-specific functionality의 추가적인 기능을 제공한다.container는 configuration metadata를 읽음으로써 인..

java & spring 2024.08.13

[Java/Spring] Java Bean vs Spring Bean, Bean이란?

0. IntroSpring 공식 문서에서 Bean에 대한 정의를 읽으면서, 'Java에서 정의하는 Bean은 어떻게 다르지?'라는 궁금증이 생겼다.Java에서 정의하는 Bean과 Spring에서 정의하는 Bean이 조금씩 다르다는 것을 알게 되었다.Java와 Spring에서 Bean을 각각 어떻게 정의하는지 알아보자. 1. Java Bean 이란?POJO(Plain Old Java Object)에서 몇가지 규칙들이 추가된 객체이며, DTO와 VO와 같이 데이터를 표현하기 위한 목적을 가지고 있다. 규칙은 아래와 같다.1. 멤버필드를 프로퍼티(Property)라고 하며, 모든 프로퍼티는 private 접근 지정자여야 한다.2. getter, setter로 private 프로퍼티(property) 멤버필드 ..

java & spring 2024.08.08