1. 문제를 작게 나누고, 함수는 한 가지 일만 하게 만든다.

  2. 요구사항과 입출력 계약(Contract)을 먼저 글로 정리한다.

  3. “읽기 쉬운 코드 > 일단 돌아가는 코드 > 빠른 코드” 순서를 기억한다.

  4. 의미 있는 이름(명사/동사 일관, 축약 지양)을 쓴다.

  5. 일관된 스타일을 자동 포매터로 강제한다(예: Black/Prettier).

  6. 주석은 “무엇(what)”보다 “왜(why)”를 기록한다; 공개 API는 docstring으로 문서화.

  7. 에러 메시지를 끝까지 읽고, 최소 재현 코드를 만든다.

  8. 디버깅 기본기: print/log, breakpoint, watch, 이분 탐색식 주석 처리.

  9. 언어 기초와 표준 라이브러리를 먼저 숙련한다.

  10. 로컬에서 빠르게 실험할 REPL/Notebook 환경을 갖춘다.

  11. 버전관리(Git) 기본: add/commit/push/pull을 정확히 이해한다.

  12. 작고 자주 커밋하고, 커밋 하나가 하나의 의도만 담게 한다.

  13. 좋은 커밋 메시지(제목은 명령형, 본문은 이유/맥락) 작성 습관.

  14. 브랜치 전략(feature/bugfix/release)과 PR 규칙을 팀과 합의한다.

  15. 코드 리뷰는 “사실·기준·근거”로; 개인 취향은 자동화 도구로 해결한다.

  16. 자동 포매터+린터(ESLint/flake8/ruff 등)를 CI에 걸어둔다.

  17. 정적 타이핑(TypeScript/mypy/pyright)으로 인터페이스를 명확히 한다.

  18. 단위 테스트의 최소 세트를 만든다(핵심 로직·실패 경로·가드).

  19. 테스트 피라미드(단위>통합>엔드투엔드) 균형을 안다.

  20. 테스트 가능한 설계(의존성 주입, I/O 경계 분리)를 지향한다.

  21. 시간·공간 복잡도 감각과 프로파일링의 차이를 안다(추정≠측정).

  22. 핵심 자료구조(List/Map/Set/Queue/Heap)와 활용 패턴 숙지.

  23. 불변성 선호, 부작용 최소화로 예측 가능성을 높인다.

  24. 에러 처리 원칙: 예외 vs 반환값, 실패를 첫급 시민으로 다룬다.

  25. 로깅 레벨(DEBUG/INFO/WARN/ERROR)와 구조화 로깅(JSON)을 사용한다.

  26. 설정은 코드와 분리(.env/환경변수/컨피그 계층).

  27. 의존성 관리 도구(pip-tools/poetry/npm/pnpm)로 버전 고정.

  28. 가상환경·컨테이너로 실행 환경을 격리한다.

  29. 작은 CLI(예: Makefile/justfile/uv run)로 반복 작업을 자동화한다.

  30. 입력 검증(스키마 검증, 길이/범위 체크)과 방어적 프로그래밍.

  31. 파일 경로·개행·퍼미션의 OS 차이를 이해한다(Win/Linux/macOS).

  32. 시간/타임존/서머타임 처리(UTC 기준, 변환은 가장자리에서).

  33. 유니코드/UTF-8·정규화(NFC/NFD)·이모지 처리 인지.

  34. 네트워크 기초(HTTP 메서드·상태코드·헤더·리다이렉트).

  35. 보안 기본: 비밀은 코드에 넣지 말고, 최소 권한 원칙.

  36. SQL 기초(SELECT/JOIN/WHERE)와 인덱스 동작 원리.

  37. 트랜잭션(ACID), 격리 수준, 락과 데드락 감각.

  38. 캐시 기본(로컬/공유, 일관성, 만료/무효화 전략).

  39. 동시성 기초(스레드/프로세스/async) 선택 기준.

  40. 레이스 컨디션·데드락·라이브락을 탐지/회피하는 패턴.

  41. 성능 개선은 “측정→가설→미세 변경→재측정” 루프가 전부다.

  42. 빅O만 보지 말고 상수·I/O·메모리·GC 비용을 함께 본다.

  43. 스트리밍/제너레이터/이터레이터로 메모리 압력을 낮춘다.

  44. API 설계 원칙: 명확한 계약, 일관된 리소스/동사, 버저닝.

  45. 안정적 에러 계약(오류 스키마/코드/리트라이 가능성 표시).

  46. 멱등성(Idempotency), 재시도, 백오프, 중복 방지 키 설계.

  47. CI/CD 파이프라인으로 테스트·빌드·배포를 자동화한다.

  48. 관측성: 로그·메트릭·트레이싱으로 원인분석 가능하게.

  49. 재현성: 시드·환경·데이터·의존성 버전을 고정한다.

  50. 수치 연산의 함정: 부동소수 오차·누적 오차·정규화/스케일링.



    근데 신입은 이거 다 알아도 취업 못할 수 있습니다.


    도망쳐....