전체 글
-
[백준 알고리즘] 단계별로 풀어보기 - 3단계 반복문 JAVA코딩테스트/백준 2023. 6. 2. 08:22
📑 Q2739 package step3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Q1_2739 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int input = Integer.parseInt(br.readLine()); for(int i=1; i
-
[JAVA] repeat 메서드, for문 대신 사용하기 간편!프로그래밍 언어/JAVA 2023. 6. 1. 10:56
📑 Repeat 메서드 String 메서드 중 String 문자열을 파라미터의 주어진 횟수만큼 반복한다. 자바11에 새로 추가된 String 메서드이다. 파라미터를 0으로 지정하면 빈 문자열을 반환한다. 파라미터를 음수로 지정하면 IllegalArgumentExceptionthrow 에러를 반환한다. 파라미터를 1로 지정하면 문자열을 그대로 반환한다. 사용 예제를 살펴보자. 백준 알고리즘에 다음과 같은 문제가 있다. repeat을 몰랐을 땐 이중 for문을 사용하였다. package step3; import java.io.*; public class Q9_2438 { public static void main(String[] args) throws IOException { BufferedReader br..
-
[Spring Boot] "Path with "WEB-INF" or "META-INF": [WEB-INF/view/index.jsp]"프로그래밍 언어/에러노트 2023. 5. 26. 14:22
WARN 28184 --- [nio-8081-exec-1] o.s.w.s.r.ResourceHttpRequestHandler : "Path with "WEB-INF" or "META-INF": [WEB-INF/view/index.jsp]" 위와 같은 에러가 떴을 때, 문제는 jsp 파일을 찾을 수 없다는 의미이다. 내장된 tomcat에 jsp를 처리하는 서블릿이 없기에 build.gradle이나 pom.xml에 jsp 처리하는 서블릿을 추가해주고 refresh ! implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' org.apache.tomcat.embed tomcat-embed-ja..
-
[JAVA] BufferedReader와 BufferedWriter 사용법프로그래밍 언어/JAVA 2023. 5. 25. 10:41
https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 백준 15552번에 보면 아래와 같은 설명이 있다. 앞선 문제를 풀면서 Scanner 대신 BufferedReader를 많은 사람들이 사용하고 있기에 BufferedReader의 개념을 익히고 사용할 수 있었다. 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. Java를 사용하고 있다면, Scanner와 Syste..
-
[Spring] MyBatis의 resultMap 살펴보기Back-End/Spring Legacy 2023. 5. 24. 14:20
📑 resultMap이란? resultMap이란 myBatis에서 제공하는 자동 매핑으로 해결이 어려운 경우를 위해 구조를 설계할 수 있도록 만들어진 구조이다. 📑 클래스 객체 필드명과 테이블 컬럼명이 다를 때 클래스 객체가 다음과 같을 때 @Getter @Setter public class User { private int id; private String username; private String hashedPassword; } map 형태로 값을 매핑해서 조회하는 구문이 있다. select id, username, hashedPassword from some_table where id = #{id} 만약 테이블 컬럼명과 클래스 객체의 필드명이 동일할 경우 문제 없이 값이 매핑된다. 하지만 만약 쿼..
-
[JAVA Stream] map, filter, sorted 사용법 알아보기프로그래밍 언어/JAVA 2023. 5. 24. 11:48
책을 보며 공부하고 있는데 다음과 같은 문장이 나왔다. vo.getAuthList().stream() .map(auth -> new SimpleGrantedAuthority(auth.getAuth())).collect(Collectors.toList()) 이는 AuthVO 인스턴스를 GrantedAuthority 객체로 변환하는 과정이다. 여기서 map의 사용법에 의문을 가졌다. https://wonisdaily.tistory.com/133 [ch14 Stream] 스트림 생성과 연산, Optional 📑 스트림(Stream) 이란? 지금까지 많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기 위해 for문과 Iterator를 이용해 코드를 작성해왔다. 그러나 이런 방식으로..
-
[Spring Security] 인증(Authentication)과 권한 부여(Authorization)Back-End/Spring Boot 2023. 5. 19. 11:28
스프링 시큐리티의 기본 동작 방식은 서블릿의 여러 종류의 필터와 인터셉터를 이용해 처리된다. 필터는 서블릿에서 말하는 단순한 필터를 의미하고, 인터셉터는 스프링에서 필터와 유사한 역할을 한다. 필터와 인터셉터는 특정한 서블릿이나 컨트롤러의 접근에 관여한다는 점에서 유사하지만 결정적인 차이를 구분하자면, 필터는 스프링과 무관하게 서블릿 자원이고, 인터셉터는 스프링의 빈으로 관리되면서 스프링 컨테스트 내에 속한다는 차이이다. 인터셉터의 경우는 스프링의 내우베엇 컨트롤러를 호출할 때 관여하기 때문에 스프링 컨텍스트 내에 있는 모든 자원을 활용할 수 있다. 스프링 시큐리티를 이용하면 위와 같이 인터셉터와 필터를 사용하면서 별도의 컨텍스트를 생성해서 처리한다. 스프링 시큐리티는 현재 동작하는 스프링 컨텍스트 내에..