일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 로그인정보 가져오기
- spring security
- 캡슐화
- CPU
- @modelattibute
- 프로그래머스
- 오버라이딩
- mvc 동작
- 다형성
- over()
- 티스토리챌린지
- 쿠키
- 멀티태스킹
- SQL Mapper
- 자바의정석
- 오버로딩
- 멀티프로세싱
- 리눅스
- 혼공얄코
- spring security 설정
- sec태그
- charset 변경
- 객체지향
- 입출력
- spring security 로그인정보 가져오기
- java
- mvc 구성요소
- 자바의 정석
- hackerrank
- 오블완
- Today
- Total
목록개발공부 (45)
쉽게 쉽게
▤ 목차스프링 시큐리티를 통해 로그인을 성공 후 로그인 정보를 가져오는 방법에 대해 공부하고자 했다.1. 로그인 정보 사용법 로그인 정보를 사용하는 방법은 두 가지 정도로 생각했다.공통적으로 사용하는 Util 클래스에 static 메서드로 정의하기(공통 메서드처럼)@ControllerAdvice를 사용하여 전역컨트롤러에서 정의하기전자의 경우는 아래처럼 정의하여 각 컨트롤러에서 사용하면 된다.public class LoginUtility { /** * 스프링 시큐리티 접속 정보 가져오기 */ public static customUser getCustomUser(){ //스프링 시큐리티 컨텍스트로 부터 가져오기 if(SecurityContextHolder.getContext() != null && S..
▤ 목차1. 정규표현식(Regular Expression) 1. 정규표현식이란?정규표현식(Regular Expression)이란 문자열 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열 부분을 찾아내기 위해 사용하는 것으로, 미리 정의된 기호와 문자를 이용해서 작성한 문자열을 말한다.자바에서는 replaceAll(), split() 메서드, Pattern 클래스의 matches() 메서드를 사용하여 문자열 검증 및 치환할 수 있다.(ex. 전화번호, 주민등록번호, 이메일 등 형식체크, 특수문자 치환 및 제거) 2. 정규식 기호 사용법 1. 정규식 일반 기호기호의미예시^문자열 시작을 의미대괄호([ ]) 밖에 ^가 쓰이면 시작의 뜻 대괄호([ ]) 안에 ^가 쓰이면 제외의 뜻^s : s로 시작하는 단어[^..
▤ 목차1. break문 사용법 1. break문 break는 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 한다.break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.for(int i=0; i 2. 중첩 break문중첩 반복문(여러 개 for문) 일 경우에 현재 위치한 가장 안쪽의 반복문에서 빠져나오고 다시 제일 바깥쪽의 반복문을 실행하게 된다.for(int i=0; i 3. 라벨 붙은 break문break문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 중첩 반복문 경우에는 불필요한 반복이 발생할 수 있다. 중첩된 반복문을 벗어나고 싶다면 각 반복문마다 라벨을 지정해 주고 해당 라벨명을 break 명령에 기재하여 원하는 반복문 단계를 바로 빠져나올 수 있다.Loop..
▤ 목차Map에서 활용할 수 있는 메서드와 키(key)와 값(value)을 사용하는 방법에 대해 공부하며 작성했다.1. Map의 추가 메서드 활용보통은 아래처럼 map을 선언하고 값을 넣어준다.HashMap map = new HashMap();map.put(1,"AAA");map.put(2,"BBB");map.put(3,"CCC");map.put(4,"DDD");map.get(1); //AAAmap.get(2); //BBBmap.get(3); //CCCmap.get(4); //DDD하지만 map에 동일 키 값을 추가할 경우 value의 값이 덮어쓰기가 되는데 이를 원치 않는다면 getOrDefault 메서드를 사용할 수 있다. 1. getOrDefault getOrDefault(Object key, V..
▤ 목차1. Spring Security 커스텀 화면Spring Security에서 기본으로 제공하는 로그인 화면과 설정이 있지만 이는 기본적인 수준이라 커스텀이 반드시 필요하다.커스텀 구현 과정에서 화면 생성, 커스텀용 클래스 및 빈 생성 등을 진행할 것이다. Spring Security는 AuthenticationManager(ProviderManager)가 가지고 있는 provider 목록을 순회하면서 provider가 실행 가능한 경우에 provider의 authenticate 메서드를 호출하여 인증 절차를 수행한다. 따라서 4~8에 해당하는 과정을 커스텀하여 만들어줄 것이다.전체적인 과정은 아래와 같다.login 화면 구현 -> Spring Security 설정 수정 -> custcomUser..
▤ 목차1. Spring Security 설정 방법Spring Security 설정에 2가지 방법을 사용할 수 있다는 것을 알았다.java config 방식과 xml 방식인데 이 둘은 설정방법에는 차이가 있다. 이 둘의 차이를 먼저 알아보고 프로젝트에 적용하고자 했다. 1. Java Config 방식장점타입 안전성: Java Config 방식은 컴파일 시점에 오류를 검출할 수 있기 때문에 타입 안전성을 보장한다. 설정 중 잘못된 구문을 작성하면 컴파일 시점에 바로 경고를 받을 수 있다.IDE 지원: Java 코드 기반 설정은 IDE에서 코드 자동 완성 및 리팩토링에 대한 지원이 잘 제공된다.유연성: Java Config 방식은 조건부 로직을 넣거나 복잡한 설정을 처리하는 데 유연하다. Java 코드의 장..
▤ 목차1. 우편번호 API 활용우편번호와 주소를 입력하기 위해서 다음에서 제공하는 API를 활용할 수 있다.https://postcode.map.daum.net/guide Daum 우편번호 서비스우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다.postcode.map.daum.net2. 우편번호 개발1. 라이브러리 다운로드2. 우편번호 양식 고르기다음에서는 다양한 우편번호 양식을 제공한다. 이 중에 원하는 방식을 선택하여 구현하면 된다.1. 팝업을 이용하여 도로명 주소와 지번 주소 모두 보여주기2. 사용자가 선택한 값 이용하기3. iframe을 이용하여 레이어 띄우기4. iframe..
▤ 목차1. 소수 구하기1. 방법1 (N까지 나누기)N 보다 작은 자연수들로 나눈 후 소수인지 아닌지 판별하는 알고리즘이다. 시간복잡도: O(N²)public boolean isPrime(int n) { if (n 2. 방법2 (N의 제곱근보다 작은 수까지 나누기)첫 번째 방법에서 좀 더 발전된 방법으로 소수를 구할 때 N의 제곱근(√) 까지만 나눈다.소수인지 판별할 자연수의 제곱근을 기준으로 그 숫자의 약수들의 곱셈은 대칭적으로 곱셈이 일어나기 때문에 제곱근까지만 판별하면 된다. 만약 n=36일 때1×36=362×18=363×12=364×9=366×6=36 (제곱근에서 대칭의 끝) 즉, 약수는 작은 수와 큰 수로 짝을 이루고 있으며, 그 짝 중 하나는 항상 √n보다 작거나 같고, 다른 하나는 ..
▤ 목차1. 최대공약수 구하기최대공약수란 0이 아닌 두 개 이상의 정수의 공통되는 약수 중에서 가장 큰 수이다.여기서 유클리드 호제법을 이용하여 간편하게 최대공약수를 구할 수 있다.유클리드 호제법의 핵심은 큰 수를 작은 수로 나누어 떨어지게 한 뒤, 수를 반복적으로 수행하여 나머지 0이 될 때까지 작동하는 방법을 의미한다. 이때 작은 수가 최대공약수다. (주의할 점은 큰 수를 작은 수로 나눠야 한다는 것)예를 들어 1071과 1029의 최대공약수를 구하면,1071은 1029로 나누어 떨어지지 않기 때문에, 1071을 1029로 나눈 나머지를 구한다. ≫ 421029는 42로 나누어 떨어지지 않기 때문에, 1029를 42로 나눈 나머지를 구한다. ≫ 2142는 21로 나누어 떨어진다. 따라서, 최대공약수는..
▤ 목차1. 약수의 개수 구하기1. 방법1int N = 12345; // 숫자int cnt = 0; // 약수의 개수 for(int i=1; i이 방법은 number가 커질수록 비효율적이다. 2. 방법2 (효율적인 방법)int N = 12345; //숫자int cnt = 0; //약수의 개수for (int i = 1; i*i N의 약수 중 하나가 m이라고 했을 때, 다른 약수는 number/m이 되므로 하나의 약수를 알면 다른 하나를 알수있다.for문을 √N까지 구하면 약수 절반의 개수를 구할 수 있다는 걸 알 수 있다.즉 1~√N까지 수 중 N의 약수를 구해 × 2를 해주면 되고, 약수가 √N인 경우에 제곱근이므로 1개로 카운트해주면 된다. https://chwan.tistory.com/e..