전체 글(593)
-
[알고리즘][동적계획법] 동전 교환 문제
동전 교환 문제 여러 동전의 값 coins = {c1, c2, ... , ck}과 만들어야 하는 목표 액수 n이 주어질때 가장 적은 수의 동전을 사용하여 합이 n이 되도록 하는 문제 예를 들어 coins = {1, 2 , 5}이고 n=12라면 최적해는 동전을 3개 사용하여 5 + 5 + 2 = 12입니다. 1. 탐욕법이 실패하는 경우 탐욕 알고리즘을 사용하여 문제를 해결하기 위해서 항상 액수가 제일 큰 동전을 택하되, 합이 목표 액수를 넘지 않도록 함 예를 들어 coins = {1, 2, 5}이고 n=12라면 제일 큰 5원짜리 동전 2개를 선택하고 2원짜리 동전 1개를 선택하면 답이 된다. coins = {1, 3, 4}, n=6 탐욕 알고리즘 : 4 + 1 + 1 = 6, 동전 3개 반례 : 3 + 3..
2022.11.22 -
[SpringBoot] SpringBoot H2 데이터베이스 설정
1. 의존성 추가 gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.projectlombok:lombok:1.18.24' runtimeOnly 'com.h2database:h2' } 2. h2 데이터베이스 설정 application.yml에 "local", "dev" 프로파일 그룹을 생성한 다음 "testdb" 프로파일에 h2 데이터베이스 설정을 하겠습니다. spring: profiles: group: "local": "testdb" "d..
2022.11.21 -
[코딩테스트] 프로그래머스 120897 약수 구하기
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120897 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 1. 정수 n이 주어질때 1 ~ n의 제곱근까지 순회하여 반복문 변수 i가 n으로 나누어 떨어지는지 확인 나누어 떨어진다면 i는 n의 약수 2. 리스트에 변수 i와 n / i의 결과를 추가 i가 n의 약수라면 n / i 또한 약수이기 때문입니다. 3. 리스트를 오름차순으로 정렬 후 정수형 배열로 변환하여 결과를 반환 예시 예를 들어 n = 24인경우 n의 제곱근은 4.xxx이므로 ..
2022.11.21 -
[SpringBoot] Spring Security #2 OAuth2
1. Client 만약 클래스패스에 spring-security-oauth2-client 프로퍼티가 설정되어 있다면, OAuth2/Open ID 클라이언트 연결에 자동 설정에 대한 이점을 가질 수 있습니다. 이 설정은 OAuth2ClientProperties 아래의 속성을 사용합니다. 서블릿 및 리액티브 애플리케이션 모두에 동일한 속성이 적용됩니다. spring.security.oauth2.client 접두어하에 여러개의 OAuth2 client와 provider를 등록할 수 있습니다. 다음 예제와 같이 등록할 수 있습니다. spring: security: oauth2: client: registration: my-client-1: client-id: "abcd" client-secret: "passwo..
2022.11.20 -
[SpringBoot] Spring Security #1 MVC, WebFlux Security
Spring Security 만약 Spring Security가 classpath에 있다면, 웹 애플리케이션들은 기본적으로 보호됩니다. Spring Boot는 Spring Security의 content-negotiation strategy에 의존하여 httpBasic을 사용할지 아니면 formLogin을 사용할지 결정합니다. content-negotiation stragegy : user agent(사용자를 대표하는 컴퓨터 프로그램, 웹 맥락에선 브라우저를 의미함)가 어떤 URI에 있는 리소스를 요청할때, 해당 리소스가 사용자에게 적절한 형태(예를 들어 컨텐츠를 한글로 보여줄지, 영어로 보여줄지)로 받도록 정하게 해주는 방법 httpBasic : Http Basic 인증, Http 프로토콜에서 정의한 ..
2022.11.20 -
[SrpingBoot] RestAPI에 대한 에러 핸들링
1. 개요 해당 글은 Spring REST API에 대한 예외 핸들링을 구현하는 방법에 대해서 소개합니다. 스프링 3.2 이전에 Spring MVC 애플리케이션의 에러 핸들링하는 두가지 방법은 다음과 같습니다. HandlerExceptionResolver @ExceptionHandler 스프링 3.2 이후에는 @ControllerAdvice 애노테이션을 사용하여 위 두가지 방법의 단점을 해결하고 전체 애플리케이션의 예외 처리를 하고 있습니다. 스프링 5에서는 ResponseStatusException 클래스를 소개합니다. 이것은 REST API에서 기본적인 에러를 다루는 가장 빠른 방법의 클래스입니다. 2. Solution1, 컨트롤러 레벨에서 @ExceptionHandler 사용하기 첫번째 솔루션은 @..
2022.11.18