SpringBoot

OAuth2 활성화 Spring에서 OAuth2를 사용하는 방법, 구현되는 작동원리에 대해서 간략하게 알아보자. 실제로 써먹어야 하니 중요한 부분이다. 당장 구현에 급급하여 복사붙여넣기를 반복하면 결국 남는게 없어질 뿐이다. implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' 해당 dependency를 추가한 후에, WebSecurityConfigurerAdapter를 사용하여 설정할 수 있다. 그러나 우리는 커스텀 config를 사용하며, Security Config를 이용하기 때문에, 해당 클래스를 상속받아 사용하는 SecurityConfig를 필수적으로 사용한다. 해당 클래스에서 설정해주자. public Securi..
https://start.spring.io/ 프로젝트를 생성할 때 항상 사용하는 사이트에서 기본적인 프로젝트를 생성해줍니다. SpringBoot는 3.x 버전이 나온 이후에는 JAVA 11을 지원하지 않습니다. JAVA 버전 또한 업그레이드 해주어야 사용이 가능합니다. 그렇게 되면 Security 설정도 수정해야 되는 부분이 많기 때문에, 해당 API 구현은 자바 11 버전을 사용하겠습니다. Dependency로는 Spring WEB, JPA, Lombok, Security, H2 DB 를 추가해주려고 합니다. H2 같은 경우는 테스트 진행중 간편하게 사용이 가능하기 떄문에 추후에는 다른 DB로 교체할 생각입니다. 프로젝트가 생성되고, 프로젝트를 열게되면 최초 실행까지 시간이 걸리게 되는데, 오류가 발생..
Argument Resolver Argument Resolver란 Spring 프레임워크에서 다양한 방식으로 Client 요청에서 파라미터를 추출-가공 하는데 사용된다. 보통 직접적인 통신 (DB통신)이 아닌 HTTP 세션, 쿠키, 헤더 등에서 추출하거나 가공하여 컨트롤러 메서드에 전달하는데 사용된다. Argument Resolver를 사용하여 코드 중복을 줄이고, 컨트롤러를 간결하게 유지할 수 있다. 예제 클라이언트 IP, 유저 ID를 추출 @Data public class UserDto { private final String id; private final String ipAddress; } WebMvcConfigurer에서 Argument Resolver를 등록해야 한다. @Configuratio..
QueryDSL은 Java 언어를 사용하여 SQL 쿼리를 더욱 쉽게 작성하고 유지보수할 수 있도록 도와주는 오픈 소스 라이브러리입니다. Java 코드로 SQL 쿼리를 작성하는 것은 보다 프로그래밍적인 접근 방식을 제공하며, 컴파일 시점에서 오류를 찾아내고 IDE의 자동 완성과 같은 기능을 활용할 수 있게 해줍니다. QueryDSL은 데이터베이스와의 상호작용을 위한 쿼리를 타입 안전한 방식으로 작성하고, 코드 내에서 쿼리를 조합하고 필터링하는 기능을 제공합니다. 이는 문자열 기반의 SQL 쿼리 작성에 비해 훨씬 안전하고 가독성이 높은 코드를 작성할 수 있게 해줍니다. QueryDSL은 주로 다음과 같은 장점을 가지고 있습니다: 타입 안정성: QueryDSL은 Java의 타입 시스템을 활용하여 쿼리 작성 시..
요즘은 거의 모든 사이트에서 필수적으로 사용되고 있는 기술이 있다. 물론 한두가지가 아니지만, 웹에서 편의성을 추구한다면 이 부분은 꼭 짚고 넘어가야 할 것 같다. 요즘은 대부분의 사이트들에서 개인 정보를 자세히 요구하는 부분이 적어졌기 때문에 더 활용성이 높아진 것도 있을 듯 하다. 간단한 동작으로 로그인이 가능하고, 회원가입에 대한 정보 더 나아가, 해당 사이트의 기능까지 사용할 수 있는 이 시스템들에서 사용되는 기술, 프로토콜이 바로 Oauth다. 개인 정보 얘기가 나와서 말인데, 이 기술이 보안력이 취약하다거나 하는 뜻은 아니다. 회원가입이나 로그인에 제공해야 하는 정보가 적어졌다는 뜻으로서 사용했다. Open Authorization(Oauth)란 즉, 사용자의 아이디 비밀번호 없이 접근 권한을..
SpringBoot Security Adepter 최신버전의 스프링 시큐리티에서는 기존에 설정을 담당해주던 WebSecurityConfigurerAdapter 메소드가 사용되지 않게 바뀌었다. 원래부터 이렇게 사용해라 라는 가이드라인이 내려와 있었지만, 예전에 사용하던 방식을 고수하던것인데, 결국 최신버전에서는 해당 기능을 아예 Deprecated상태로 내려버렸다. @RequiredArgsConstructor @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http...
@SpringbootTest 오류 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.TheCp.repository.MemberRepositoryTest': Unsatisfied dependency expressed through field 'memberRepository': No qualify..
React 와 Spring 환경 구성 세팅 Springboot와 React가 모두 설치돼있다는 가정 하에 기록하는 문서이다. 연동하기 위해 따로 설치부터 설정해주어야 하는 부분들은 없기 때문에, 가장 기본으로 설치하고 진행해도 된다. Spring과 React를 연동해서 사용할 경우, 가장 큰 걸림돌은 Proxy 설정으로, cors 문제 및 오류 메시지를 피할 수 있게 하기위한 설정이다. Proxying API Requests in Development | Create React App 위는 React에서 제공하는 공식문서로, Proxy 설정하는 법에 대해 알려주고 있다. 그 외에도 여러가지 사용방법이나 기능들을 설명하는 문서가 많으니 참고해보는 것도 좋다. 💡 CORS (Cross Origin Resou..
함형우
'SpringBoot' 카테고리의 글 목록 (3 Page)