개발

29개의 글

PHP·Python·JavaScript·Java·Go·Rust·C/C++·Kotlin·Swift 등 다양한 프로그래밍 언어의 입문과 심화, MySQL·SQL 데이터베이스, 리눅스 서버 운영, 실무 에러 해결과 코드 팁까지. 입문자도 따라 할 수 있는 예제 중심 개발 가이드입니다.

개발

표 두 개가 만나야 답이 나온다 — SQL JOIN, 헷갈리는 4가지를 한 번에 정리

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

2026.07.30 · 읽기 3분 · 조회 819
표 두 개가 만나야 답이 나온다 — SQL JOIN, 헷갈리는 4가지를 한 번에 정리
개발

밤 11시의 알림을 오후 3시로 앞당기는 법 — 타입스크립트, 겁먹지 말고 시작하기

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

2026.07.27 · 읽기 6분 · 조회 679
밤 11시의 알림을 오후 3시로 앞당기는 법 — 타입스크립트, 겁먹지 말고 시작하기
개발

빠른 코드는 감이 아니라 계산이다 — 시간복잡도와 빅오(Big-O) 처음 이해하기

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

2026.07.26 · 읽기 3분 · 조회 520
빠른 코드는 감이 아니라 계산이다 — 시간복잡도와 빅오(Big-O) 처음 이해하기
개발

느려도 되는 건 없다, 대신 같이 달린다 — Go 언어가 서버에서 사랑받는 이유

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

2026.07.22 · 읽기 6분 · 조회 759
느려도 되는 건 없다, 대신 같이 달린다 — Go 언어가 서버에서 사랑받는 이유
개발

"제 컴퓨터에선 되는데요"가 사라지는 순간 — Docker, 처음 만나는 컨테이너

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

2026.07.17 · 읽기 6분 · 조회 654
"제 컴퓨터에선 되는데요"가 사라지는 순간 — Docker, 처음 만나는 컨테이너
개발

정규표현식, 외우지 말고 조합하세요 — grep·PHP 실전 패턴

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

2026.07.12 · 읽기 4분 · 조회 1,250
정규표현식, 외우지 말고 조합하세요 — grep·PHP 실전 패턴
개발

커밋 실수, 이제 당황 말자 — Git 되돌리기 restore·reset·revert 제대로 구분하기

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

2026.07.08 · 읽기 8분 · 조회 1,056
커밋 실수, 이제 당황 말자 — Git 되돌리기 restore·reset·revert 제대로 구분하기
개발

PHP 시간이 9시간 어긋날 때 — 시간대(timezone) 제대로 잡기

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

2026.06.30 · 읽기 1분 · 조회 840
PHP 시간이 9시간 어긋날 때 — 시간대(timezone) 제대로 잡기
개발

리눅스 디스크가 꽉 찼다 — df도 안 잡히는 용량 범인 찾기

서버 모니터링 알림이 울렸다. "디스크 사용량 98%." 부랴부랴 접속해 `df -h`를 쳐 보니 정말 루트 파티션이 꽉 차 있다. 그런데 막상 `du`로 폴더 용량을 더해 보면 합이 영 맞지 않는다. 분명 어딘가 수십 기가가 사라졌는데 보이질 않는다. 리눅스를 운영하다 보면 한 번쯤 겪는 ==유령 디스크== 미스터리다. 오늘은 이 범인을 차분히 찾는 순서...

2026.06.29 · 읽기 4분 · 조회 1,643
리눅스 디스크가 꽉 찼다 — df도 안 잡히는 용량 범인 찾기
개발

MySQL 'Lock wait timeout' 에러, 서버 재시작 말고 범인부터 찾자

금요일 저녁, 정산 배치가 돌아가는 시간이었다. 평소엔 1분이면 끝나던 작업이 멈춰 있었고, 화면에는 낯익은 한 줄이 떠 있었다. `Lock wait timeout exceeded; try restarting transaction`. 누군가는 이 메시지를 보면 일단 서버부터 재시작하고 보지만, 그건 대개 문제를 미루는 일일 뿐이다. 오늘은 이 에러가 왜 생...

2026.06.29 · 읽기 6분 · 조회 912
MySQL 'Lock wait timeout' 에러, 서버 재시작 말고 범인부터 찾자