전체 글 609

[ 노트 ] NextJS - TanStack Query 적용 이해

Q1. 기존 service에서 domainService 메서드를 추가한 이유는 해당 key값인 api가 없다면 별도의 error 문구를 던지기 위해서 작성했는데 이렇게 하지 않으면 어떤식으로 controller에서 error를 던질 수 있어? A1. controller 단에서 개별 함수(훅)으로 만들어서 각각 export하면 내보낼 당시 없는 메서드의 경우 에러가 발생하게 되니 해결되며, react/nextjs 생태계의 표준 모범에 부합. Q2. 서버 컴포넌트용 API라는 건 별도의 유저 조작없이 특정 페이지 접속시 보이는 데이터로 예를 들자면 쇼핑몰 페이지에서 추천 상품 목록이 아닌 일반적인 것으로 의류 중 상의 탭을 클릭하면 누구에게나 공통으로 보일 데이터의 경우엔 서버 컴포넌트용 APi를 제작해서..

노트 2025.12.08

Docker&Container - Docker로 MySQL 구동하기

개인프로젝트를 진행하며 관련 자료 학습을 진행하던 중 개발자 유미님의 영상을 보고 Docker로 MySQL을 구동하는 방법에 대해 알게 되어 포스팅하게 되었습니다.방법은 아주 간단하며 다음과 같습니다. 1, docker 설치 후 상단 검색창에 mysql 검색 후 Run2. Optional settings 내 Container name을 작성3. Host port 입력 (상단 것만 입력했음, ex. 3306)4. Environment variables에 필요한 값 추가 후 Run 클릭하여 생성- MYSQL_DATABASE: 생성할 데이터베이스 이름- MYSQL_USER: MYSQL_DATABASE에 모든 권한을 가질 새로운 사용자의 이름- MYSQL_PASSWORD (필수) : MYSQL_USER의 비밀번..

Docker&Container 2025.12.06

[백준, 자바, 14500번] 테트로미노

풀이해당 문제는 어떻게 푸는 방법이 좋을지 고민했을 때각 도형에 따른 변형을 최소화하면서, 기준 좌표로부터이동가능한 좌표 탐색을 4방향을 우선적으로 작성 후 값을 도출하는 것이 좋을 것 같다고 판단.다만, 이러한 노가다가 과연 적절한지 고민해봤는데 나쁘지 않을 듯해서 아래와 같이 작성그리고 무슨 5중 for문으로 해결한 문제는 이번이 처음인듯...그래도 최대한 코드를 가독성 좋으며, 구조적으로 작성하려고 노력하여 아래와 같이 작성.문제 자체는 크게 어려운 건 아니지만, 번거로웠다? 정도였음. import java.io.*;import java.util.Arrays;import java.util.StringTokenizer;public class _14500 { static BufferedReader..

알고리즘 2024.12.16

Docker&Container - Network 2. 컨테이너간 통신

컨테이너간 통신네트워크 생성터미널docker network create 작명ex) docker network create mynet1명령어docker network: 모든 명령어 조회docker network ls: 실행 중인 네트워크터미널에 컨테이너 넣기실행 중인 컨테이너를 넣는 방법도 있지만이미지 생성 시 해당 네트워크에 바로 넣는 방법을 배우고자 함 (더 편리)터미널docker run -d -p 포트 —network 네트워크 —name 작명 실행이미지:태그ex) docker run -d -p 80:80 —network mynet1 —name nginx-container nginx:1 (nginx)ex) docker run -d -p 8080:8080 —network mynet1 —name serve..

Docker&Container 2024.12.15

Docker&Container - Network 1. nginx 만들기

nginx 만들기컨테이너 간 통신하는 방법Reverse Proxy서버로 들어오는 요청 가로채는 프로그램Web Server와 함께 사용할 것임순서클라이언트가 Reverse Proxy로 들어오게 되면Reverse Proxy가 Web Server로 안내사용 이유(장점)서버 정보를 숨길 수 있음https 인증서 설치가 쉬움로드밸런싱 가능로그 남기기IP차단종류NginxcaddyNginx 로컬 설치 및 셋팅NginX 실행 순서Nginx 설치도커를 사용할 것이기에 우선 패스Nginx 설정 파일 작성Docker 폴더에 폴더와 파일 생성ex) nginx/myconfig1.conf이후 nginx 문법에 맞게 설정 코드를 작성해야 함.다만 따로 배운 적이 없기에 아래와 같이 우선 작성간단히 설명하자면listen 80 ← 8..

Docker&Container 2024.12.14

[백준, 자바, 1551번] 수열의 변화

