PHP·Python·JavaScript·Java·Go·Rust·C/C++·Kotlin·Swift 등 다양한 프로그래밍 언어의 입문과 심화, MySQL·SQL 데이터베이스, 리눅스 서버 운영, 실무 에러 해결과 코드 팁까지. 입문자도 따라 할 수 있는 예제 중심 개발 가이드입니다.
어느 금요일 오후, 회원가입 폼에 이상한 값이 들어온다는 제보를 받았다. 이메일 칸에 `abc@`만 적어도 가입이 되고 있었다. "그거 정규식 하나면 되지 않아요?" 옆자리에서 던진 말이 맞긴 했는데, 문제는 그 '하나'를 만드는 데 반나절이 걸렸다는 점이다. 인터넷에서 복사한 패턴은 동작하는 듯하다가 한글 도메인에서 터졌고, 급하게 고친 패턴은 정상적인 ...

금요일 저녁 6시 40분. 배포 직전에 급하게 고친 파일 세 개를 커밋하려다가, 손이 미끄러져 `git checkout .` 을 눌러버린 신입 개발자 A씨의 이야기입니다. 두 시간 동안 만진 코드가 조용히 사라졌습니다. 에러 메시지도, 확인 창도 없었습니다. Git이 무서운 이유는 어렵기 때문이 아니라, ==틀린 명령이 아무 말 없이 성공하기 때문==입니다...

금요일 밤 11시, 작은 쇼핑몰을 운영하는 개발자에게 전화가 왔다고 해보자. 관리자 페이지에 접속했더니 상품 목록이 텅 비어 있었다. 서버는 멀쩡했고, 디스크도 넉넉했고, 에러 로그에도 이상이 없었다. 다만 접속 로그에 이런 요청이 하루 종일 찍혀 있었다. ``` GET /product.php?id=12%20OR%201=1-- ``` 숫자 하나가 들어와야 ...

금요일 저녁 7시, 퇴근길 지하철에서 메시지가 온다. "사이트가 좀 느린데요?" 노트북을 열 자리도 없는데 마음은 이미 급해진다. 이럴 때 가장 위험한 습관이 하나 있다. ==원인을 짐작해서 아무거나 재시작하는 것==이다. 재시작하면 증상은 잠깐 사라지지만, 원인은 그대로 남아 새벽 3시에 다시 찾아온다. 서버 진단은 감이 아니라 순서다. 확인할 것이 딱 ...

회원 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는 화려하지 않다. 오히려 심심할 정도로 ...
