전체 글
-
우분투 인터넷 공유가 5초 만에 끊길 때 — e1000e "Detected Hardware Unit Hang"카테고리 없음 2026. 8. 27. 09:18
우분투 인터넷 공유가 5초 만에 끊길 때 — e1000e "Detected Hardware Unit Hang"상황우분투 서버에 랜포트가 두 개 있다. 하나(enp3s0)는 외부 인터넷, 다른 하나(enp0s31f6)는 맥북과 유선 직결. NetworkManager의 공유(shared) 모드로 맥북에 인터넷을 물려주는 구성이다.증상은 이랬다. 맥북에서 통신이 5초 정도 되다가 끊긴다. 완전히 안 되는 게 아니라 잠깐 되다가 죽는다는 게 핵심이었고, 이 때문에 한참 엉뚱한 곳을 팠다.결론부터 쓰면 원인은 인텔 e1000e 드라이버의 TX 큐 행(hang) 버그였다. 네트워크 설정은 처음부터 끝까지 아무 문제가 없었다.삽질 기록 (건너뛰어도 되는 부분)혹시 같은 증상을 겪는 사람이 있다면, 아래 항목들을 확인..
-
-
-
Material-Tailwind 사용한 Next.js 프로젝트 만들기Next.js 2025. 3. 14. 08:58
* 개요- 현재 Material-Tailwind가 V3 까지 베타가 나와있으나, 필자는 Next.js 15 버전에서 프로젝트를 만들면서 무수한 에러와 부딫치게 되었다. 그래서 아래는 속편히 잘 돌아가는 버전을 고정해서 사용하는것으로 정리한다. * 프로젝트 생성// 노드 18.19.1 버전이 잘 맞더라nvm install 18.19.1nvm use 18.19.1// 15버전이 있지만 14버전에서 안정적이다.npx create-next-app@14 myProject// mt 패키지 설치npm install @emotion/react @emotion/styled @material-tailwind/react @mui/icons-material --savenpm install @tailwindcss/typogra..
-
Nest.js 모듈 생성(추가) 퀵가이드Nest.js 2025. 3. 5. 08:58
* 개요- Nest.js 에서는 명령어 기반으로 모듈을 추가 할 수 있다.- 추가 해야 하는 모듈은 3가지가 있다. (module, controller, service)- 레포지토리는 별도로 구성 하지 않고 서비스에 선언해서 사용한다. --> nest 버전이 높으면 deprecate 경고가 나오더라. 1. 모듈 생성 명령어- auth 라는 이름의 모듈 생성 예시// 모듈 생성nest g module auth// 컨트롤러 추가nest g controller auth --no-spec// 서비스 추가nest g service auth --no-spec 2. DB 엔터티 생성- user 1 : Many boards 관계// 엔티티 생성 src/entity/user/user.entity.tsimport { B..
-
Nest.js 로그Nest.js 2025. 2. 26. 13:39
* 로그 레벨log중요한 정보의 범용 로깅warning치명적이거나 파괴적이지 않은 처리 되지 않은 문제error치명적이거나 파괴적인 처리되지 않은 문제debug오류 발생시 로직을 디버그 하는데 도움이 되는 유용한정보 (개발자용)vebose응용프로그램의 동작에 대한 통찰력을 제공하는 정보 (운영자용) * 로그 레벨에 따른 표출 범위: 로그레벨을 정의해서 볼수 있다. logerrorwarningdebugverbosedevelopOOOOOstagingOOOXXproductionOOXXX * Nest.js 에서 로그 사용 예제// 사용 예제export class BoardController{ const logger = new Logger('BoardController'); //API 호출시 g..
-
Nest.js 에서의 PipeNest.js 2025. 2. 12. 10:04
* 목적: 요청이 controller로 인수를 보내기 전에 요청 객체를 변환 및 검증 할 수 있는 기회를 제공: 종류는 2가지가 있다. 1. 검증 (validator), 2. 변경 (transformer) * 왜 쓰는가?: api 서버 개발시 프론트에서 잘못된 인수를 넘겨주는 경우에 대해 대응 하기 위해서!: 즉! 프론트에서 아무리 개떡같이 줘도, 백엔드는 찰떡같이 알아 들어야 한다.: 개인적으로 백엔드 개발자의 역량은 이런 디테일을 얼마나 잘 살려줘야 고수로 갈수 있는게 아닐까 싶다. * nestjs 에 내장된 파이프 종류: ValidationPipe, ParseIntPipe, ParseBoolPipe, ParseArrayPipe, ParseUUIDPipe, DefaultValuePipe * 필요 패키..
-
대용량 테이블 데이터 클렌징Database 2024. 10. 28. 09:02
* 개요: 대용량 테이블의 관리 차원에서 과도하게 적제되는 데이터는 (콜드 디스크)이관 또는 삭제 해줄 필요가 있다. 이 과정에서 해당 테이블이 서비스와 직접적으로 연결된 경우 대용량의 트랜젝션의 발생은 장애로 직결 될 수 있다. * 시나리오: 로그인 시 Audit Table 에 감사 로그를 남겨 누가 언제 접속했는지를 관리하고 있다. 이 테이블의 사이즈가 무한정으로 커지고 있고, 디스크 용량 관리 차원에서 오래된 데이터는 배치로 삭제 해줘야 할 필요가 있다. 다만 이 과정에서 (삭제) 테이블 잠금이 발생될 수 있고, 이로 인해 로그인을 못하는 경우가 발생될 수 있다. * 솔루션: 로그 테이블 삭제 시 로그인 장애를 예방하려면, 배치 프로시저에서 트랜잭션 잠금을 최소화하고 삭제 작업을 분할하여 한 번에 ..