본문 바로가기

전체 글149

[AnswerDev] 3. Security 필터와 permitAll() 대충 Jwt 인증 필터를 구현했다.Role은 크게 필요성을 느끼지 못 해서, 인가 필터는 따로 구현하지 않았다. 이후 내가 작성한 JwtAuthenticationFilter을 UsernamePasswordAuthenticationFilter 직전에 거치도록 해 주었다.여기서 UsernamePasswordAuthenticationFilter은 Spring Security가 기본적으로 인증된 요청인지 검사할 때 사용하는 필터라서, 커스텀 인증 필터를 구현할 땐 해당 필터 앞에 거치도록 만들어주면 된다.// SecurityConfig.java@Beanpublic SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { ht.. 2024. 8. 17.
[AnswerDev] 2. 비동기 처리 지금까지 스프링부트로 개발했을 때에는, DB나 API 요청이 많으면 서비스가 그 요청을 완료할 때까지 잠시 멈췄었다.요청을 모두 순차적으로 처리하고, 한 번에 하나의 요청만 처리했기 때문이다.그래서 서비스의 성능을 향상시키기 위해서는 요청을 처리하는 속도를 높이거나, 동시에 여러 작업을 처리할 수 있게 해줘야 했다. 그래서 비동기 처리를 허용했다. // AnswerDevApplication.java@EnableAsync@SpringBootApplicationpublic class AnswerDevApplication { public static void main(String[] args) { SpringApplication.run(AnswerDevApplication.class, args); }}자신의.. 2024. 8. 15.
[AnswerDev] 1. 해답 크롤러 개발 준비 백엔드 파트를 독학이 아니라 본격적으로 배운 지 어언 반년 정도가 흘렀고, 현장실습을 진행한 지도 어언 한 달이 넘어갔다.그래서 내가 지금까지 만들었던 프로젝트들을 돌아봤는데... 진짜 말이 안 나올 정도로 처참했다...코드의 구조가 제대로 짜여져 있지도 않았고, 하나의 컨트롤러/서비스에 모든 함수를 다 집어넣어 놓았던 충격적인 사태가 내 눈에 보였다...분명 그 당시에는 나름 구조적으로 잘 설계했다고 생각했었는데, 진짜 마음가짐이 지금이랑 확연한 차이를 보이고 있다...심지어 스프링부트 프로젝트 하나로 프론트엔드-백엔드를 모두 만드려다 보니, 서버에서 클라이언트로 데이터를 보낼 때 JSON으로 보내는 게 아니고 이상하게 보내고 있었다... 진짜 너무 참혹한 광경이었다. 내가 이렇게 코드를 짰었다고..... 2024. 8. 10.
[백준] JAVA 자바 : 바이러스 (2606번) 가장 전형적인 너비 우선 탐색의 문제라고 볼 수 있다.연결된 그래프의 정점들을 탐색한다면 정점을 몇 번 순회하게 되는지 구하면 된다.사실 깊이 우선 탐색으로 풀어도 답은 똑같이 나올 것 같은데, 문제가 요구하는 대로 푸려면 너비 우선 탐색이 더 적합한 것 같다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Virus { static int N; // 컴퓨터의 수 static int M; // 간선의 수 .. 2024. 7. 11.
[백준] JAVA 자바 : 팰린드롬 만들기 (1254번) 앞에서 읽으나 뒤로 읽으나 같아지는 팰린드롬을 가장 짧게 만드는 문제이다. 근데 사실 푼 지 거의 2주가 지나서 어떻게 풀었는지 자세하게 기억이 나진 않는다(...)분명 보고 쉽게 파악할 수 있는 코드를 짜려고 노력했는데...ㅋㅋㅋ 대충 i~j번째 글자를 잘라내서, 뒤집어도 똑같은 단어 중 가장 길이가 짧다면 그 때 남은 단어를 붙인 길이를 구하는 방식으로 짰던 것 같다.자세한 건 나도 좀 더 봐야 알 수 있을 듯...import java.util.*;import java.io.*;public class MakePalindrome { public static void main(String[] args) throws IOException { BufferedReader br = new Buff.. 2024. 7. 9.
[백준] JAVA 자바 : 일곱 난쟁이 (2309번) 주어진 아홉 마리의 난쟁이의 키를 보고, 일곱 마리의 난쟁이의 키를 구하는 것이다. 이 문제는 어렵지 않게 구할 수 있다. 나는 아래와 같은 로직으로 해결했다.1. 아홉 마리의 난쟁이의 키를 모두 더한 후, 100과 빼서 그 차이(diff)를 구한다.2. 아홉 마리의 난쟁이의 키를 중첩 반복문으로 돌면서, 둘의 키의 합이 diff가 되는 두 i, j를 구한다.3. i번째와 j번째 난쟁이의 키를 0으로 만든 후 배열을 정렬하고 출력한다. 이 정도만 보면 다들 쉽게 해결할 수 있을 거라고 생각한다.i와 j를 구했다면 diff를 9999로 바꿔주어야 하는데, 그 과정이 없다면 외부 for문을 계속 돌아서 똑같은 i와 j 밸류가 있다면 그것까지 0으로 바꾸기 때문... import java.util.*;impo.. 2024. 6. 21.
반응형