본문 바로가기

전체 글360

[Java] 프로그래머스: 게임 맵 최단 거리 BFS 최단 경로를 찾는 문제에서는 도착점에 도달한 순간 종료되는 BFS를 이용한다. DFS는 모든 경로를 탐색하기 때문에 적합하지 않다. [그래프 탐색] BFS / DFS [그래프 탐색] BFS / DFS BFS(Breadth-First Search) : 너비 우선 탐색 한국에서 여러 경유지를 거쳐 미국으로 향할 때, 어떤 경로가 가장 최단 거리일까? 최대한 넓게 이동하다가 더 이상 이동할 수 없을 때 아래로 이동하는 방 cookiee.tistory.com 전체 풀이 import java.util.*; class Solution { // 상하좌우 이동할 수 있는 좌표 int[] dx = {0, 1, -1, 0}; int[] dy = {1, 0, 0, -1}; public int solution(int[.. 2022. 11. 20.
[그래프 탐색] BFS / DFS 대표적인 문제 유형 1. 경로 탐색(최단 거리, 시간) 2. 네트워크 연결 3. 조합 [Python] 백준 1260번: DFS와 BFS 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. cookiee.tistory.com BFS(Breadth-First Search): 너비 우선 탐색 그래프에서 가까운 노드부터 우선적으로 탐색한다. 주로 두 정점 사이의 최단 경로를 찾을 때 사용한다. 방문한 노드를 차례로 저장한 후 꺼낼 수 있는 자료 구조 Queue를 사용한다. 경로가 매우 길 경우에는 탐색 가지가 증가함에 따라 많은.. 2022. 11. 19.
[Spring Data JPA] 커서 기반 페이지네이션(Pagination) 보호되어 있는 글 입니다. 2022. 11. 19.
[Pre Project] Day 13 : 프로젝트 배포 기여한 내용 배포 시 발생한 CORS 이슈 해결 새롭게 배운 내용 AWS EC2로 Spring Boot 서버를 배포하는 흐름 보강할 내용 · 서버 배포의 개념과 방법 · CORS 회고 오늘은 Stack Overflow 사이트를 클론 코딩 한 프리 프로젝트의 배포일이다. 배포는 다른 백엔드 팀원이 맡아 주셨고, 오전 중에 백엔드, 프론트엔드 양측 서버의 배포가 완료되었지만, 프로젝트 이전까지 학습을 해 오면서 보안 파트 다음으로 배포 과정이 어렵게 느껴졌었기에 과정에 대한 설명을 요청드려 정리했다. 먼저 백엔드 서버는 어느 정도 API 개발이 완료된 이후부터 AWS의 EC2를 통해 배포해 왔었다. 인스턴스(ubuntu) 내에서 git clone을 통해 빌드 과정을 거치지 않고, 인텔리제이에서 빌드를 하여 .. 2022. 11. 7.
[Spring Security] CORS(Cross-Origin Resource Sharing) 설정 🍕 CORS(교차 출처 자원 공유)란? 요청을 받는 백엔드 쪽에서 이를 허락할 다른 출처들을 미리 명시하여 다른 출처 간에 리소스를 공유할 수 있도록 한다. 브라우저는 다른 출처끼리의 요청이 보내질 때 요청에 Origin이라는 header(데이터가 전송될 때 데이터의 맨 앞쪽에 붙은 보충 정보 - 받는 쪽의 IP 주소, 사용할 프로토콜이나 옵션 등)를 추가한다. Origin에는 요청하는 쪽의 scheme(요청할 자원에 접근할 방법인 프로토콜 http, ftp, telnet)과 도메인, 포트가 담긴다. https:// : scheme naver.com : 도메인 :443 : 포트 요청을 받은 서버는 답장의 헤더에 지정한 Access-Control-Allow-Origin 정보를 실어서 보낸다. 여기에 요청을.. 2022. 11. 6.
[Pre Project] Day 12 : 개발 완료일 기여한 내용 질문과 답변으로 긴 글을 담을 수 있도록 DB 컬럼 타입 변경 새롭게 배운 내용 🧸 Spring Boot에서 JPA를 통해 데이터베이스(MySQL)를 관리할 때 데이터 타입 지정하기 // 컬럼에 들어갈 수 있는 최대 값보다 넣으려고 하는 데이터가 더 클 때 발생하는 오류 com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'body' at row 1 @Entity가 붙은 클래스는 JPA가 관리하며, 클래스와 테이블을 매핑시킨다. 이때 클래스 안에 String 타입의 필드가 존재할 때 아무런 설정도 하지 않으면 기본적으로 varchar(255) 타입의 컬럼이 된다. @Column(c.. 2022. 11. 4.