전체 글 91

[ JAVA ] Queue 클래스

Queue 줄을 지어 순서대로 처리되는 자료구조로 데이터를 일시적으로 쌓아두기 위해 사용된다. 스택 ( FILO - First In Last Out ) 과 다르게 FIFO( First In First Out )구조를 가진다. BFS에서 사용된다. [ 사용법 ] import java.util.LinkedList; import java.util.Queue; Queue queue = new LinkedList(); //int형 queue 선언, linkedlist 이용 Queue allqueue = new LinkedList(); // 어떠한 자료형이든 삽입, 삭제 가능 = int와 String 데이터 공존 [ 데이터 추가 ] add(value) , offer(value)를 사용하여 추가할 수 있다. add(..

Java 2023.11.06

2023.10.21 찰리 푸스 내한 콘서트

드디어 기다리고 기다리던 찰리푸스 내한꒰ᐡ⸝ɞ̴̶̷ ·̮ ɞ̴̶̷⸝ᐡ꒱ 6월에 예매했는데 어느덧 10월 공연날! 아침에 일어나서 차 타고 서울로 총총… 출출해서 휴게소에서 먹었던 버터 옥수수 옥수수 너.모.조.아. 점심에 쌀국수 맛있게 먹으려고 조절해서 옥수수 하나만 먹었다. 이건 내 잘못된 판단이었는데… 12시 반쯤 더빛남에 도착하니 내 앞에 15팀이상이 있었다. 전에는 평일 오전에 왔어서 사람이 없던 것이었다. 심지어 우리 다다음 사람까지만 웨이팅 받고 조기마감까지 했으니 좀만 늦게 왔으면 못 먹을 뻔했다. (༎ຶ⌑༎ຶ) 밥도 안 먹고 아침 일찍부터 출발한 거라 배고픔에 지쳐 쓰러질 것 같았다. 。° ૮₍°´ᯅ`°₎ა °。 그렇게 한 시간 반을 기다려서 먹은 쌀국수 맛은 정말 인정… 고기 + 숙주를 ..

daily note 2023.11.05

[ 알고리즘 ] 깊이우선탐색 DFS - JAVA

[ 특징 ] 그래프 완전 탐색 기법으로 모든 노드를 검색한다. 시작노드에서 탐색할 쪽의 분기를 정해 최대깊이까지 탐색 후 다른 쪽 분기로 이동해 다시 탐색 = 넓게 탐색 전 깊이 탐색 재귀함수 or 스택을 이용하여 구현 - 순환 알고리즘의 형태 [ 시간복잡도 ] 인접리스트로 표현된 경우 O(V+E) [ V : 노드 수 , E : 에지 수 ] 인접행렬로 표현된 경우 O(N^2) 장점 : 단지 현 경로상의 노드만을 기억하면 되므로 저장공간의 수요가 비교적 적다. : 목표노드가 깊은 단계에 있을 경우 해를 빨리 구할 수 있다. 단점 : 단순 검색 속도는 BFS에 비하면 느리다. : 얻어진 해가 최단 경로가 된다는 보장이 없다. 이는 목표에 이르는 경로가 다수인 문제에 대해 DFS는 해에 다다르면 탐색을 끝내버..

알고리즘 2023.11.04

[JAVA] ArrayList와 ArrayList 배열 (비정형 배열)

ArrayList 기존의 배열 불편한 점 배열의 크기를 미리 할당하고 해당 크기 안에서만 사용가능 만약 더 많은 데이터를 담거나 데이터를 삭제 시 배열의 크기를 변경시키고 index 변경을 해야한다. 배열의 크기를 미리 할당하지 않고 데이터를 자유롭게 추가 및 삭제하고 싶다면 ArrayList를 사용하는 것이 하나의 방법이다. ArrayList는 일반 배열과 동일하게 인덱스 0부터 연속적인 메모리 공간을 사용한다. 내부적으로는 저장이 가능한 메모리 용량(capacity)과 현재 사용 중인 공간의 크기(size)가 존재한다. [ 선언법 ] import java.util.ArrayList; ArrayList list = new ArrayList(); // 데이터타입 선언을 하지않는 경우 object로 설정 ..

Java 2023.11.04

Multer 사용법

분명 공부했는데 또 까먹고 한참 헤맨 나 꼭 다시 공부해야 정리하는 사람 나야 나 ... s3에 저장하는 법은 다시 사용할 때 정리해야지 ... 1. multer 설치하기 npm i multer 2. 파일을 업로드하는 form에 enctype="multipart/form-data" 추가해 주기 Multer는 multpart가 아닌 form에선 동작 안 하니까 꼭 추가해 주기 🥹 + 하나의 input에서 여러 이미지나 영상을 받아야 할 때는 속성에 multiple를 추가해줘야 한다. + 해당 코드에선 영상 1개, 이미지 1개를 받을 예정이라 추가하지 않음 form.video-upload-form(action="/videos/upload",method="POST",enctype="multipart/form-..

기타 2023.08.25

[ MongoDB ] MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.

mongo DB 사용법을 배우고 약 3주 뒤... 다시 써보며 무언가를 만드려 코드를 작성하고 서버를 켰더니 MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.라는 에러가 뜨기 시작했다 😱 이유는 생각보다 간단했는데... .env파일에 DB url를 변수로 선언해 놓고 넣어놓고 사용하는데 dotenv를 import 안 했던 것 ㅠ.ㅠ 해결하는 순서는 1) 터미널에서 npm i dotenv를 입력해 dotenv 설치해 준다. 2) ..

기타 2023.07.21

[ react ] js파일에서 element height, width 변경하기

오늘 마주한 문제는 이미지 크기만큼 크기를 가져와 평점과 더 보기 버튼을 담은 element 크기에 똑같이 설정하는 것이었다. ( 오직 평점과 더보기 버튼을 포스터 hover시 포스터 가운데에 두기 위함... ) vanilla js에서만 살다가 react를 사용하니 css도 맘대로 할 수가 없었는데... js에선 element.clientWidth나 element.offsetWidth로 쉽게 가져와 style을 변경할 수 있었는데 여기선 useRef를 사용해야한다. useRef를 통해서 img의 현재 높이와 넓이를 가져오고 그걸 setHeight, setWidth함수를 통해 heigth, width 변수에 집어넣으며 movie-hidden이라는 클래스를 가지는 div의 style에 이 변숫값으로 높이와..

React 2023.07.16

[ JavaScript ] TypeError: [].map is not a function 해결하기

영화 정보를 가져와서 map함수를 이용해 뿌리기 위해 아래와 같이 코드를 짜고있었다. 그런데 난데없이 TypeError라며 movieList.map is not a function이라는 에러가 발생했다. const readMovieList = async ()=>{ const json = await( await fetch(`https://yts.mx/api/v2/list_movies.json?minimum_rating=8&sort_by=year`) ).json(); setMovieList(json); setLoading(false); } /////////////////// {movieList.map((movie)=>)} 이유가 뭘까 곰곰히 생각해보다가 movieList 데이터에 문제가 있어서 map이 제대..

JavaScript 2023.07.14