전체 글 (254) 썸네일형 리스트형 NextJS, 미해결) InvalidCheck: pkceCodeVerifier value could not be parsed. Read more at https://errors.authjs.dev#invalidcheck 처음 보는 에러가 나왔습니다.이슈로 등록된 것도 확인해봤지만 최근에 발생한 에러인지 해결법은 없었습니다. (링크)보통 코드를 수정하거나 생성하면 에러가 나오기 마련이지만 기존 oauth코드 부분에서는 최근 수정한 적이 없습니다. 한마디로 잘 되던 코드가 갑자기 동작을 안하게 된거죠..불과 하루 전 DB를 옮기느라 DB관련 로직을 수정한 것 외에는 전부 UI를 수정했으니 정말 황당합니다. 우선 에러에서 알려준 링크로 들어갔습니다.https://errors.authjs.dev#invalidcheck Auth.js | ErrorsAuthentication for the Webauthjs.dev링크에 나와있는 설명은"PKCE, 상태 또는 nonce OAuth 검사를 수행할 수 없을 때 발생합니다. 이는 OAut.. THREEJS로 인테리어 기능 안녕하세요.이번 팀 프로젝트로 진행한 "IDesign"에서 저는 THREEJS를 활용한 인테리어 기능과 대시보드 페이지를 맡았습니다.제가 설명/소개해드릴 부분은 THREEJS에 대한 내용이 아닌, "Three.js를 이용해 어떤 기능을 어떻게 구현했나"입니다. Three.js에 대해 다들 한 번쯤 들어보셨을텐데요, 블로그의 글이 구현 방법에 초점이 맞춰진 만큼 Three.js에 대한 것은 간단하게 소개하고 넘어가겠습니다. Three.js에 대해 자세히 알고 싶다면 공식문서를 읽어보길 추천합니다. 목차THREE.JS의 간단한 소개프로젝트에 녹여낸 기능과 구현 방식 1. THREE.JS 소개웹에서의 3D 그래픽은 매우 까다로운 영역이었습니다. 그러나 Three.js는 이 복잡한 작업을 쉽게 만들면서도 강력.. DevOps)Docker-compose와 GitActions를 이용한 CI-CD(수정) (도커 허브의 계정과 레포지토리, docker의 설치 등은 생략하겠습니다.)왜 Docker와 Github Actions를 선택했는가.우리는 배포를 진행할 때 어떤 서비스를 이용할지 고민합니다.대부분의 개발자 또는 팀들이 그러하듯 저희 팀 또한 Iaas로 Ec2를 선택했습니다.최근에는 네이버 플랫폼이 출시하기도 했지만 가격적으로보나, 자료를 보나 저희로선 Ec2를 선택하지 않을 이유가 없습니다. 저희 팀은 단순한 인스턴스에 도커를 띄우기로 결정했습니다.도커를 사용하면 많은 장점이 있겠지만 모든 서비스가 완성되지 않은 저희 팀은 아래의 장점을 가장 크게 보았습니다. 캐싱으로인한 빌드타임 감소잘못된 재배포 시 빠른 교체도커에서 컨테이너는 이미지 기반으로 생성됩니다. 이미지는 여러 개의 레이어로 구성되어 있으며.. threejs) 프레임마다 업데이트되는 TextGeometry 안녕하세요. 무려 한달 반만에 작성하는 게시글입니다.프로젝트를 진행하며 무척 애를 먹었던 부분이 생겨 글을 작성해봅니다. 우선 제목에서 알다시피 threejs의 TextGeometry부분입니다. 다른 지오메트리와 달리 textGeomtry는 매 프레임마다 업데이트 되면 성능문제를 피할 수 없습니다.여기서 말하는 업데이트란, 텍스트의 변화입니다. 사진으로 보기엔 정상적으로 나오는 텍스트입니다. 하지만 이것을 매 프레임마다 업데이트한다면 어떻게 될까요?제 경우에서는 "onmousemove"이벤트에서 실행될 것입니다.좌표 (0,0,0)에서 현재 마우스 위치까지의 거리를 "distanceTo"메서드로 구한 후 이를 텍스트로 나타내는 기능입니다.영상에서 보시다시피 마우스를 움직이면 즉각적으로 텍스트에 변화가 .. PG)베스트 앨범 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(genres, plays): answer = [] obj = {} for i in range(len(genres)): if genres[i] not in obj: obj[genres[i]] = [plays[i],[i,plays[i]]] else: obj[genres[i]][0] += .. PG)단속 카메라 -lv3 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(routes):# 아이디어# 정렬을 이용해야한다.# 진입이 지점이 가장 작은 순부터# 진출 시점을 기준으로 카메라를 설치한다. routes.sort(key=lambda x: (-x[1], -x[0])) routes = [routes[i] for i in range(len(routes)-1, -1, -1)] answer = 1 last = routes.. PG)숫자 게임 -lv3 https://school.programmers.co.kr/learn/courses/30/lessons/12987# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr lv3 치고는 매우 쉬운 난이도였다. 우선 이 문제는 효율성 테스트가 있기 때문에 처음 제출한 코드는 효율성과 케이스 17번에서 실패했다.from bisect import bisect_leftdef solution(A, B): answer = 0 B.sort() A.sort(reverse=True) for i in A: # print('--------') .. PG) 단어 변환 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43163#qna 언뜻보면 브루트 포스로 해결할 수 있을 것 같은 문제지만, 한가지 함정이 존재한다.만약 hit에서 hot으로 넘어가고, hot에서 dot으로 넘어간다. 그럼 또 dot에서 hot으로 넘어갈 경우가 생기니 무한루프에 빠지게 된다.결국 우리는 이미 순회했던 단어를 제외할 필요가 있다. 보통 테스트 케이스 3번에서 실패가 많이들 나온다.우선 처음 제출했던 코드이다.from collections import dequedef solution(begin, target, words):# 아이디어# bfs로 풀어야함# visit처리는 큐에 들어갈 배열을 제외한 새 배열을 할당 .. PG) 야근지수 -lv3 https://school.programmers.co.kr/learn/courses/30/lessons/12927 import heapqdef solution(n, works): if n >= sum(works): return 0 works = [-i for i in works] heapq.heapify(works) for _ in range(n): mx = heapq.heappop(works) mx += 1 heapq.heappush(works,mx) return sum([i ** 2 for i in works]) 제곱근의 합 중 가장 작은 수를 구하는 문제이다.이렇게 .. PG) 네트워크 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr from collections import dequedef solution(n, computers):# 아이디어# 큐를 이용한다# 배열 하나를 만들어(arr) 그 배열에 이어져있는 관계를 저장# 어차피 서로 연결되어 있으니 둘 모두를 저장할 필요 없이 한 쪽만 저장하면 됨# visit으로 방문여부 체크# visit을 돌며 False은 값 찾아서 answer += 1# bsf이후에 False라면.. 프로그래머스) 정수 삼각형 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(triangle): # 아이디어 # dp를 이용 # dp는 triangle의 맨 마지막에서부터 시작 -> bottom-up # 2번 반복문을 돌며 d[i-1][j]와 dp[i-1][j-1]을 업데이트 # 이때 j값을 검증하여 dp업데이트 실행 dp = [[0] * len(triangle) for _ in range(len(triangle))] .. JS) 무한 캔버스(Infinity Canvas)의 원리와 구현 들어가며...디자인에 관련된 일에 종사하는 사람이라면 "피그마" 앱을 익히 들었을 것입니다.디자이너 뿐만이 아니라 프론트엔드, 백엔드 등의 기타 개발자, 혹은 피그마 앱을 사용하는 팀 또는 회사에서 이를 사용하거나 본 적이 있는 사람이 대부분일 것입니다. 피그마는 매우 유용한 툴입니다. "dev"모드라는 유로 구독을 하면 디자이너가 원하는 부분의 색상이나 디자인을 그대로 css 코드로 변환해줍니다. (어도비는 피그마를 무려 28조원에 인수했습니다.) 저희 또한 피그마 같은 회사를 창업해 28조원을 벌어보려합니다.따라서 우리 팀은 피그마 앱의 카피앱을 만드려합니다.앱의 가장 중요한 부분은 무엇이 있을까요? 저는 딱 두개를 뽑았습니다.webGL을 이용한 GPU의 사용과 무한 캔버스의 구현입니다.하지만 자바스.. BOJ)괄호 추가하기 3 https://www.acmicpc.net/problem/16639 시간복잡도를 확인하고 브루트포스로 해결하려했지만 실패했다.결국 다른 사람의 코드를 참고하여 풀었고, 이해하는데 조금 애를 먹었다. N = int(input())E = input()M = N // 2 + 1max_dp = [[-10 ** 9] * M for _ in range(M)]min_dp = [[10 ** 9] * M for _ in range(M)]for i in range(M): max_dp[i][i] = min_dp[i][i] = int(E[i * 2])for k in range(1,M): for i in range(M - k): j = i + k for x in range(i, j): .. BOJ) MooTube https://www.acmicpc.net/problem/15591 정말 기본적인 BFS문제였다.기초에 충실하게 bfs를 작성하고 제출을 눌렀으나 시간초과가 발생했다.import mathfrom collections import dequeimport sysinput = sys.stdin.readlineINF = math.infn, q = map(int, input().split())arr = [[] for _ in range(n+1)]for _ in range(n-1): a, b, c = map(int, input().split()) arr[a].append([b, c]) arr[b].append([a, c])for _ in range(q): k, start = map(int, i.. 백준) 합분해 - python https://www.acmicpc.net/problem/2225 이전의 동전 1과 비슷한 문제이다. 우선 2개의 수로 6을 만드는 경우의 수는 어떻게 될까?이를 생각하기에 앞서 정수 1개로 6을 만드는 경우를 생각해보자 당연하게도 0원부터 6원까지의 경우의 수는 모두 1개가 된다. 그럼 동전 2개로는 어떨까3개 또한 다음과 같다. 규칙성이 보이기 시작하는 것이 정상이다. 이런 규칙성은 과연 합당할까? 좀 더 자세히 보자단순 정수로만 표기하면 다음과 같이 규칙성을 찾을 수 없겠지만, 이를 이진법으로 바꾸면 간단하다. 단순히 이전 결과 값에 0 또는 1을 붙임으로써 해당 k 개로 정수 n을 만들 수 있는 경우의 수가 만들어진다 이를 코드로 변환하면 다음과 같다.from itertools import.. 이전 1 2 3 4 ··· 17 다음