![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXOCnm%2Fbtr8XzlWcWk%2FSvKaSmzl1skyjzSfKk3rxk%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : 의존성 추가
2023. 4. 9. 17:30
무조건 따라하기/Spring Boot 기반 Security
Security 의존성 추가전 API 생성후 localhost:8080으로 접속하면 잘 뜨는 걸 확인 할 수 있다. @RestController public class HomeController { @GetMapping("/") public String home() { return "home"; } } Security 의존성 추가 후 gradle 추가 implementation "org.springframework.boot:spring-boot-starter-security" 스프링 시큐리티의 의존성 추가 시 일어나는 일들 서버가 기동되면 스프링 시큐리티의 초기화 작업 및 보안 설정이 이루어진다 별도의 설정이나 구현을 하지 않아도 기본적인 웹 보안 기능이 현재 시스템에 연동되어 작동함 모든 요청은 인증이..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHdNLb%2Fbtr8MpLtbZt%2FGNM11eWLRvBG18yNQkwA7k%2Fimg.png)
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security
2023. 4. 9. 17:18
무조건 따라하기/Spring Boot 기반 Security
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com 강의에서 다루는 내용 1. 스프링 시큐리티의 보안 설정 API 와 이와 연계된 각 Filter 들에 대해 학습한다 각 API 의 개념과 기본적인 사용법, API 처리 과정, API 동작방식 등 학습 API 설정 시 생성 및 초기화 되어 사용자의 요청을 처리하는 Filter 학습 2. 스프링 시큐리티 내부 아키텍처와 각 객체의 역할 및 처리과정을 학습한다 초기화 과정, 인증 과정, 인가과정 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtiL7K%2Fbtr0Oa8Qrni%2FUfPZHnGcT3SqGy6elh3YHk%2Fimg.png)
[Java] 자바 record에 대해서
2023. 2. 25. 17:56
몰아 넣기
팀장님께서 자바16에 record가 정식 스펙이라고 말해 주었다. record가 무엇인가 봤더니 재미있는 것 같아 정리를 하고 싶어서 이렇게 글을 쓰게 되었다. record(레코드)란? 자바 14 이후부터 레코드가 preView로 추가되었고 자바 16부터는 공식 기능이 되었는데, 열거형과 마찬가지로 자바 클래스의 특별한 한 종류라고 바라볼 수 있다. 마치 클래스의 생성자와 같이 매개변수를 나열하면 되는데, 여기서는 이를 컴포넌트(component) 라고 한다. 사용법 자바를 사용하다 보면 반복적으로 비슷한 형태를 가지고 있는 코드 즉, 보일러 플레이트 코드가 많이 존재한다. DTO를 예로 들면 getter, setter, equals, hashCode, toString 같이 반복적으로 비슷한 형태를 가지..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAAq6U%2FbtrZ6jl5HBA%2FTmNFC7DA6FIkCp8P1Uypv0%2Fimg.png)
[SQL] JOIN(결합)에 대해서(with.옵티마이저 및 결합 알고리즘)
2023. 2. 20. 13:42
데이터베이스/SQL
fk값이 무조건 있는 경우에는 left join 보다는 inner join을 사용하는 습관을 길러야 한다고 한다고 말씀하셨다. 그 이유를 찾고 공부한 내용을 정리하기 위해 작성한다. Join(결합)이란? 조인이란 두 개 이상의 테이블을 서로 묶어 하나의 결과 집합을 만들어 내는 것을 말한다. 즉, 데이터베이스에 있는 두 개 이상의 테이블의 데이터를 결합할 수 있는 SQL의 필수 기능이고 조인 작업을 사용하면 테이블이 서로 어떻게 관련되어 있는지 지정하여 여러 테이블에서 데이터를 검색할 수 있다. 이 글에서 다룰 결합이다. 내부 조인 (INNER JOIN)| 외부 조인 (OUTER JOIN) 왼쪽 (LEFT OUTER) 오른쪽 (RIGHT OUTER) 내부 조인 (INNER JOIN) 두 테이블에 일치하는..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsOHuH%2FbtrZITaSLMP%2FgiKvNffeeyUMYKF2R6Bvs1%2Fimg.png)
[SQL] CROSS JOIN 이란? 그리고 JPA에서 주의할 점
2023. 2. 18. 21:53
데이터베이스/SQL
1. CROSS JOIN 이란? 크로스 조인은 모든 경우의 수를 전부 표현해주는 방식이다. 기준 테이블이 A일 경우 A의 데이터 한 ROW를 B테이블 전체와 JOIN 하는 방식이며, 결과가 N * M 이 된다. A테이블에 데이터가 3개, B테이블에는 데이터가 4개가 있으므로 총 12개가 검색된다. CROSS JOIN은 대개 테스트로 사용할 대용량의 테이블을 생성할 경우에 사용된다고 한다. 예를 들어, 각 5 만건과 7 만건의 테이블을 CROSS JOIN 하면 35억건의 데이터를 생성시킬 수 있다. 이 경우 두 테이블 컬럼들의 총 크기와 생성될 총 행수에 따라, 시스템이 다운되거나 디스크 용량이 꽉 차 버릴 수도 있으니 주의가 필요하다. 2. JPA에서 주의할 점 팀장님께서 말씀하신게 바로 이 부분인데, ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrfAdm%2FbtrYV85IbU8%2FVE4kFYTtNilvKak9O4sgGK%2Fimg.png)
[자료구조] 우선순위 큐(priorityQueue) 알아보기 (with 자바)
2023. 2. 11. 09:49
몰아 넣기
우선순위 큐(priorityQueue) 란? 우선순위 큐(Queue)란? 우선순위 큐는 평범한 큐(queue)나 스택(stack)과 비슷한 축약 자료형이다. 그러나 각 원소들은 우선순위를 갖고 있어 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리된다. 내부 요소는 힙으로 구성되어 있어 시간 복잡도는 O(NLogN)이며, 이진트리 구조로 이루어져 있다. 우선순위 큐에 들어가는 원소는 비교가 가능한 기준이 있어야한다. 즉, 우선순위 큐에 저장할 객체는 필수적으로 Comparable Interface를 구현해야한다. Comparable Interface를 구현하면 compareTo method를 override 하게 되고 해당 객체에서 처리할 우선순위 조건을 리턴해주면 PriorityQu..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvapdS%2FbtrX7XRX1W4%2FnGApKDbqqkYpC9j1k9wKqK%2Fimg.png)
[SQL] 정규화란?
2023. 2. 5. 19:03
데이터베이스/SQL
어느날 팀장님께서 이렇게 물었다 정규화가 뭔지 아세요? 머쓱하게 잘 모른다고 말씀드렸다. 다음에 같은 걸 물어보시면 대답해드리기 위해 공부한다. SQL 정규화란? 정규화는 1NF ~ 6NF 그리고 BCNF 가 있다. 하지만 보통, 3NF 정규화까지만 해도 충분하다고한다. 설명 데이터를 중복으로 저장하면 일관되지 않은 데이터, 비정상적인 삽입 갱신 삭제 처리, 디스크 공간 낭비 등 많은 문제를 일으킨다. 정규화는 중복 데이터를 저장하면서 일으키는 문제점을 없애려고 정보를 주제별로 분할하는 프로그램을 의미한다. 즉, 정규화란 데이터가 꼬이는 것을 막기위해 테이블을 잘게 나누는 것 행위다. 기본 목표 테이블 간에 중복된 데이터를 허용하지 않는다는 것, 중복된 데이터를 허용하지 않음으로써 무결성(Integrit..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGL4fE%2FbtrX8iaBSRl%2Ft4Pyfz6pYjip4bxIuNCfk1%2Fimg.png)
[Spring] Swagger3 사용해보기
2023. 2. 5. 16:27
몰아 넣기
Swagger 란? 스웨거는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. - 위키 Swagger 2.x 버전을 적용할 수도 있고 3.x 버전을 적용할 수도 있습니다. 큰 차이는 없기 때문에 최신 버전인 Swagger 3.x 버전을 적용합니다. Swagger 적용 gradle 추가 implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'io.springfox:springfox-swagger-ui:3.0.0' SwaggerConfig 생성 @Configuration @EnableSwagger2 public class Swagger..