고마웠던 2025년, 개발자로서의 첫 해 Keep1년만에 취업해 개발팀으로 입사했다. 합격 소식을 들었을 때의 기분은 아직도 생생하다. 엄청 기쁘면서도 얼떨떨했다.기술 스택이 맞는 공고가 많지 않았는데 다행히 유일하게 맞았던 곳에 입사했고 어느덧 6개월 차가 되었다.개발은 여전히 어렵다. 해결되지 않는 문제를 만나면 평생 안 풀릴 것처럼 막막해지고, 어느 순간 해결되면 또 마음이 잔잔해진다.이 감정의 반복이 개발의 묘미인 것 같다. 역시 취준할 때도 겪어봤지만 엉덩이 붙이고 끝까지 파고들면 결국 해결하지 못할 문제는 없다는 것, 이건 앞으로도 변하지 않을 것이다. 업무적으로는 첫 프로젝트에서 프론트엔드 개발자와 통신하면서 발생했던 에러와 예외 사항들을 모두 정리해두었다가 다음 프로젝트에 그대로 참고하..
GitHub Actions로 자동 배포 환경을 셋팅하면서 액세스 키가 필요했다. 액세스 키는 AWS ↔ 외부 시스템을 연결하기 위한 인증 수단이다.우리가 브라우저로 아이디/비밀번호를 입력해서 AWS 콘솔 로그인하여 직접 AWS를 사용하는 것처럼,사람이 아닌 프로그램이 AWS를 제어하기 위해서는 아이디/비밀번호 대신 액세스 키+시크릿 키를 사용한다. 액세스 키를 생성하는 방법은 간단하다. AWS 액세스 키 생성 가이드대로만 따라하면 끝!가이드 문서에 맞춰 하나씩 따라해보자.https://docs.aws.amazon.com/ko_kr/keyspaces/latest/devguide/create.keypair.html 1. AWS에 로그인 후 IAM 이동https://console.aws.amazon.c..
1년만에 새 프로젝트를 시작했다.초기 셋팅을 진행하면서 MySQL 로그인을 시도했는데 에러가 났다.에러메시지: ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded 👩🏻💻 원인현재 MySQL 버전은 8.4.3$ mysql --version mysql Ver 8.4.3 for macos14.7 on arm64 (Homebrew)MySQL은 8.4부터 mysql_native_password 플러그인이 완전히 제거되었다. my.cnf에 default_authentication_plugin=mysql_native_password가 설정되어 있었기 때문에 에러가 발생한 것이다. 👩🏻🔧 해결1. 파일 수정nano /opt/..
DBeaver에서 데이터를 수정하다 보면 셀에 들어있던 값을 지웠는데 값이 아예 없어지는게 아니라 빈 문자열('') 로 바뀌는 경우가 있다. 별 차이 없어 보이지만 실제로 이 차이는 꽤 중요하다.NULL → 값이 없다빈 문자열('') → 값은 있는데 글자 길이가 0인 값 그래서, 빈 문자열을 NULL로 되돌리는 방법간단하다.DBeaver에서 테이블 데이터 보기 화면으로 들어간다.NULL로 바꾸고 싶은 셀을 마우스 우클릭한다.Edit - Set to NULL 선택저장
나는 Node.js로 프로젝트를 진행중이고 pm2로 서버를 관리하고 있다.개발 서버(dev)는 fork 모드, 운영 서버(main)는 cluster 모드로 띄우고 있는데 왜 dev, main 환경에 따라 모드를 다르게 설정했는지, 그리고 그 기반이 되는 CPU 코어는 무엇인지 정리해보려고 한다. 두 모드의 차이를 알기 위해서는 PM2가 어떤 도구인지, CPU 코어는 무엇인지 이해할 필요가 있다. PM2란?Node.js 앱을 백그라운드에서 계속 돌게 해주는 프로세스 관리자이다.코드가 죽거나 에러가 나도 자동으로 재시작해주고 로그 관리, 무중단 배포, 클러스터 실행까지 도와준다. CPU의 코어(Core)란?CPU에서 계산을 담당하는 연산 처리 장치이다.하나의 코어가 한 번에 1개의 일을 처리한다. 코어..
데이터를 한번에 일괄적으로 넣기 위해 bulk insert 로직을 짰다.이 로직은 uploads 폴더에 CSV 파일을 넣어두면 그 데이터를 읽어 DB에 삽입하도록 구현되어 있다. 문제는 50개 이상의 CSV 파일을 운영 서버에 직접 파일을 넣으려니..코드를 푸시할 때마다 파일까지 포함되어 버리고서버 용량도 불필요하게 커질 수 있고보안이나 관리 측면에서도 찜찜한 부분이 생긴다.그래서 굳이 코드로 파일을 올려 푸시하지 않고 서버에 직접 파일만 전송할 수 있는 방법을 찾다가 파일질라(FileZilla)를 알게 되었다.파일질라는 서버와 내 컴퓨터를 연결해주는 FTP(File Transfer Protocol) 프로그램이다.내 로컬의 폴더처럼 서버 파일을 드래그 앤 드롭으로 관리할 수 있게 해주는 아주 유용한 도구..
슬랙을 설치하고 깃허브와의 연결을 한 달 정도 미루다가 아래 Connect GitHub account 버튼을 누르려고 하니 에러가 발생했다.Error: The time window to connect your GitHub account has expired. Please return to Slack to re-start the process of connecting your GitHub account.GitHub 계정을 연결할 수 있는 시간이 만료되어 Slack에서 GitHub 계정 연결 프로세스를 다시 시작하라는 뜻이다. 1️⃣ 슬랙 대화창에 /github signin을 입력하면 다시 연결하는 버튼이 생성된다./github signin 2️⃣ 버튼을 누르고 3️⃣ 코드 6자리 입력하면 깃허브 아..
DBeaver에 MySQL을 연결해 사용하고 있었는데 어느날 접속하니 “Public Key Retrieval is not allowed” 에러가 났다. 보안을 위해 MySQL은 공개키를 아무 때나 주지 않는데, DBeaver가 접속하면서 공개키를 요청하니 MySQL이 거절한 상황이다.public key를 지정해주자. DBeaver에 연결중인 DB - SQL Editor - Edit Connection 경로로 이동 Connection settings - Driver properties 에서 allowPublicKeyRetrieval을 TRUE로 수정 - OK 참고https://computer-science-student.tistory.com/719
프로젝트를 Git으로 관리하려면 프로젝트와 Git 저장소를 연결하는 작업이 필요하다.이 작업은 보통 프로젝트의 기초 셋팅 후에 진행하는 것이 좋다.예를 들어, package.json을 생성하고 .gitignore을 설정한 뒤 app.js로 간단한 서버 구성을 마쳐 초기 폴더 구조가 완성되었을 때가 적절한 시점이다. 자, 이제 GitHub와 로컬 프로젝트를 연결하고 변경사항을 업로드하는 과정을 살펴보자. 1. github 로그인아래 주소로 이동하여 github 로그인한다.https://github.com/ 2. repositories 이동 3. New 버튼 클릭 4. 레포지토리 생성Repository name을 입력하고 해당 레포지토리 공개여부를 선택한 뒤 Create repository 버..
문제간단한 프로젝트를 만들기 위해 개발 초기 셋팅 단계에서 MySQL을 Docker 컨테이너로 구성해 연결하려는 과정에서컨테이너 생성은 정상적으로 되었는데 Node.js에서 MySQL에 연결하려는 순간 에러가 발생했다.Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client{ code: 'ER_NOT_SUPPORTED_AUTH_MODE', errno: 1251, sqlMessage: 'Client does not support authentication protocol requested by server; consider..
- Total
- Today
- Yesterday