본문 바로가기

분류 전체보기

(285)
error: 체크아웃 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다: ~를 전환하기 전에 이 파일을 옮기거나 제거하십시오. 해당 브랜치 위치에서 checkout을 하려고 했는데 아래와 같은 에러 메시지가 출력되었다. error: 체크아웃 때문에 추적하지 않는 다음 작업 폴더의 파일을 덮어씁니다: rust/Cargo.lock브랜치를 전환하기 전에 이 파일을 옮기거나 제거하십시오. 내가 현재 작업하고 있는 브랜치에서는 rust 브랜치는 상관이 없어서 Cargo.lock 파일을 삭제했다. 그러고 checkout이 잘 되었다.
배포 전 안쓰는 migration 파일 삭제에 대하여 라이브 배포가 나가기 전에 migration 파일 점검을 해야 했다. 근데 내 로컬에서만 삭제하고, 삭제한 파일을 push 하지 않았던 문제가 있었다. 이 코드가 다른 곳에서 쓰이지는 않지만, 배포 나가기 전이라 안전한 방법으로 migration 파일 삭제하기 위한 방법을 알게 되었다.  1) Drop에 관한 migration 파일 작성 만약 내가 project_post 라는 테이블을 만들었다고 치자. 이런 상황에서 기존에 CreateProjectPost migration은 이미 다른 환경에서 돌아갔었을 것이므로, 이 project_post 라는 테이블을 삭제하는 migration 파일을 만들어야 한다.  기존 CreateProjectPost.ts migration 파일import { MigrationI..
현재 브랜치가 ~ 기반이지만, 업스트림이 없어졌습니다. 현재 사용하고 있는 브랜치의 원격을 pull 해오려고 했는데, 갑자기 현재 브랜치가 ~ 기반이지만, 업스트림이 없어졌습니다. 라는 에러가 발생하였다. 기존에 main 브랜치로 추적해서 만들었는데.. 왜그러지 싶었다. 알고보니 해당 브랜치와 연결된 remote branch가 지정되있지 않아서 발생하는 문제라고 한다. 그래서 일단 다음과 같이 해결하였다. git branch --se-upstream-to origin/main ㄴmain 브랜치를 upstream 하려고 했다. upstream은 다른 원격 저장소의 변경사항을 가져오는 기능이다.
canvas - node version 안맞음 해결 코드를 실행하려던 중에 canvas 모듈이 node version과 맞지 않다는 에러를 보였다. was compiled against a different Node.js version using 이라는 에러 문구가 출력되었다. 해결 방법은 다음과 같다. 나는 pnpm을 사용하고 있었기 때문에 아래와 같이 실행하였다. 1) pnpm uninstall canvas 2) pnpm install canvas 3) pnpm rebuild canvas 의 방법으로 위의 에러를 해결하였고, 잘 실행이 되었다.
Docker 배포 안됨 (pnpm 버전 다름) pnpm 버전을 9.0.2를 사용하고 있었다. 하지만 Docker 환경에서는 pnpm 버전을 9.0.1을 사용하고 있어 내가 빌드를 누른 것은 에러가 나고, 당연히 배포가 되지 않았다. 확인해야 할 부분) 1- package.json에서 packageManager 부분에 pnpm 버전 명시를 해주거나 2-Docker 파일에서 RUN npm install -g 부분에 RUN npm install -g pnpm@9.0.1 과 같이 버전 명시를 해주거나 해야 한다. 만약 버전 명시를 해주지 않는경우 '최신 버전'으로 빌드되며, 위의 방법처럼 버전 명시를 해주게 된다면 내가 명시해준 특정 버전으로 맞춰져 Docker 배포 환경에서도 같은 버전을 사용할 수 있게 된다.
브랜치 삭제 안되는 문제 해결 A 브랜치를 삭제하고자 B 브랜치 위치로 checkout 해서 git branch -D A브랜치 를 하려고 했으나, error: ~ 위치에 체크아웃한 'A' 브랜치를 삭제할 수 없습니다 라는 에러가 떴다. 알고보니 내가 A브랜치를 push 하지 않았어서 브랜치 삭제가 안되는 것이었다. 그래서 A 브랜치를 다시 원격 환경에 push하고 B브랜치 위치에서 A 브랜치를 삭제할 수 있었다.
project import가 안되었던 문제 git에서 repo를 클론받고 인텔리제이에서 open > pnpm install을 했었는데 project가 잠깐 떴다가 사라지는 문제가 지속해서 발생하고 있었다. 원인을 알고보니 프로젝트가 없어진 것이 아닌, 내 인텔리제이의 project structure에서는 가려지는 문제였다. 해결 방법은 다음과 같다. file > project structure Project Settings > Modules > + 버튼으로 module import 여기서 module을 add할 때 New Module / Import Module을 선택할 수 있는데 나는 기존의 module이 보여지지 않는 것이므로 import module을 하였다. creating module from existing sources를 선택해주었는..
클라이언트에서 영문 쿼리 백엔드단에서 한글로 받는 방법 클라이언트에서 영문으로 쿼리명을 넘겨주고, 서버단에서는 db에 해당 이름이 한글로 저장되어 있는 경우가 있었다. 이런 경우에는 서버에서 어떻게 처리하면 좋을까? 예를 들어 클라이언트에서 banana를 쿼리로 넘겨준다면, 서버단에서는 db에 해당 값이 한글로 저장되어 있으므로 한글로 변환이 필요하다. * 기존에는 서버단 > 클라이언트단으로 쿼리를 보낼 때 한글이름으로 보냈었는데, 클라이언트단에서 utf-8 인코딩 에러가 발생하는 바람에 쿼리에서 해당 단어가 깨져서 나오는 현상이 있었다. 일단 클라이언트에서 넘어오는 한글 이름을 enum으로 받자. export const GangVoteGradeToKo: { [index:string]: string } = { banana: '바나나', apple: '사과' ..
zokrates library 간단 사용기(template,signal) 들어가기에 앞서, zokrates란? zokrates는 Python기반의 ZKP 라이브러리로, privacy 보호와 더불어 컨트랙트의 보안을 강화하는데 사용된다. circom이라는 언어를 사용하여 작성된 스마트 컨트랙트를 처리한다. 1) remix에서 zokrates 라이브러리 설치 ㄴ오늘 remix에서 라이브러리를 처음 설치해보았다. 2) 예제 코드 python처럼 def 함수를 사용했다. zokrates에서는 field를 사용하여 circuit을 설계하고 계산을 수행한다. field는 circuit의 입력 출력 중간값으로 사용될 수 있다. def main(field a, field b) -> field { field result = a + b; return result; } a,b가 field값이며 ..
zkSNARKs란? (circom-zkSNARKs의 관계) * 해당 강의는 https://learn.0xparc.org/materials/circom/learning-group-1/circom-1 을 듣고 정리한 글입니다. Circom Workshop 1 | ZK Learning Resources Description learn.0xparc.org 함수 입력값 : x1,x2,x3,x4 OUT = f(x) = (x1+x2) * x3 - x4 여기서 zkSNARKs는 x1,x2,x3,x4 라는 비밀을 알고 있는데, OUT의 연산 결과에 필요한 값들이다. 위에서 튜플()의 값이 정확히 무엇인지 몰라도 결과값을 증명할 수 있다. 위에서 function의 input이 x1,x2,x3,x4 라고했고, OUT의 식이 OUT = f(x) = (x1+x2) * x3 - x4 로..