SQL을 작성할 때 가독성과 유지보수를 고려하는 것이 매우 중요합니다. 현업에서 가독성을 고려하지 않은 쿼리문을 마주한다면... 유지보수 과정에서 크게 스트레스를 받곤 합니다. (물론 누가 이렇게 제멋대로 쿼리를 짰어 투정부리며 Git Blame을 눌렀을 때 과거의 나일 경우도 있습니다.) 잘 정리된 SQL은 팀원들과 협업할 때도 도움이 되고, 추후 수정할 때도 수월합니다. 이번 글에서는 SQL 쿼리를 잘 쓰는 방법에 대해 정리해보겠습니다.1. 주석을 잘 남기자 📝SQL을 작성할 때 주석을 적극적으로 활용하면, 나중에 다시 볼 때 코드의 목적을 쉽게 이해할 수 있습니다.주석을 다는 방법:한 줄 주석: -- 를 사용합니다.여러 줄 주석: /* */ 를 사용합니다.-- 활성 사용자 목록 조회SELECT u..
일본 IT 업계는 해외 개발자들에게도 다양한 취업 기회가 열려 있습니다. 특히, 개발자의 연봉 수준이 점점 상승하고 있으며, 원격 근무를 포함한 유연한 근무 조건도 증가하는 추세입니다. 엔화의 약세로 과거에 비해 체감되는 연봉은 상대적으로 적지만 일본에서의 라이프 스타일이 맞는다면 이보다 좋은 근무 환경은 없을 거라 생각합니다. 저 또한 일본에서 개발자로 근무를 한 경험이 있으며, 장단점은 있었지만 상당히 만족하면서 회사생활을 했습니다. 다양한 경험을 해봤으며 직접 피부로 느꼈던 일본 개발자로서의 삶들을 블로그에 꾸준히 정리해보려합니다. 이 글에서는 일본 IT 회사의 개발자 연봉 수준과 취업 방법에 대해 자세히 설명하겠습니다.1. 일본 IT 회사 개발자 연봉 수준1.1 평균 연봉일본에서 개발자의 연봉은 ..
데이터베이스 성능 최적화는 개발자와 DBA에게 중요한 작업 중 하나입니다. SQL 문이 비효율적으로 작성되면 시스템 자원이 불필요하게 소비되고, 응답 시간이 길어질 수 있습니다. 이러한 문제를 사전에 분석하고 개선하기 위해 EXPLAIN PLAN을 활용할 수 있습니다.이 글에서는 EXPLAIN PLAN의 개념과 사용법, 그리고 실행 계획을 해석하는 방법에 대해 알아보겠습니다. 1. EXPLAIN PLAN이란?EXPLAIN PLAN은 SQL 문이 실행될 때 옵티마이저(Optimizer)가 선택한 실행 계획을 보여주는 기능입니다. 이를 통해 쿼리가 어떤 방식으로 실행될지를 예측하고, 성능을 저하시키는 요인을 파악할 수 있습니다.주요 확인 요소:실행 순서 및 접근 방법 (Full Table Scan, Inde..
현업에서 개발환경의 용량이 90프로를 초과해서 컴포넌트들의 저장공간을 비워야했습니다. 혼자서 전체 저장공간을 정리하기란 불가능하기 때문에 담당자에게 용량 정리를 할당해야했습니다. 그러기 위해선 1GB이상의 용량을 차지하고 있는 컴포넌트들 지워야한다는 기준을 세웠고 그 때 사용한 명렁어가 'du'입니다. 이번 글에서는 'du' 명령어의 기본적인 사용법부터 실무에서 유용한 옵션까지 정리해 보겠습니다.1. du 명령어란?du(Disk Usage)는 파일 및 디렉토리의 디스크 사용량을 표시하는 리눅스 명령어입니다. 주로 디스크 공간 부족 문제를 해결하거나 대용량 파일을 찾는 데 사용됩니다.2. 기본 사용법기본적으로 du 명령어를 실행하면 현재 디렉토리의 모든 하위 디렉토리와 파일의 크기를 출력합니다.$ du출력..
오늘 회사에서 개발환경의 DB 용량이 가득찬 상황이 생겼습니다. 안 쓰는 테이블을 파악해서 DROP 할지 아니면 테이블은 유지를 하고 TRUNCATE 할지, 그 것도 아니면 오래된 레코드를 조건문을 걸어서 DELETE 할지 고민을 했습니다. 이러한 고민들을 바탕으로 삭제와 관련된 명령어들을 한번 정리해보면 좋을 것 같아 글을 작성해 봅니다. 데이터베이스 관리 작업 중 가장 자주 접하게 되는 명령어 중 하나가 DELETE, DROP 그리고 TRUNCATE입니다. 이 명령어들은 삭제와 관련된 명령어들 이지만, 작동 방식과 성능, 그리고 사용 목적이 모두 다릅니다. 이 글에서는 각 명령어의 차이를 명확히 이해하고, 어떤 상황에서 적합한지 알아보겠습니다.DELETE: 데이터를 선택적으로 삭제DELETE 명령어는..
금융회사 개발자여서 망분리 환경에서 개발을 주로 하고 있습니다. 종종 개발망의 파일을 업무망으로, 업무망의 파일을 개발망으로 옮기게 되는데 이때 자주 등장하는 용어가 있습니다. SFTP와 SSH !서버 관리를 하거나 파일을 전송할 때 자주 등장하는 두 가지 용어입니다. 이 둘은 비슷한 점도 많지만, 각기 다른 용도로 사용됩니다. 이 글에서는 SFTP와 SSH의 개념, 기능, 그리고 차이점을 이해하기 쉽게 설명해보겠습니다. SSH란?SSH(Secure Shell)는 네트워크 상에서 원격으로 시스템에 접속하고 명령어를 실행할 수 있도록 설계된 보안 프로토콜입니다. 텍스트 기반의 명령어를 통해 서버를 관리하거나 작업을 수행하는 데 주로 사용됩니다.주요 특징- 보안성: 데이터 전송을 암호화하여 안전한 통신을 ..
최근 몇 년간 AI 기술의 발전은 모든 산업 분야에 큰 변화를 가져왔다. 내가 하고 있는 웹 개발 분야에서도 AI와 관련된 기술들이 직간접적으로 더 중요해지고 있다는 걸 피부로 느낀다. AI 시대를 맞아 웹 개발자로서 살아남고 성장하기 위해서는 어떤 소양을 키워야 할까? 3가지 핵심 키워드로 고민해보려 한다.1. 대화형 AI대화형 AI는 개발자의 작업 효율을 높이는 데 강력한 도구로 자리 잡았다. ChatGPT, Gemini, Claud와 같은 대화형 AI는 단순한 질문 응답을 넘어, 복잡한 문제를 해결하기 위한 아이디어를 제공하거나 문서화 작업을 돕는 데도 유용하다. 웹 개발 과정에서도 대화형 AI는 다양한 방식으로 활용된다. 예를 들어, 코드 작성 중 특정 라이브러리의 사용법이 헷갈릴 때, API의..
데이터베이스를 사용하는 애플리케이션 개발에서 성능 문제를 겪다 보면, 가장 먼저 떠오르는 해결책 중 하나가 인덱스(Index)입니다. 인덱스는 데이터를 효율적으로 검색할 수 있도록 돕는 핵심적인 기능인데, 그중에서도 복합 인덱스(Composite Index)는 복잡한 쿼리를 최적화하는 데 매우 유용합니다. 이번 글에서는 인덱스와 복합 인덱스가 무엇인지, 그리고 실제로 어떻게 활용할 수 있는지에 대해 알아보겠습니다.인덱스란?인덱스(Index)는 데이터베이스에서 데이터를 빠르게 검색하기 위해 사용하는 자료구조입니다. 책의 목차처럼, 인덱스는 테이블에서 특정 데이터를 찾는 데 필요한 정보를 제공해 줍니다.인덱스의 작동 방식테이블이 생성되면, 기본적으로 모든 데이터는 정렬되지 않은 상태로 저장됩니다.인덱스를 생..
개발자로서의 삶은 코드만 쓰는 것이 아니라, 배운 것과 경험한 것을 정리하고 기록하는 일도 포함된다. 개발자로서의 성장과 기록을 위해 글을 쓰기 시작했는데, 이 과정에서 다양한 플랫폼을 사용하며 글쓰기 여정을 이어왔다. 그 경험들을 이번 글에서 회고해 보려 한다.Notion에서의 첫 시작: 편리함과 한계처음에는 노션(Notion)에서 글을 작성하기 시작했다. 노션은 직관적인 UI와 강력한 기능 덕분에 작업 정리와 기록에 있어 훌륭한 도구였다. 특히, 개인적인 메모나 정리에는 정말 탁월했고 이쁜 인터페이스 덕분에 글쓰는 맛이 났다. 하지만 시간이 지날수록 한 가지 아쉬운 점이 느껴졌다. 작성한 글들이 검색엔진에 노출되지 않는다는 점이었다. 글을 쓰는 과정에서 “다른 사람들에게 내 생각을 공유하고 싶다”는..
현업에서 데이터가 폭증함에 따라 시스템 성능 저하를 경험하게 되는 경우가 많습니다. 특히, 페이지네이션과 같이 자주 사용되는 기능에서 성능 문제가 발생하면 사용자 경험에 직접적인 영향을 미치기 때문에, 이를 최적화하는 일은 개발자에게 중요한 도전 과제가 됩니다. 주니어 개발자가 운이 좋다면 관련 경험이 풍부한 시니어 개발자의 도움을 받아 문제를 해결할 수도 있지만, 현실적으로는 대부분 스스로 해결책을 찾아야 하는 경우가 많습니다. 처음엔 막막하고 어디서부터 시작해야 할지 모를 수 있지만, 작은 문제들을 하나씩 해결하며 기술적으로 성장하는 계기가 되기도 합니다. 저 또한 이런 상황을 여러 번 겪었고, 이번에는 300만 건 이상의 데이터를 처리하는 페이지네이션 성능을 최적화해야 하는 상황에 직면했습니다. 부..
- Total
- Today
- Yesterday
- 개발자
- 페이지네이션
- Ai
- 개발
- 개발회고
- keyset
- 데이터베이스삭제
- Spring
- 개발지식
- 생산성
- SQL
- 쿼리
- LoggingFilter
- pub/sub
- grammarly
- 확장프로그램
- 데이터베이스
- 삭제쿼리
- 실시간통신
- readtracker
- 기술부채
- ServerSentEvents
- db성능개선
- read-tracker
- 크롬
- 인덱스
- 레기서시스템
- SSE
- db
- 쿼리최적화
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |