① 알아야 하는 이유 1 동시에 처리되는 세상 속 프로그래밍 → 요즘 우리가 사용하는 프로그램은 대부분 여러 작업을 동시에 처리 → 스마트폰에서 음악을 들으면서 사진을 편집하고, 알림도 받는 상황을 생각하면 이해가 쉬움 → 프로그램 내부에서도 여러 작업이 동시에 실행되며, 이를 멀티테스킹 혹은 동시성(Concurrency)라고 부름 2 동시에 처리되면 생기는 문제 → 여러 작업이 동시에 같은 데이터를 건드릴 때 발생 → 두 개의 작업이 동시에 데이터를 꺼내거나 넣는다면, 순서가 꼬이거나 데이터가 손상될 수도 있음 → 이런 현상을 동기화 문제라고 부르며, 실제로 프로그램이 잘못 작동하는 주요 원인 중 하나 ② 기본 개념 1 스택(Stack) → 데이터를 쌓는 자료구조 → 마지막에 넣은 데이터가 가장 먼저 나오는 LIFO(Last-In, First-Out) 구조를 가짐 → 급식 시간에 쌓여진 식판을 사람들이 맨 위에서부터 하나씩 가져가는 것을 생각하면 이해가 쉬움 → 스택에 대해 더 많...