구현 알고리즘
·
알고리즘
구현 알고리즘이란 무엇일까?머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정이다. 알고리즘 문제를 풀이할 때 구현은 매우 필요하다. 거의 모든 문제가 '구현 문제'인데 가끔 구현이 어렵거나 구현에 초점이 맞추어진 문제들이 있다. 즉, 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제라고 알고 있으면 된다.예시실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제적절한 라이브러리를 찾아서 사용해야 하는 문제알고리즘은 간단한데, 코드가 지나칠 만큼 길어지는 문제ex) 파싱, 해싱, 정렬, 시뮬레이션구현하기 어려운 문제까다로운 구현 유형의 문제알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제특정 소수점 자리까지 출력해야 하는 문제문자열이 ..
그리디 알고리즘
·
알고리즘
그리디 알고리즘이란?탐욕 알고리즘(Greedy algorithm)은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다. 하지만 탐욕알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이다.문제거스름 돈https://www.acmicpc.net/problem/5585n = int(input())count = 0n = 1000 - ncoin_types = [500, 100, 50, 10..
[JPA] Repository annotation이 필요한가?
·
카테고리 없음
@Repositorypublic interface SurveyRepository extends JpaRepository {}먼저 위와 같이 JPA repository를 엔티티에 맞게 구현해두었다고 가정한다.그렇다면 매번 @Repository annotation을 붙여야할까?정답은 아니다!그렇다면 왜 JpaRepository는 annotation이 없어도 Bean 등록이 되는지 살펴봅시다.구현체 살펴보기우선 작성된 엔티티에 관하여 repository를 구현한다하면 일반적으로 JpaRepository의 interface를 상속받는다.그렇다면 여기서 JpaRepository가 어떻게 생겼는지 살펴보자JpaRepository위와 같이 생겼는데 JpaRepository의 왼쪽 화살표를 눌러보아 구현 클래스들의 목..
[NextJS] useSWRInfinite 무한스크롤 사용 시 첫 번째 페이지를 항상 가져오는 문제
·
카테고리 없음
무한 스크롤을 구현하고자 useSWRInfinite를 사용하여 구현하였다. 다만, F12로 네트워크 탭을 확인해보니 1페이지 2페이지, 1페이지 3페이지, 1페이지 4페이지, ... 위와 같이 가져와지는 문제점이 있었다. getKey의 구현이 잘못되었나? 한참 디버깅하고 혹시 debounce나 throttling을 걸면 해결할 수 있을까? 싶어서 구현했는데 여전히 1페이지를 호출하고 있었다. https://swr.vercel.app/ko/docs/pagination#parameters 페이지네이션 – SWRSWR is a React Hooks library for data fetching. SWR first returns the data from cache (stale), then sends the fe..
[JAVA/SPRING BOOT] swagger POST, PUT, PATCH ... 403 문제 트러블 슈팅 (springdoc)
·
트러블슈팅
서론 우선 JAVA SPRING BOOT로 백엔드 서버를 개발하고 있는 상황이었다. 내부 논의를 통해 API 문서화 방식은 대중적으로 많이 사용되고 연동하기 가장 간단한 Swagger를 사용하는 것으로 진행하였다. 이때 해당 Swagger를 띄워주기 위해서 springdoc이라는 라이브러리를 사용하였고, 로컬 서버에서 별 문제없이 잘 개발하였고 prod에도 처음에는 별도의 문제가 없이 FE팀에게 전달하여 서로 잘 사용 중에 있었다. 다만 어느정도 개발을 한 이후에 BE팀에서의 JWT verify를 위하여 Spring Security를 구축하였고 로컬에서 별 문제없이 연동되어 prod로 배포하였다. 그 이후 FE팀에서도 직접 API 호출하던 것도 정상작동하여 페이지가 잘 렌더링 되었으며 잘 처리되어서 기뻤..
Hash
·
알고리즘
해시(Hash)란? 해시는 데이터 관리를 효율적으로 하기 위해 사용하는 기술로, 해시 함수를 사용하여 데이터의 값을 고유한 짧은 해시 코드로 변환하는 과정을 말합니다. 이 해시 코드는 데이터를 저장하거나 검색할 때 사용되는 "키"의 역할을 합니다. 해시의 주요 용도 데이터 검색: 해시 테이블을 이용하여 빠른 데이터 검색 속도를 제공합니다. 해시 함수가 데이터를 해시 테이블의 인덱스로 변환하여, 데이터 접근 시간을 줄입니다. 데이터 보안: 암호화에서 해시 함수는 데이터의 무결성을 확인하는 데 사용됩니다. 예를 들어, 비밀번호는 데이터베이스에 해시 형태로 저장되어 원본 비밀번호가 노출되지 않도록 합니다. 데이터 중복 검사: 파일이나 데이터의 해시 값을 비교하여 중복을 감지할 수 있습니다. 해시 함수의 특징 ..