본문 바로가기

분류 전체보기1129

DB 데이터 존재 확인 Count vs Limit vs Exists [상황] 문득, API을 개발하다가 DB 데이터 존재 유무를 확인할 때 Count, Limit, Exists에서 Count가 비효율적이라는 것은 알고 있지만, 실질적으로 얼마나 차이나는지는 확인해보지 못하였습니다. '쇠뿔도 단김에 빼라' 궁금한 내용에 대해서 뒤로 미루지 말고 직접 테스트를 진행해보았습니다. 테스트 환경 : MariaDB [탐색을 도와줄 DB Dump Table] create table DUMP ( id varchar(36) default uuid() not null primary key, name varchar(255) null, level varchar(255) null ); [Dump Table Data Count] 성능을 비교하기 위해서, Dump Table에 데이터를 20,000.. 2024. 4. 2.
[백준, Java] 28437번, 막대 만들기, (DP) 문제 링크 28437번: 막대 만들기 첫 줄에 $Q$개의 수를 공백으로 구분해 출력합니다. $i$번째 수는 길이가 $L_i$인 막대를 만드는 방법의 수입니다. 가능한 모든 입력에 대해 답이 $10^9$을 넘지 않음을 증명할 수 있습니다. www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. 기본으로 사용할 막대는 N개가 있으며, 각각 길이가 다릅니다. 2. 각 막대를 길이를 양의 정수 k을 설정해서 늘릴 수 있습니다. 3. Q개의 주어진 .. 2024. 3. 25.
[백준, Java] 1184번, 귀농, (누적합) 문제 링크 1184번: 귀농 상근이와 선영이는 도심 속의 삶에 싫증을 느꼈고, 친구 현수가 있는 시골로 농사를 지으려 내려왔다. 현수의 땅은 크기가 N×N 인 정사각형이고, 땅은 단위 정사각형 1×1로 나누어져 있다. 각 단 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. 땅은 N × N의 정사각형이며, 땅은 1 × 1 단위로 나누어져 있습니다. 2. 각 땅은 수익이 존재하며, 음수가 될 수도 있습니다. 3. 땅을 선영이와 선근이에게.. 2024. 3. 20.
[백준, Java] 14224번, 작은 정사각형2, (이분 탐색) 문제 링크 14224번: 작은 정사각형 2 문제의 조건에 맞는 정사각형 중에서 가장 넓이가 작은 것의 넓이를 출력한다. www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. 좌표 평면에는 N개의 꼭짓점이 존재합니다. 2. 정사각형의 꼭짓점은 모두 정수이며, 좌표 축과 평행해야 합니다. 3. 정사각형 경계 위에 있는 점은 정사각형 안에 있는 것이 아니다. 4. K개 점을 안에 담을 수 있는 정사각형의 최소 넓이를 결과로 출력합니다. 알고리즘.. 2024. 3. 14.
[백준, Java] 2613번, 숫자구슬, (이분 탐색) 문제 링크 2613번: 숫자구슬 첫째 줄에 구슬의 개수 N과 그룹의 수 M이 주어진다. 둘째 줄에는 각 구슬이 적혀진 숫자가 왼쪽부터 차례로 주어진다. N은 300 이하의 자연수, M은 N이하의 자연수이며, 구슬에 적혀진 숫자는 100 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. 숫자 구슬은 M개의 그룹으로 나누어야 합니다. 2. 그룹을 나누었을 때 각 그룹의 합 중 최대값이 최소값을 결과로 출력합니다. 3. 그룹에 포함된 숫자.. 2024. 3. 5.
Spring에서 Notification을 구현해보자(WebFlux, Reactor Sinks, SSE) 주의!! → 알림을 구현하기 위해서 경험을 정리한 글이며 대규모 트래픽은 환경은 아니지만, 알림(포탈, SMS, Email, Kakao Alim Talk)이 발생하는 서비스를 제공한 내용을 정리한 글입니다. → 잘못된 부분이 있을 수 있으며, 해당 부분에서는 바로바로 지적해주시면 정말 감사하겠습니다. [상황] 알림 서비스를 구현해야 하는 상황에 맞닥뜨렸다. 나는… 알림을 구현해본적이 없는데 먼저 구현하는 방법에 대해서 먼저 찾아보자!! 알림을 구현하는 방법에는 크게 4가지가 존재하며, 저는 SSE(Server-Sent Event)을 사용하였습니다. [알림을 구현하는 방법 4가지] 1) Short-Polling 클라이언트는 설정한 주기(예:2초)로 서버에 대한 요청을 반복한다. 장점 Client와 Serv.. 2024. 2. 27.