풀이오늘은 간단하게 하나 풀기로 함우선 해당 문제는 단순히 수열이 주어질 때특정 인덱스를 앞 인덱스 값에서 뺀 값을 구하는 수를 구하는 문제이며M번 반복하게 되면 결과로 나오는 값의 개수는기존 N의 길이에서 N-M개로 줄어들기에 그것을 유념하여 풀어야 함또한 결과를 출력 시 ,를 기준으로 출력을 하는 것으로 해결하는 것으로다음과 같이 해결. import java.io.*;import java.util.*;import java.util.stream.Collectors;public class _1551 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; ..

알고리즘 2024.12.13

[백준, 자바, 6064번] 카잉 달력

풀이해당 문제는 처음에 무슨 말인가 하고 쭉 보다보니 x,y가 서로 독립적으로 변하는 문제인 것을 확인이후 우선 단순히 1씩 증가하고 M과N위를 벗어날 경우나머지를 활용하여 해결하고자 함.다만 이렇게 하니 시간 초과가 발생...역시나 정답 비율이 낮은 이유는 있다는 것을 느낌그래서 어떻게 해결할 수 있을지 고민하다가뭔가 규칙을 발견하게 됨.우선 아래 코드를 보면입력 값이 10 12 3 9의 경우엔 x를 기준으로 y를 변경 후M만큼 계속 y에 더하고 초과 시 나머지로 변경한다면간단히 해결이 됨입력 값이 10 12 7 2의 경우엔출력이 -1로 나오는 것으로 해결 방법에 대해 고민해 본 결과우선 공통적으로 x가 y보다 작은 값이 들어가도록 조건 처리하기이후 마찬가지로 10 12 3 9 입력 값처럼 연산을 하지..

알고리즘 2024.12.10

[백준, 자바, 5525번] IOIOI

풀이해당 문제를 처음 봤을 때는 substring으로 특정 문자열을 찾으면 되겠구나 했지만이렇게 쉬운데 정답 비율이 낮다는 건, 무슨 의도가 있겠구나 싶었음그래도 우선 시도해보고 그에 따라 변화를 주는 것이 좋을 것 같다고 판단하여그대로 실행했지만 역시나... 50%까지만 정답이후 어떻게 해볼까 고민하다가단순히 I와O의 반복되는 길이를 찾고해당 구간에서 N길이에 따른 문자열의 길이를 카운팅하면 되지 않을까하고알고리즘을 작성한 결과 무난히 통과! // 성공 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buffered..

알고리즘 2024.12.10

[백준, 자바, 1389번] 케빈 베이컨의 6단계 법칙

풀이해당 문제는 단순히 데이터 추가 후결과를 찾고자는 곳에 가장 마지막 유저를 제외하고BFS로 찾으며, 조건에 따라 mtx에 단계를 변경하는 것으로 해결내가 작성한 풀이에서 아쉬운 점은 예를 들어 N=5의 경우1번은 모든 사람에 대한 조사를 하기에2,3,4,5번의 모든 1번 mtx가 채워져 있기에2번은 2번은 같으니 제외하고3번부터 5번까지만 찾도록 하고 싶은데이를 어떻게 해결할 수 있을지를 고민해도잘 떠오르지 않아 그냥 마지막 사람을 제외한 모든 사람을 BFS로 탐색하는 것으로 해결...import java.io.*;import java.util.*;public class _1389 { static BufferedReader br = new BufferedReader(new InputStreamR..

알고리즘 2024.12.09

[백준, 자바, 30804번] 과일 탕후루

풀이해당 문제는 뭔가 어려웠다.우선 처음에는 어떻게 해결할 수 있을지 고민하다가누적합으로 해결 할 수 있지 않을까 했는데생각하다보니 20만 배열의 경우엔 너무 반복이 심할 것 같아서고민을 했지만 우선 진행하지만 역시나 시간초과...그래서 아래에 태그를 확인해보니 투 포인터물론 두 개의 인덱스로 어찌어찌 한다는 정도는 알지만어떤 경우에 사용하면 좋은지 이해하고자, 우선 개념을 이해하기로 함.주요 개념 포인터: 배열이나 리스트에서 특정 위치를 가리키는 인덱스입니다. 두 포인터: 왼쪽 포인터와 오른쪽 포인터를 초기화하고, 조건에 따라 이동시키면서 필요한 값을 찾습니다. 시간 복잡도: 보통 **O(N)**으로 동작하며, 완전 탐색(O(N²))에 비해 효율적입니다.투 포인터의 활용 구간 합 문제: 연속된 부분..

알고리즘 2024.12.06