1. QueryDSL프로젝트 진행중, 가게를 조회하는 기능을 개발하고 있었는데page, size, 카테고리, 메뉴명, 가게명 등의 동적인 조건으로 쿼리를 해야 하는 상황이 있었다.메뉴명과 가게명은 부분일치해도 가게 목록을 가져와야 하고,카테고리는 categoryId가 정확히 일치해야하는 등 굉장히 복잡한 쿼리였다. QueryDSL은 JPA와 함께 사용되는 쿼리 빌더로 , 타입 안전한 쿼리를 작성할 수 있도록 도와준다. 1 - 1. 타입 안정성QueryDSL은 자바 코드로 쿼리르 작성하기 때문에, 컴파일 시점에 문법 오류를 잡아낼 수 있다.이는 문자열 기반의 JPQL이나 SQL과 달리 런타임 오류를 방지할 수 있어 안정성이 높다.// 잘못된 필드명을 사용하면 컴파일 시점에 오류가 발생queryFactory..
TIL
1. 문제 상황분명히 프로젝트에는 회원가입과 로그인 요청 API는 인증하지 않는다고 SecurityConfig에 선언해뒀다.그리고, 원하는 대로 잘 동작했다.그런데, 어느 순간 회원가입이 정상적으로 처리되지 않는 상황이 발생했다.아래 처럼 2. 원인 찾기2 - 1. 팀 공통 깃허브 레포에서 병합하는 과정에서 발생한 문제?처음에는 팀 공통 레포에서 pull 당긴 후에 벌어진 일이라병합하는 과정에서 뭔가 충돌이 있었겠거니 했다.팀원들에게 물어본 결과, 문제가 없다는 답변을 받았다.같은 레포를 pull 당겼는데 나만 문제가 생길 수가 있나? 2 - 2. SecurityConfig 를 다시 한 번 살펴보기package com.sparta.project.config;import com.sparta.project...
1. 오늘의 문제 - 촌수 계산 - 백준 : 2644번https://www.acmicpc.net/problem/2644 2. 문제 풀이 전략DFS로 그래프 탐색을 하면 될 것 같고,양방향 그래프이고,사람들이 100명뿐이 안되니까 인접행렬 사용하면 될 것 같다. 3. 풀이package io.conduktor.demos.dfsbfs.hanghaecote99.middler;import java.io.*;import java.util.StringTokenizer;// 8. 촌수 계산 - 백준 : 2644 - DFS, BFSpublic class ChonNumber8 { static int N; static int targetA; static int targetB; static int M;..
1. 오늘의 문제 - 모음 사전 : 프로그래머스 (Level 2)https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 문제 풀이 전략DFS로 만들 수 있는 단어를 전부 만든다.몇 번째로 만들어진 단어인지 확인한다.3. 풀이package io.conduktor.demos.dfsbfs.hanghaecote99.middler;import java.util.ArrayList;import java.util.List;// 7. 프로그래머스 - 모음 사전 - 그래프 이론public class Vowel..
1. 오늘의 문제 - 나무 자르기 - 백준 : 2805https://www.acmicpc.net/problem/2805 이분탐색!지금까지 갈고 닦은 이분탐색 실력을 뽐낼 시간이로군 2. 문제 풀이 전략이건 그냥 이분탐색만 알고 알고 있으면 간단히 해결될 것 같다. 3. 난관 봉착... 예제 입력을 넣었을 때 출력이 제대로 안 나옴근데 왜 첫 번째 예제 입력시 출력으로 15가 나와야 하는데 13이 나오는걸까? 두 번째 예제도 마찬가지. 36이 나와야 하는데 27이 나온다. 내가 작성한 로직은 아래와 같다.int result = 0;int left = 0;int right = 1000000000;while (left = M) { result = mid; left = mid + 1; ..
1. 오늘의 문제 - 알고리즘 수업 - 너비 우선 탐색 1 - 백준 : 24444번https://www.acmicpc.net/problem/24444 이름부터가 BFS로 풀라고 떠먹여준다.BFS는 참 좋다.공식만 알고 있으면 되니까.문제에서 친절하게 공식도 알려준다.2. 문제 풀이 전략2 - 1. 인접리스트로 접근정점수가 100,000 개이므로, 인접행렬로 그래프를 표현하면 메모리초과가 발생할 것이다.인접리스트로 그래프를 표현하자.// static int[][] adjMatrix; // 인접 행렬 안됩니다!static List> adjList; 2 - 2. 정렬예시의 입력을 살펴보면, 1번 정점과 4번 정점이 연결 되고, 1번 정점과 2번 정점이 연결 된다.결과적으로, 1번 정점과 연결된 정점들은 [..
1. 오늘의 문제 - 알고리즘 수업 - 깊이 우선 탐색 1 - 백준 24479번https://www.acmicpc.net/problem/24479 1년 전에 풀었던 문제가 나왔네?다시 한 번 풀어보자.다시 풀어봤는데, 첫 번째, 두 번째 제출은 틀렸고, 세 번째 만에 맞췄다.2. 문제 풀이 전략2 - 1. 인접리스트로 접근일단 정점수가 100,000이다.인접행렬로 풀 경우, 100,000 * 100,000 이니까 공간 복잡도가 어마어마해진다.정점수가 적을 때는 인접행렬로 풀어도 되지만, 이런 경우 인접리스트로 풀어야 시간초과가 안 난다.static List> adjList;2 - 2. 정렬예시의 입력을 살펴보면, 1과 4가 연결, 1과 2가 연결순으로 제시된다.1번과 연결된 놈들이 [4, 2] 가 되는..
1. 오늘의 문제 - 입국심사https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입국심사를 받을 사람 n명이 주어지고, 각 입국 심사관의 심사 시간이 배열로 주어진다.가령, n = 6, times = [7, 10] 으로 주어진다면입국심사를 받을 사람은 6명이고, 입국 심사관은 2명이고, 각각 7분, 10분이 걸린다는 의미다.자세한 제한사항은 링크를 통해서 확인하도록 하고... 2. 문제풀이 전략2 - 1. times 배열 정렬입국 심사관의 심사 시간 배열은 정렬되어 주어지지 않는다. 일단 정렬한..