서버(4)
-
Node.js 기반 백엔드 개발자의 Spring Boot 탐색
나는 Node.js로 백엔드 개발을 시작했다. 처음에는 Express를 사용하여 웹 서버를 만들었지만, 더 체계적인 서비스 로직 관리가 필요해졌고, 그 과정에서 Nest.js를 만나게 되었다. Nest.js의 컨셉이 매우 마음에 들어 이제는 내 주요 기술 스택으로 자리 잡았다. 백엔드 개발자에게 중요한 것은 사용하는 프로그래밍 언어 자체가 아니라, 사용자의 데이터를 어떻게 처리하고 부하를 어떻게 분산시키는지 등의 문제를 해결하는 "문제 해결 능력"이라고 생각해왔다. 하지만 프로덕션 레벨에서 자신 있게 로직을 구현할 때, 내가 활용할 수 있는 언어가 JavaScript와 TypeScript로 한정되어 있다는 점을 느끼게 되었다. 이런 제한을 극복하고자 나는 내 기술 스택을 확장하자는 생각이 들었고, 그 첫..
2024.04.22 -
[문제해결] lock wait timeout exceeded try restarting transaction
야생의 버그가 나타났다. 오늘 코딩중 lock wait timeout exceeded try restarting transaction 이라는 에러를 마주쳤다.문제의 sql 은 insert 작업이었고, 로그성 데이터를 남기는 sql 이었다. 해당에러를 구글에 검색하니 트랜잭션이 데이터베이스 리소스에 대한 락을 획득하려 시도하지만 어떤 트랜잭션이 해당 테이블을 잡고 놔주지 않아 발생한다고 나와있었다.로컬에 서버를 띄워 개발하고있었고, sequelize logging 을 켜두고, 수상해보이는 코드마다 BP 를 찍어 확인하였다.다행히 원인은 간단하였다. 바보같이 문제의 sql 을 실행하는 코드에 transaction 을 안 넣어 준 것이었다. AS-ISawait this.loggingService.create(..
2024.04.14 -
서울 시위/행사 알리미 앱 고치기 - 타임아웃
서울 시위/행사 알리미 앱이란? https://topis.seoul.go.kr/ 의 api 를 특정 주기마다 크롤링하여 이메일로 서울시 내 시위/행사 관련 알림을 보내주는 lambda 애플리케이션 이다. 서울로 출근하거나 놀러갈때 시위나 행사때문에 난감한적이 많았는데 이 정보를 사전에 알림받기위해 만든 애플리케이션 이다. 동작방식 특정 주기마다 공지 api 를 호출하여 공지 정보를 얻고 새로운 공지를 mongodb 에 기록한다. 기존 mongodb 에 있는 데이터를 이용해 이미 조회되었던 공지를 제외한 새로운 공지에 대해서 알림을 보내기 위해 sqs 에 pub 한다. email 을 보내는 lambda 함수는 sqs 를 컨숨하여 mongodb 에 등록된 사용자들에게 email 을 보낸다. https://g..
2023.10.19 -
Samba & Mega sync
데이터베이스 수업중 풀어 제출할 문제가 들어있는 파일을 선생님이 선린 구름이 아닌 카카오톡에 올리셨다. 하지만 나의 컴퓨터 os는 우분투인지라 카카오톡을 설치하지 않았다. 그래서 나는 휴대폰으로 파일을 다운하고 클라우드에 올려서 노트북에 다운받아 해당 과제를 마쳤다. 하지만 이 시스템을 구축하면 이런 번거로운 작업을 안해도 된다. 바로 Samba 와 Mega 클라우드를 이용해 휴대폰과, 노트북, Mega클라우드 들의 파일을 싱크맞추는 것이다. 방법은 간단했다. 일단 내 노트북의 원하는 공간을 삼바서버의 디렉토리로 등록했다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 $ sudo apt-get install samba $ sudo smbpasswd secret -a..
2020.06.19