전체 글 163

[JS] requestAnimationFrame과 setInterval

무슨 차이가 있을까?requestAnimationFrame과 setInterval은 둘 다 인터넷 브라우저의 렌더링 엔진이 제공하는 내장함수이다.requestAnimationFrame은 cancelAnimationFrame과, setInterval은 clearInterval과 세트로 쓰이는데, 주로 애니메이션 효과를 위해 많이 사용한다.그런데 이 두 함수 그룹, 어떤 차이가 있을까?setInterval정확히 따지자면, setInterval은 특정 기능을 반복하는, 일종의 루프를 만들어 내는 함수라고 볼 수 있다. 개발자가 지정한 일정 시간마다 내부 코드를 반복하는, while문이라고 생각하면 편할 것 같다.왜 굳이 requestAnimationFrame을 사용해야 할까?requestAnimationFr..

기타 2025.06.29

[프로그래머스 LV.3 숫자 게임]

문제 설명xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다.먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다.각 사원은 딱 한 번씩 경기를 합니다.각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, 승리한 사원이 속한 팀은 승점을 1점 얻게 됩니다.만약 숫자가 같다면 누구도 승점을 얻지 않습니다.전체 사원들은 우선 무작위로 자연수를 하나씩 부여받았습니다. 그다음 A팀은 빠르게 출전순서를 정했고 자신들의 출전 순서를 B팀에게 공개해버렸습니다. B팀은 그것을 보고 자신들의 최종 승점을 가장 높이는 방법으로 팀원들의 출..

algorithm 2025.06.09

[프로그래머스 LV.3 가장 긴 팰린드롬]

문제 설명앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다.제한사항문자열 s의 길이 : 2,500 이하의 자연수문자열 s는 알파벳 소문자로만 구성풀이답이 될 수 있는 최대값인 문자열 s의 길이로 answer 변수를 초기화했다.순회 방식은 큰 값부터 점차 작은 값으로 내려가도록 했는데, 가장 큰 값을 찾으면 끝났기 때문에 반복문 탈출을 위한 key 변수를 생성해서 사용했다. 지금 생각해 보면, key 변수를 사용하지 않고 바로 re..

algorithm 2025.06.07

[Java] float를 잘 사용하지 않는 이유

실수형 표기, 왜 float를 사용하는 것을 권장하지 않을까?Java에서 제공하는 실수형 표기를 위한 자료형은 두 가지가 있는데, 바로 float와 double이다.'float는 32비트, double은 64비트라서 메모리 사용량이 더 적으니 사용을 권장해야 하는 것 아닐까?' 라는 의문점이 생길 수도 있다.하지만, 하지만 실제로는 오히려 double의 사용이 일반적으로 권장된다. 그 이유는 다음과 같다.메모리를 아낄 필요가 없음과거에는, 메모리의 비용이 높았다. 그렇기 때문에, 메모리 구입으로 인한 하드웨어 비용을 절약하기 위해 float를 쓸 수도 있었을 것이다.하지만, 지금에 이르러서는, 기술의 발전으로 인해 메모리 구입 비용이 급격하게 줄어들었다. 그렇기 때문에, 단순히 '메모리를 적게 사용한다...

java 2025.06.02

[octopus.do] 페이지 와이어프레임 만들 때 사용하기 좋은 사이트

웹 페이지를 기획할 때, 마땅히 정해진 틀이 없어서 팀원들과 공유할 때 알아보기 힘든 경우가 가끔 있었다.그래서 찾아본 게, 이 사이트이다. 바로 octopus.do이다. octopus.do는 무료 사용자에게는 1개의 프로젝트만 만들 수 있게 하고 있다.구독 가격은 프로 버전은 10$, 팀 버전은 42$로 책정되어 있다. 이제 이걸로 프로젝트를 만들어 보겠다.프로젝트를 처음 생성하면, 메인 섹션에서 페이지 하나와 그 하위 페이지 3개가 구성되어 나온다.그리고 서브 섹션에서 쿠키 페이지와 404 에러 페이지가 구성된다. 다른 섹션을 추가하거나 추가로 페이지를 생성할 수도 있으니, 이제 기능을 살펴보도록 하겠다.각 블록들은 9 종의 색상과 11 종의 와이어프레임, 그리고 2 종의 화살표 타입을 사용할 수 있..

기타 2025.05.07

[프로그래머스 LV.3 야근 지수]

