환경별 설정 중요성 애플리케이션을 개발 할 때 로컬 환경, 개발(테스트) 환경, 운영 환경 마다 다른 설정이 필요하게 됩니다.예를 들어, 로컬 환경 및 개발(테스트) 환경은 로컬 DB, 개발 DB를 사용해야하지만 운영 환경에는 사용자들이 사용하고 보는 운영 DB를 사용해야하기 때문입니다. 이렇게 환경별로 설정하여 관리하면 유지보수가 좋아지고 오류를 줄일 수 있을 것입니다. " 그럼 코드를 공통적으로 사용하는데 설정 값들을 서버 실행할 때 마다 다르게 할 수 있나? 그럼 어떻게 설정하지? " 라는 대답을 아래로 쭉 작성하려고 합니다. 설정하는 방법 환경별 설정 세팅하는 방법에는 2가지가 있습니다. application.yml : 기본 설정 파일안에서 분리하여 작성하기application-{profil..
개발 환경 Spring Boot 3.3.4JAVA 17Swagger OpenAPI 3라이브러리 springdoc-openapi-starter-webmvc-ui:2.6.0 의존성 추가 공식문서에서 버전 확인하기https://springdoc.org/ OpenAPI 3 Library for spring-bootLibrary for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file.springdoc.org Gradledependencies { // swagger implementation 'org.springd..
들어가기 전 설명 현재 구현한 코드들은 GitHub 에 있습니다. 글을 보다가 헷갈리시면 소스코드로 참고해주시기 바랍니다. 개발 환경 JAVA17Spring Boot 3.1.8Spring Security 6.1.6Spring JPA 3.1.8Mac OSJAVA JWT 4.4.0Redis 7.4.0IntelliJ 2024.01.04v 작업 순서 JWT accessToken 인증 필터 구현JWT 인증필터 검증refreshToken도 추가로 발급하며 Redis에 저장refreshToken로 accessToken 재발급 (API 개발)로그아웃추가적 구상 1. JWT accessToken AuthenticationFilter 구현 추상 클래스인 OncePerRequestFilter는 하나의 ..
들어가기 전 설명 현재 구현한 코드들은 GitHub 에 있습니다. 글을 보다가 헷갈리시면 소스코드로 참고해 주시기 바랍니다. 개발 환경 JAVA17Spring Boot 3.1.8Spring Security 6.1.6Spring JPA 3.1.8Mac OSJAVA JWT 4.4.0IntelliJ 2024.01.04v 작업 순서 로그인 인증 필터 (AuthenticationFilter) 구현실제 인증 로직 (AuthenticationProvider) 구현 UserDetailsService DB 로직 구현SecurityConfig 설정JWT 모듈인 JwtHelper 제작인증 성공 시 실행하는 핸들러 (AuthenticationSuccessHandler) 구현인증 실패 시 실행하는 핸들러 (Aut..
들어가기 전 설명 현재 구현한 코드들은 GitHub 에 있습니다. 글을 보다가 헷갈리시면 소스코드로 참고해주시기 바랍니다. 개발 환경 JAVA17Spring Boot 3.1.8Spring Security 6.1.6Spring JPA 3.1.8Mac OSJAVA JWT 4.4.0IntelliJ 2024.01.04v 작업 순서와 프로젝트 구조 작업 순서Security Config 설정DB 연결Entity와 Model회원가입 비즈니스 로직예외처리결과 프로젝트 구조security│├── api│ └── UserController│├── config│ ├── SecurityConfig│ └── WebConfig│├── domain│ ├── User│ └── UserRole│├── ..
목차1. ThreadLocal 특징2. ThreadLocal 주요 메서드3. ThreadLocal 예제 코드 4. ThreadLocal 실무 주의 사항5. 주의 사항 문제 해결 ThreadLocal은 무엇인가? 우선 Thread(스레드)는 프로세스 내에서 실행되는 흐름의 단위를 뜻합니다.즉, 하나의 프로세스 내에서 동작하는 여러 실행 흐름 중 하나인 것입니다. ThreadLocal의 뜻은 "스레드 별로 독립적인 데이터를 관리하기 위한 클래스"라고 말할 수 있습니다.이것을 풀어 해석하면, 각 Thread마다 별도의 데이터 저장 공간을 가지며, 한 Thread에서 저장한 데이터는 다른 Thread에서 접근할 수 없는 것입니다. ThreadLocal의 특징 ..
개발 환경 Spring Boot 3.2.4 JAVA 17 MacOS Postman v10.22 해당 블로그 코드들은 GitHub에 남겨져 있습니다. ArgumentResolver를 사용하는 이유 컨트롤러에서 매개변수로 사용되는 인자에 대해 공통적으로 처리해야할 로직등이 있을 경우, 중복 코드를 줄이고 공통 기능으로 추출하여 사용하려고 쓴다. 그래서 컨트롤러(핸들러)가 필요로 하는 다양한 파라미터의 값(객체)을 생성할 수 있다. 즉, 커스텀해서 내가 원하는 파라미터(객체)로 변경해서 컨트롤러에서 편하게 사용할 수 있다는 것이다. Tip) Resolver에서 처리할 수 있는 파라미터 목록들 https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-c..
개발 환경 Spring Boot 2.5.1JAVA 11 먼저 성공하는 것을 알려주고 에러, 바인딩 실패하는 사례도 보여주겠습니다. 작성하는 이유 우린 데이터를 Front → Back 으로 보낼 때 json형식의 String만 보내는 것이 아닌 데이터 + 첨부파일을 함께 전송할 때가 많다.. 그것도 여러 데이터 + 여러 첨부파일.. 태그를 이용하여 서버로 전송하면 좋겠지만 클라이언트(Front) 단에서는 ajax, Fetch에서 FormData 라는 객체를 생성하여 데이터를 보낸다. 그래서 서버가 그 데이터를 받을 때 여러 시도 하지 말라고 작성하게 되었다. 코드 index.htmlajax와 bootstrap은 cdn으로 넣어서 ..
개발 환경 Spring Boot 3.2.2 JAVA 17 ES6 MacOS Postman v10.22 해당 블로그 코드들은 GitHub에 남겨져 있습니다. 작성하게된 이유 데이터 유효성 검사를 Front단 에만 쳐 내는 것이 아닌 Back단 에서도 유효성 검사를 해서 막아야합니다. 근데 실무에서는 관리자만 사용하는 웹 어플리케이션 ( CMS 라 칭함 )을 만들었기 때문에 사용자가 악용할 일이 없어서 배제해 왔지만 플랫폼처럼 서비스 하기 위해서는 이제는 Back단에서도 유효성 검사를 해야겠다고 생각했습니다. 또한, 클라이언트에서 언제든지 데이터 값을 변경하여 백엔드에게 전송할 수 있기 때문에 필수적으로 Validation을 알아야한다고 생각했습니다. 조건 이름, 휴대폰 번호, 이메일은 필수 값입니다. 휴대..
에러 발생 Spring 서버를 작동하려고 하는데 아래와 같은 오류가 발생한적 있는가? 예시 상황 // 인터페이스 구현1 @Component public class EmailService implements NotificationService { ... } // 인터페이스 구현2 @Component public class SMSService implements NotificationService { ... } // 다른 곳에서 어디선가 인터페이스에 빈 주입 @Autowired private NotificationService service; org.springframework.beans.factory.UnsatisfiedDependencyException 또는 NoUniqueBeanDefinitionExc..
- Total
- Today
- Yesterday
- 프로세스
- Fetch
- java
- 데이터 베이스
- git
- 개발자
- Front
- 오라클
- DBeaver
- 템플릿
- JavaScript
- 자바스크립트
- 네트워크
- 비동기
- Spring Security
- Cors
- 개발
- 프론트
- 디자인패턴
- 개발환경
- spring
- 개발블로그
- AJAX
- aws
- 코딩테스트
- Mac
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |