PHP·Python·JavaScript·Java·Go·Rust·C/C++·Kotlin·Swift 등 다양한 프로그래밍 언어의 입문과 심화, MySQL·SQL 데이터베이스, 리눅스 서버 운영, 실무 에러 해결과 코드 팁까지. 입문자도 따라 할 수 있는 예제 중심 개발 가이드입니다.
회원 3천 명일 때는 아무 문제 없던 목록 페이지가, 회원이 30만 명이 되자 갑자기 8초씩 걸리기 시작한다. 서버 사양을 올려도 잠깐 나아질 뿐이다. 이런 상황의 원인은 대개 하나다. 인덱스가 없거나, 있어도 데이터베이스가 그 인덱스를 못 쓰고 있다. 인덱스는 어렵고 신비한 기술이 아니다. 책 뒤에 붙은 '찾아보기'와 정확히 같은 물건이다. 오늘은 그 찾...

어제까지 잘 돌던 스크립트가 오늘 아침 갑자기 멈춘다. 에러 메시지는 딱 한 줄, `ModuleNotFoundError: No module named 'requests'`. 분명 어제 `pip install requests`를 했는데 말이다. 그런데 옆자리 동료 노트북에서는 같은 코드가 아무 문제 없이 돌아간다. 이쯤 되면 코드가 아니라 환경을 의심해야 한...

회원 목록과 주문 목록이 각각 다른 표에 흩어져 있다고 해보자. "이번 달에 주문한 사람의 이름을 뽑아줘"라는 부탁을 받는 순간, 우리는 두 표를 어떤 식으로든 이어 붙여야 한다. 이 '이어 붙이기'가 바로 JOIN이다. 개념은 단순한데, 막상 실무에서 결과 행이 이상하게 부풀거나 빠지면 그때부터 머리가 아파진다. 대부분은 JOIN의 종류를 정확히 구분하지...

밤 11시, 배포한 지 10분 만에 알림이 울린다. "결제 페이지에서 에러가 나요." 로그를 열어 보니 원인은 허무하다. 서버가 내려준 값이 문자열 `"0"`이었는데, 코드에서는 숫자 `0`으로 여기고 `price - discount`를 계산한 것이다. 자바스크립트는 이 실수를 조용히 넘어간다. 실행되기 전까지 아무도 몰랐고, 하필 그걸 사용자가 먼저 발견...

리스트에서 값 하나를 찾는 코드를 짰습니다. 항목이 100개일 때는 눈 깜짝할 사이에 끝났죠. 그런데 서비스가 커져서 100만 개가 되자, 같은 코드가 몇 초씩 멈칫거리기 시작합니다. 코드는 한 글자도 바꾸지 않았는데 왜 갑자기 느려졌을까요? 이 질문에 "데이터가 많아져서요"라고 답하는 건 절반만 맞습니다. 진짜 답은 그 코드가 데이터 양에 대해 어떤 비율...

새벽 2시, 트래픽이 몰려 API 서버가 버벅였다. 한 개발자가 로그를 뒤지다 문득 이런 생각을 한다. "언어를 바꾸면 이 문제가 좀 나아질까?" 그 답을 찾다 많은 사람이 만나는 이름이 바로 Go다. 구글이 2009년에 공개한 이 언어는, 요즘 서버·클라우드 세계에서 조용히 그러나 확실하게 자리를 넓혀 왔다. Go는 화려하지 않다. 오히려 심심할 정도로 ...

새 프로젝트에 합류한 첫날, 팀장이 건넨 저장소를 내려받아 실행 버튼을 누릅니다. 그런데 에러가 쏟아집니다. 파이썬 버전이 다르고, 데이터베이스가 안 깔려 있고, 어떤 라이브러리는 설치조차 되지 않습니다. 옆자리 동료의 노트북에서는 멀쩡히 돌아가는 그 프로그램이, 내 컴퓨터에서는 요지부동입니다. 개발자라면 누구나 겪는 이 장면의 이름이 바로 ==\"제 컴퓨...

금요일 저녁, 고객사에서 회원 5만 명의 연락처 파일이 도착했습니다. 열어 보니 `010-1234-5678`, `010 1234 5678`, `01012345678`, `+82-10-1234-5678`이 뒤죽박죽 섞여 있습니다. "이걸 언제 다 손으로 고치지..." 이럴 때 30분이면 끝나는 도구가 정규표현식입니다. 정규표현식(Regular Expressi...

며칠 밤을 새워 만든 기능을 커밋한 순간, 뭔가 잘못됐다는 걸 깨달은 적이 있을 것이다. 방금 지운 파일이 사실은 지우면 안 되는 것이었거나, 커밋 메시지를 엉뚱하게 적었거나, 아직 손도 안 댄 다른 사람의 코드까지 통째로 덮어써 버렸거나. 그때 머릿속에 떠오르는 단어는 하나다. 되돌리기. 그런데 막상 검색해 보면 `reset`, `revert`, `res...

"분명 방금 글을 올렸는데 작성 시간이 9시간 전으로 찍혀요." PHP로 웹을 만들다 보면 한 번쯤 마주치는 황당한 버그다. 기능은 멀쩡한데 시간만 어긋난다. 범인은 십중팔구 ==시간대(timezone)== 설정이다. 오늘은 PHP와 MySQL 사이에서 시간이 꼬이는 이유와, 깔끔하게 맞추는 방법을 실무 관점에서 정리한다. 왜 9시간이 어긋날까 PHP의 기...
