[React] 함수형 컴포넌트에서 상태 올리기

React를 통해 본격적으로 프로젝트를 하고 있습니다. 리엑트는 클래스의 종류는 크게 클래스 컴포넌트와 함수형 컴포넌트로 구분할 수 있는데 React.js 공식 사이트 에서는 Tutorial 이 주로 클래스 컴포넌트 형태로 소개되어 있는데에 비해 요즘 제가 하고 있는 Next.js에서는 Tutorial 전체가 함수형으로 구성되어있습니다. 이미 구성된 프로젝트가 아닌 새로운 프로젝트에서는 함수형 컴포넌트를 사용하려고 하는 모습들이 보이는 것 같습니다. 훨씬 간결해보이기도 […]

계속 읽기

[SQL] 일부 값만 수정하고 새로운 로우(record)로 옮겨 쓰기

기록이 중요합니다. 실제로 서비스를 하게 된다면 사용자가 게시물을 수정할 때마다 (혹시 모를 수사 목적으로)기록을 남겨 둬야 하는데 다른 테이블에 따로 분류하는 것도 있지만 수정사항이 있다면 해당 내용을 새로운 id 등으로 쓰고 덮는 쪽이 개발하는데에 좀 편합니다. 인터넷에 돌아다니는 자료는 정말 많지만 이해하기가 힘들게 되어있는 글이 많아서(내가 이해를 못해서) 몇 자 남겨둡니다. 도움이 되시길… 일부 값만 […]

계속 읽기

[Mac] 프로그램 제거 후 계속적으로 실행되는 서비스 제거하기

우연스럽게 로그 파일을 보다가 다음과 같은 로그를 봤다. 웨스턴디지털 외장하드를 인식하는 프로그램이 돌고 있는 것 같은데.. 중요한건 10초마다 계속 실행되고 있었다.. (이게 내 배터리 문제의 원인이었나….;;) 아무튼 이런걸 가만 둘 수는 없어서.. 아래와 같이 해결 방법을 올린다. 첫째는 launchctl 에서 계속해서 돌고 있는지 확인하는 것이다. 우선 다음과 같이 정지시킨다. 정지가 제대로 되지 않는다. 이런 경우는 […]

계속 읽기

Ubuntu 18.04 서버 설치 시 네트워크 설정하기

Ubuntu 18.04 를 설치할 때 CIDR 이 맞지 않다는 오류가 나타날 때가 있다.우분투 설치 프로그램이 이상한게 아니라 잘못된 CIDR을 입력하면 저렇게 된다. 이전 버전(16.04 등..)에는 서브넷 마스크, default gateway, IP 를 입력하면 그냥 넘어간 것으로 기억하는데 처음에는 뭘 입력해야 할지 몰라서 당황스러웠다. 구글에다 CIDR 구하기 등으로 검색해도 시원찮고…참고로 이 문제는 DHCP로 자동으로 받는 경우에는 해당이 […]

계속 읽기

GPG 사이닝으로 Commit Verified 딱지를 붙이자

Git은 기본적으로 안전하게 설계되어있다. 그렇지만 저장소에 아무나 접근하지 못하게 하고 진짜로 확인된 사람만 접근하게 하거나, 저렇게 초록 딱지를 붙여서 ‘이거 진짜 내가 한거 맞아요!’ 라고 박기 위해서는 GPG 사이닝이 필요하다. GPG 사이닝에는 2가지 방법이 있다. GPG와 생성된 키를 사용하는 방법 krypt.co 에서 나온 Kryptonite을 사용하는 방법 이 포스트에서는 GPG를 통해 Commit Verified 딱지를 붙이는 방법을 […]

계속 읽기

SourceTree 에서 SSH 인증 Permission Denied (publickey) 실패 오류 해결하기

뭐 좀 하려고 하면 꼭 이런 문제가 생긴다. 분명히 내 SSH 키는 정확하게 제 위치에 있는데도 소스트리에서 인식을 못하는 문제다.지금부터 이 문제를 해결해보도록 하자. 우선 이 문제는 컴퓨터에서 ssh-key 가 제대로 등록되어 있지 않을 때 발생하는 문제다.터미널을 열어서 다음과 같이 실행해보자. 이제는 등록을 해주자. ssh -Tv git@github.com 그러면 여러가지 줄이 쭉 나올텐데 다음과 같이 나오면 […]

계속 읽기

[NGINX]ERR_SSL_PROTOCOL_ERROR 해결하기

최근 Letsencrypt 를 통해 SSL 인증서를 재발급받는데 최근 받은 인증서의 설정에서 작은 문제가 있었다. certbot-auto 를 실행시키면 Git에서 새로운 파일을 다운로드 받는데 그런 업데이트 과정을 거치면서 발생한 문제 같아 보인다. 아무튼 업데이트를 새로 받으면 ERR_SSL_PROTOCOL_ERROR 이라는 에러가 나타나고, 사이트에 접속할 수 없는 문제가 발생한다. 크롬에서는 다음과 같은 에러를 띄운다. 파이어폭스에서는 다음과 같은 에러를 띄운다 원인을 […]

계속 읽기

Visual Studio Code에서 EJS에 html 자동완성 적용하기

Visual Studio Code 에서 EJS에 Emmet을 적용하는 방법에 대해 소개한다. 우선 급할때 쓰는 방법부터 먼저 .. 급할때는 그냥 왼쪽 하단의 확장자를 HTML 으로 맞추면 된다. 2. Emmet에서 인식할 수 있는 확장자를 세팅한다. 우선 Code – Preferences – Settings 을 들어간다(아마 윈도우에서는 File을 찾으면 될 것이다) 이런 화면이 나타나게 되는데 Search Settings 에서 Emmet을 입력한다. 검색 […]

계속 읽기

Firebase 에서 도메인 인증이 진행되지 않을 때

Firebase 외주를 맡았다. 🎉 근데 시작부터 난관에 봉착했다. 원래 개발자가 일을 그만 두고 나에게 프로젝트를 넘기는 과정에서 생긴 문제다. 이전 개발자께서 원래 가지고 있는 firebase 프로젝트를 넘겨주는 방법을 잘 모르는 데에서 기인한 문제. firebase 에서 호스팅 기능을 통해 도메인 주소 처리를 해야 하는데 도메인을 등록하려고 하면 DNS 검증을 제대로 수행하지 못하는 문제였다. 그림과 같이 도메인 […]

계속 읽기