분류 전체보기 799

[Spring Security] 인가 프로세스 DB 연동 웹 계층 구현

스프링 시큐리티 인가 개요 DB 연동 권한 관리가 필요한 이유 Spring Security에서 사용자가 재정의하여 사용하는 SecurityConfig 설정 클래스를 통해 선언적 방식으로 인가 처리를 수행할 수 있다. 단, 이 방법은 하드코딩으로 진행되기 때문에 동적 권한 관리가 필요한 범용 서비스에서는 권장되지 않는다. 따라서 DB와 연동하여 자원 및 권한을 설정하고 제어함으로 동적 권한 관리가 가능하도록 해야 한다. 설정 클래스 소스에서 권한 관련 코드 모두 제거 ex) antMatcher(“/user”).hasRole(“USER”) 관리자 시스템 구축 회원 관리 – 권한 부여 권한 관리 – 권한 생성, 삭제 자원 관리 – 자원 생성, 삭제, 수정, 권한 매핑 권한 계층 구현 URL – Url 요청 시..

Dev/Spring 2023.02.19

[Lv.2 / 프로그래머스 / SQL] 동명 동물 수 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 중복된 이름의 동물의 수를 조회해야 한다. 단, 중복되지 않은 것을 모두 제외해야 하고 이름이 NULL인 것을 조회하면 안 된다. 이름별로 묶어 세야 하므로 GROUP BY와 COUNT를 이용해야 하고, 그 COUNT된 컬럼의 수가 2이상인 조건을 걸어줘야 한다. 여기서, WHERE이 아닌 HAVING에 입력해야 하는데 WHERE에 조건을 입력하면 Unknown column 'COUNT' in 'where clause' 과 같은 오류가 발생할 것이다. 이 예외는 SELECT 절 이전에 WH..

[Lv.2 / 프로그래머스 / SQL] 고양이와 개는 몇 마리 있을까

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) GROUP BY 와 함께 쓸 수 있는 함수인 COUNT를 이용해 ANIMAL_TYPE별로 개수를 세야 한다. 단, COUNT를 사용할 경우 지정한 컬럼의 데이터가 NULL인 행은 제외하고 가져온다. 따라서 * 기호를 사용해 모든 행을 불러오거나, NULLABLE이 아닌 컬럼을 지정하도록 하자. SELECT ANIMAL_TYPE , COUNT(ANIMAL_ID) AS count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE

[Lv.1 / 프로그래머스 / SQL] 이름이 없는 동물의 아이디

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이름이 NULL인 동물의 아이디를 조회해야 한다. 확인하고자 하는 컬럼 뒤에 IS NULL 을 사용함으로써 해당 컬럼의 값이 비어 있는지 확인할 수 있다. SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL

[Lv.2 / 프로그래머스 / SQL] 최솟값 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 주어진 테이블에서 DATETIME이 가장 먼저인 것을 조회해야 한다. MIN 함수를 통해 최솟값을 구할 수 있으며, 조회된 컬럼명은 끝에 AS 를 이용하여 '시간'으로 컬럼명을 변경할 수 있다. 문제에 기술된 것처럼 굳이 컬럼명을 바꾸지 않아도 정답처리는 된다. SELECT MIN(DATETIME) AS 시간 FROM ANIMAL_INS

[Lv.1 / 프로그래머스 / SQL] 어린 동물 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) INTAKE_CONDITON이 'Aged'가 아닌 경우를 조회해야 한다. SELECT ANIMAL_ID , NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION NOT LIKE "Aged" ORDER BY ANIMAL_ID

[Lv.1 / 프로그래머스 / SQL] 아픈 동물 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) INTAKE_CONDITION이 Sick 인 경우를 찾아 ANIMAL_ID가 오름차순인 순으로 조회해야 한다. SELECT ANIMAL_ID , NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = "Sick" ORDER BY ANIMAL_ID

[Lv.1 / 프로그래머스 / SQL] 특정 옵션이 포함된 자동차 리스트 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) LIKE를 통해 OPTIONS 안의 문자열에 '네비게이션'이 포함되어 있는지 검사한다. 이후 ORDER BY 로 정렬하되, DESC를 이용하여 내림차순으로 정렬한다. SELECT CAR_ID , CAR_TYPE , DAILY_FEE , OPTIONS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE "%네비게이션%" ORDER BY CAR_ID DESC

반응형