카테고리 102

[스프링 Security] SpringBoot + JWT 인증 기본 설정

백엔드 입사 과제에 API 서버 제작이 단골로 등장하여 그 보안으로 간단한 JWT 인증을 연습하면서 정리한 내용이다. 기본적인 JWT 인증 서버 구축에 도움이 되길 바란다. 설정 Gradle // Spring Security + JWT implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'io.jsonwebtoken:jjwt:0.9.1' security와 jwt 추가 SecurityConfig 기존의 websecurityconfigureradapter를 상속하여 구현하는 방식이 사장된다고 해서, 새로운 방법으로 설정을 했다. 참고 : https://spring.io/blog/..

스프링/Security 2022.08.22

[백준 9465 java 자바]스티커 (DP-타일 붙이기 Style)

[Silver I] 스티커 - 9465 문제 링크 성능 요약 메모리: 142120 KB, 시간: 672 ms 분류 다이나믹 프로그래밍(dp) 문제 설명 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다. 상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 사용할 수 없게 된다. 모든 스티커를 붙일 수 없게된 상냥이는 각 스티커에 점수를 매기고, 점수의 합이 최대가 되게 스티커를 떼어내려고 한다. 먼저, 그림 (b)와 같이 각 스티커에 점..

[백준 2193 java 자바]이친수 (DP-이차원배열)

[Silver III] 이친수 - 2193 문제 링크 성능 요약 메모리: 11464 KB, 시간: 76 ms 분류 다이나믹 프로그래밍(dp) 문제 설명 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되므로 이친수가 아니다. N(1 ≤ N ≤ 90)이 주어졌을 때, N자리 이친수의 개수를 구하는 프로그램..

[백준 11057 java 자바] 오르막 수 (DP-이차원배열)

[Silver I] 오르막 수 - 11057 문제 링크 성능 요약 메모리: 11544 KB, 시간: 80 ms 분류 다이나믹 프로그래밍(dp) 문제 설명 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다. 입력 첫째 줄에 N (1 ≤ N ≤ 1,000)이 주어진다. 출력 첫째 줄에 길이가 N인 오르막 수의 개수를 10,007로 나눈 나머지를 출력한다. 풀이 자리수 + 올 수 있는 수로 점화식을 세우는게 중요하다. 세번째 자리에..

[백준 10844 java 자바] 쉬운 계단 수 (DP-이차원배열)

[Silver I] 쉬운 계단 수 - 10844 문제 링크 성능 요약 메모리: 14184 KB, 시간: 120 ms 분류 다이나믹 프로그래밍(dp) 풀이 dp인 것을 생각하는게 중요하고, 자연수의 자릿수에 대해 이해하는 것이 중요하다. ex) 12345 자연수가 있으면, 배열 숫자로 [5][4][3][2][1] 로 표현한다. 2번째 자리에 올 수 있는 숫자는 [2][0]/[2][1].../[2][9] 이렇게 생각하면 된다. (오른쪽에서 왼쪽으로 [자연수 자릿수][올 수 있는 숫자]) 나누는 숫자가 있는 경우, dp에 값을 넣을 때 마다, 나중에 결과를 제출할 때 또 mod로 나눠줘야한다. 코드 import java.io.BufferedReader; import java.io.IOException; imp..

[MVC 기초] Spring Boot File Upload/Download 구현하기 (+ multipart/form-data 설명)

Spring Boot 파일 Upload Form 구현하기 form 데이터는 2가지로 구분된다. application/x-www-form-urlencoded multipart/form-data 여기서 application/x-www-form-urlencoded 는 일반적인 key-value 의 form 데이터 전송을 담당하고, 파일과 다양한 정보들을 함께 넘겨야 하기 때문에 multipart/form-data를 사용한다. multipart-form form에서 enctype으로 multipart라고 명시한다. ... enctype="multipart/form-data" : 멀티파트로 form 데이터를 넘긴다는 뜻 multipart-form 예제 Request Header POST / HTTP/1.1 Hos..

스프링/MVC 2022.07.26

[MVC 기초]Spring Formatter Date, Number 원하는 포맷으로 변환하기

Formatter란? Formatter는 객체를 특정 형식의 문자로, 특정 형식의 문자를 객체로 변환해주는 객체를 의미한다. 스프링은 기본적으로 특정 객체를 정해진 양식으로 변환해주는 기능을 지원해준다. 숫자, 날짜 변환 @Data static class Form { @NumberFormat(pattern = "###,###") private Integer number; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime localDateTime; } @NumberFormat(pattern = "###,###" : 숫자를 지정된 pattern으로 변환 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:..

스프링/MVC 2022.07.26

[MVC 기초] Custom 객체 Converter 생성, ConversionService에 등록해 자유롭게 변환하기 (+thymeleaf에서 변환법)

특정 객체 Converter 만들기 Converter 인터페이스를 구현하여 변환을 원하는 객체, 결과 순으로 입력한다. ex) IP, port를 변수로 가지고 있는 IpPort 객체를 String으로 변환해보자. 원하는 객체 생성 (IpPort) @Getter @EqualsAndHashCode public class IpPort { private String ip; private int port; public IpPort(String ip, int port) { this.ip = ip; this.port = port; } } @EqualsAndHashCode : @Data를 등록하면 자동으로 생성되는 롬복 제공 기능이다 객체가 같은지 equals를 제공해준다. IpPort 객체를 원하는 객체로 변환 Co..

스프링/MVC 2022.07.25

[백준 15990 java 자바] 1, 2, 3 더하기 5 (DP)

[Silver II] 1, 2, 3 더하기 5 - 15990 문제 링크 성능 요약 메모리: 19196 KB, 시간: 240 ms 분류 다이나믹 프로그래밍(dp) 문제 설명 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 3가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 단, 같은 수를 두 번 이상 연속해서 사용하면 안 된다. 1+2+1 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 100,000보다 작거나 같다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 ..

Window 작업표시줄 어플리케이션 깜빡이는 알림 끄기 (앱에 알람이 뜰 때마다 작업 표시줄이 가리지 않게 하는 방법)

평소 윈도우의 작업표시줄을 숨겨놨었는데, 카톡 채팅이 오거나 메일이 오거나 알림이 필요한 경우에 작업표시줄이 자꾸 드러나서 화면을 가리는 경우가 많았다. 그래서 해결책을 찾았다. 문제 평소에 작업표시줄을 자동숨기기 해서 사용하는데 아래와 같은 알림이 발생하면 작업표시줄이 화면을 가려 불편합니다. 이 알림이 아예 뜨지않도록 하는 방법이 있나요? 해결 방법 윈도우 registry 설정을 변경하여 주황 반짝이 알림을 끌 수 있습니다. 1. 윈도우 + R키, 혹은 시작에서 실행을 검색하여 눌러 실행을 열어줍니다. 이후 regedit 을 작성하여 확인을 누릅니다. ) Registry Editor에서 해당 경로에 접근합니다. HKEY_CURRENT_USER\Control Panel\Desktop 경로에 접근합니다...

1 2 3 4 5 6 7 ··· 11