문제 설명회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요.제한 사항works는 길이 1 이상, 20,000 이하인 배열입니다.works의 원소는 50000 이하인 자연수입니다.n은 1,000,000 이하인 자연수입니다.입출력 예works n result[4, 3, 3] 4 12[2, 1, 2] 1 6[1,1] 3 0입출력 예 설명..

algorithm 2025.04.30

[kafka] kafka 알아보기

공식 홈페이지: https://kafka.apache.org/이벤트 스트리밍이란이벤트 소스에서 이벤트 스트림 형태로 실시간으로 데이터를 수집하고, 이벤트 스트림을 나중에 검색할 수 있도록 저장하며, 이벤트 스트림을 실시간 또는 소급적으로 조작/처리/대응하고, 필요에 따라 다양한 목적지 기술로 라우팅하는 방식이다.데이터의 지속적인 흐름과 해석을 보장해, 적절한 정보가 적절한 시간과 장소에 제공될 수 있게 돕는 것이 기술의 목적이다. 인체로 예시를 들어본다면, 눈(이벤트 소스)으로 계란이 어디에 있는지 확인(데이터 수집)한 다음. 그걸 기억(저장)한다. 그 뒤 계란을 사용해야 할 일이 생길 때, 장소를 기억한 다음 발을 통해 이동(라우팅)하는 일련의 과정을 이벤트 스트리밍이라 할 수 있을 것이다.kafka..

기타 2025.04.29

[OpenCV] 성능 측정 및 개선 방법

공식 문서 링크OpenCV를 통한 성능 측정cv.getTickCount() 함수는 기준 이벤트 후 이 함수가 호출되기까지의 클럭 사이클을 반환한다.클럭 사이클이란?: CPU가 연산을 수행하는 최소 시간 단위cv.getTickFrequency() 함수는 1초 동안 발생하는 클럭 사이클 수를 반환한다.측정 방법 예시( 종료 시점의 cv.getTickCount() - 실행 시점의 cv.getTickCount() ) / cv.getTickFrequency()OpenCV의 기본 최적화OpenCV는 SSE2, AVX 같은 SIMD 명령어 최적화를 지원한다.SIMD 명령어란?: SIMD = 단일 명령으로 다중 데이터를 동시에 연산하는 방식이다. CPU가 지원하는 경우, 한 번의 명령으로 여러 값을 동시에 계산하게 해..

OpenCV 2025.02.03

[OpenCV] 이미지에서 산술 연산을 진행하는 방법

이미지 병합두 개의 이미지를 병합하려면, cv.add()나 numpy 연산으로 image1 + image2 로 처리할 수 있다.cv2.add(이미지 1, 이미지 2)cv 덧셈 연산은 최대값을 넘어갈 경우 최대값으로 값을 제한한다.numpy 연산은 최대 범위를 초과하면 초과분을 다시 0부터 시작한다.이미지 블렌딩혼합 또는 투명도를 주기 위해 이미지에 다른 가중치를 부여해 더할 수 있다.가중치를 부여해 덧셈을 하려면, cv.addWeighted()를 사용할 수 있다.cv.addWeighted(이미지 1, 이미지 1에 대한 가중치, 이미지 2, 이미지 2에 대한 가중치, gamma 값)(1, 1) 위치 픽셀의 값으로 제한한 계산식: 결과값 = 이미지 1 * 이미지 1에 대한 가중치 + 이미지 2 * 이미지 2..

OpenCV 2025.02.01

[OpenCV] 영상에서 처리할 수 있는 기본 작업

공식문서픽셀 값에 접근하고, 값을 수정하는 방법행과 열 좌표를 기준으로, 픽셀 값에 접근할 수 있다.이미지의 색상이 BRG일 경우, [파란색, 녹색, 빨간색] 배열을 반환한다.이미지의 색상이 그레이스케일일 경우, 색상 강도를 반환한다.이 값을 변경할 수 있지만, 특정 픽셀들에 접근하고 수정하는 것은 매우 느리기 때문에 권장하지 않는 사항이다.이미지 속성에 접근하는 방법이미지의 속성에는 여러 값들이 포함되어 있다.행/열/채널의 수, 이미지 데이터 유형, 픽셀 수 등이미지의 모양은 image.shape로 접근할 수 있다. 이미지가 색상일 경우, [행, 열, 채널] 튜플을 반환한다.그레이스케일일 경우, [행, 열]만 반환한다.이미지의 총 픽셀 수는 image.size로 접근할 수 있다.이미지의 데이터 타입은 ..

OpenCV 2025.01.31