본문으로 바로가기
TaeyoungKim.dev

IT FOUNDATIONS TO PRODUCTION ENGINEERING

기초를 단단히 쌓고, 구현과 운영 판단까지 연결합니다.

자바/스프링·DB/SQL·리눅스·클라우드·웹·앱·파이썬·AI·보안·CS를 개념부터 코드, 검증, 운영 판단까지 정리합니다.

리눅스 절대경로·상대경로: cd가 다른 폴더로 가는 이유와 pwd 확인법

리눅스5 분

Spring @Autowired가 null인 이유: new 객체와 스프링 빈의 차이

자바/스프링4 분

SQL LEFT JOIN ON과 WHERE 차이: 공개 사진이 없는 상품도 남기는 법

상품은 모두 보여 주되 공개된 사진만 붙이려면 LEFT JOIN의 필터를 어디에 둬야 할까요? 공개·초안·사진 없음 세 경우를 같은 SQL로 비교합니다.

DB/SQL4 분

SQL INSERT 후 COMMIT과 ROLLBACK: 트랜잭션을 되돌릴 수 있는 범위

INSERT가 즉시 확정되지 않는 이유와 COMMIT·ROLLBACK의 경계, 테스트 데이터를 안전하게 다루는 순서를 설명합니다.

DB/SQL3 분

SQL CREATE TABLE의 DEFAULT와 NOT NULL: 새 행의 기본값을 안전하게 설계하는 법

DEFAULT와 NOT NULL이 각각 언제 적용되는지, INSERT에서 NULL과 열 생략이 왜 다른지 예제로 설명합니다.

DB/SQL3 분

SQL UNIQUE에 NULL이 여러 개 들어가는 이유: PRIMARY KEY와 차이

UNIQUE 제약을 걸었는데 NULL 행은 두 개 저장되고 같은 이메일은 거부됩니다. SQLite 예제로 NULL·빈 문자열·NOT NULL·PRIMARY KEY의 차이를 확인합니다.

DB/SQL4 분

SQL COUNT(*)와 COUNT(컬럼) 차이: NULL은 왜 건수에서 빠질까?

같은 작업 네 건에서 COUNT(*)는 4, COUNT(retry_count)는 3이 되는 이유를 NULL과 0의 차이, WHERE 필터까지 한 예제로 확인합니다.

DB/SQL2 분

SQL DISTINCT 여러 컬럼 중복 제거: 한 컬럼이 계속 중복되는 이유

DISTINCT를 썼는데 Seoul이 두 줄 남았다면, SQL은 한 컬럼이 아니라 SELECT에 적은 컬럼 조합을 비교하고 있을 수 있습니다. 같은 주문 데이터로 결과를 확인합니다.

DB/SQL3 분

Zustand와 React 지역 상태 차이: 장바구니 수량과 패널 열림은 어디에 둘까?

여러 컴포넌트가 함께 쓰는 값과 한 화면에서만 필요한 값을 구분해 Zustand 스토어와 useState를 선택하는 기준을 설명합니다.

웹3 분

React 입력창에 글자가 안 써질 때: value와 onChange 제어 입력 확인

React input에 value만 설정하면 입력이 되돌아가는 이유를 상태 업데이트 예제와 입력·초기화 테스트 순서로 설명합니다.

웹3 분

React Router 중첩 경로가 빈 화면일 때: children과 Outlet 확인

부모 레이아웃은 보이는데 자식 페이지가 렌더링되지 않을 때 중첩 경로와 Outlet 위치를 확인하는 방법을 설명합니다.

웹3 분

JavaScript 길게 누르기 버튼: 손을 떼면 타이머를 취소하는 법

setTimeout으로 길게 누르기를 만들 때 짧게 누르거나 포인터가 취소돼도 작업이 실행되는 문제를 clearTimeout과 상태 점검으로 해결합니다.

웹3 분

JavaScript Promise.all 하나가 실패하면 나머지 작업도 멈출까?

Promise.all이 첫 실패로 거부된 뒤에도 이미 시작한 작업이 계속되는지 두 비동기 작업의 로그로 확인하고, 결과를 모두 모아야 할 때의 선택을 정리합니다.

웹3 분

HTML form 안의 button이 폼을 제출할 때: type=button과 submit 구분

도움말 버튼을 눌렀는데 폼이 제출되는 이유를 링크·일반 버튼·제출 버튼의 역할과 재현 예제로 구분합니다.

웹3 분

파이썬

더 보기

Python try·except·else·finally 실행 순서: 성공과 오류 때 무엇이 실행될까?

파일이나 숫자 처리 중 예외가 날 때 try, except, else, finally가 각각 언제 실행되는지 최소 예제와 오류 점검 순서로 설명합니다.

파이썬3 분

pandas read_csv 한글 UnicodeDecodeError: UTF-8과 CP949 확인법

한글 CSV를 read_csv로 읽다가 UnicodeDecodeError가 날 때 파일의 바이트 인코딩을 확인하고 encoding="cp949"를 선택하는 기준을 설명합니다.

파이썬3 분

pandas loc와 iloc 차이: 필터 후 첫 행이 KeyError가 나는 이유

DataFrame을 필터링한 뒤 첫 행을 읽을 때 loc[0]이 실패하고 iloc[0]은 동작하는 이유를 행 라벨과 위치로 구분합니다.

파이썬3 분

pandas groupby count와 size 차이: 빈 측정값이 행 수에서 빠질 때

채널별 접수 행 수와 대기시간이 기록된 건수를 같은 다섯 행으로 비교해 groupby의 size와 count가 서로 다른 분모를 세는 이유를 확인합니다.

파이썬3 분

pandas 결측치 처리: dropna와 fillna를 선택하기 전에 확인할 것

pandas에서 isna로 결측치의 위치와 비율을 확인하고, dropna와 fillna가 결과 행·자료형·분석 의미에 미치는 차이를 예제로 살펴봅니다.

파이썬4 분

pandas merge 뒤 행이 늘어나는 이유: 중복 키와 조인 카디널리티 확인

pandas merge가 예상보다 많은 행을 만드는 중복 키 문제와 validate 옵션으로 조인 관계를 검증하는 방법을 설명합니다.

파이썬2 분

이 카테고리의 글을 준비하고 있습니다.