1. 컴퓨터와 프로그래밍의 본질
- 컴퓨터의 작동 원리: 전기 신호를 0과 1(이진법)로 구분하여 논리 연산과 저장을 수행하는 전자 기계입니다.
- 파일과 실행 구조: 브라우저, OS 등 모든 프로그램은 파일로 존재합니다. 저장장치(HDD/SSD)에 있던 파일이 실행 시 **RAM(메모리)**에 복사되어 CPU와 상호작용하며 동작합니다.
여기서 잠깐! 메모리의 잔류성 (주의사항) > 한번 실행되어 RAM에 할당된 데이터는 코드를 지우거나 주석 처리해도 메모리에 그대로 남아있습니다. 데이터를 완전히 바꾸려면 새로 할당하거나 커널을 재시작해야 합니다. (조리대 위에 올려둔 재료는 치우기 전까지 사라지지 않는 것과 같습니다.)
- 코딩의 정의: 프로그래밍 언어를 사용하여 컴퓨터가 목적에 맞게 동작하도록 **소스코드(텍스트 파일)**를 작성하는 행위입니다.
- 프로그래밍 구성 요소:
- 데이터(Data): 프로그램이 처리할 정보(숫자, 텍스트 등)이며 변수에 저장됩니다.
- 로직(Logic): 데이터를 처리하는 명령(계산, 조건문 if, 반복문 for 등)입니다.
- 구조(Structure): 함수, 클래스 등 코드를 관리하기 쉬운 단위로 구성하는 것입니다.
2. 파이썬(Python) 언어의 특징
- 고수준 및 범용 언어: 사람이 이해하기 쉬운 문법을 가진 고수준 언어이며, 웹, AI, 데이터 과학 등 다양한 분야에서 활용되는 범용 언어입니다.
- 인터프리터 방식: 코드를 한 줄씩 즉석에서 번역하여 실행(vs 컴파일러는 전체 번역 후 실행(ex.자바))하므로 개발 속도와 생산성이 높습니다. (but 타입 결정 프로세스로 인해 실행 속도가 정적 타이핑 언어(C, Java 등)보다 느릴 수 있습니다.)
- 동적 타이핑: 변수 선언 시 데이터 타입을 명시하지 않아도 컴퓨터가 스스로 분석합니다. 작성은 편리하지만, 타입 결정 과정으로 인해 정적 언어보다 속도는 느릴 수 있습니다.
- 문법 규칙:
- 인덴트(Indent): 띄어쓰기(4칸 권장)로 코드의 범위를 구분하는 엄격한 규칙을 가집니다.
- 인코딩: 전 세계 언어를 지원하는 UTF-8이 기본이며, 주석은 #을 사용합니다.
- 표현: 문자열은 ""와 '' 모두 가능하며, 논리값(Boolean)은 첫 글자가 대문자인 True, False로 표기합니다.
- 참고: 인코딩이란 0과 1만 아는 컴퓨터를 위해 문자를 숫자로 매핑한 표준(ASCII, UTF-8 등)입니다.
3. 실행 환경 및 도구 (Jupyter & VS Code)
- 아나콘다(Anaconda): 파이썬 실행기와 데이터 분석에 필요한 패키지(주피터 랩 등)가 포함된 통합 배포판입니다.
아나콘다 프롬프트(Anaconda Prompt)를 통해 파이썬 인터프리터를 실행하면 대화형 모드(REPL)로 진입합니다. 아나콘다 프롬프트에서 python 입력 시 >>> 모양의 프롬프트가 나타나며 즉석에서 코드를 실행합니다. 종료는 exit() 또는 quit()를 사용합니다. 특히 아나 콘다는 가상환경(Virtual Environment)이 특화되어있다.
가상환경: 프로젝트별로 필요한 도구들을 독립된 방에 나누어 설치하여, 버전 충돌 없이 안전하게 관리하는 기술.
- Jupyter Lab: 아나콘다 프롬프트에 jupyter lab을 입력해 실행하며, 웹 브라우저 기반의 도구로 웹 브라우저 기반의 도구로 코드 한 줄마다 실행 결과 (셀(Cell) 단위) 를 즉시 확인할 수 있어 학습에 최적화되어있는 도구입니다. 내 PC에 설치된 웹 서버를 실행하여 로컬 환경에서 작동한다
- 주요 단축키: A/B(셀 추가), D+D(셀 삭제), M/Y(마크다운/코드 셀 변환).
- VS Code: 다양한 언어 개발을 돕는 도구로, 아나콘다 설치 후 확장 프로그램을 설치하면 .py나 .ipynb(주피터 노트북) 형식으로 작업이 가능합니다.
핵심 개념: 커널(Kernel) > 운영체제 커널이 컴퓨터 자원을 관리한다면, 우리가 사용하는 **VS Code/Jupyter 커널은 '코드를 실제로 실행하는 엔진'**입니다. 우측 상단에서 사용할 파이썬 환경(커널)을 선택해야 코드가 돌아갑니다.
다음은 우리가 우리가 파이썬을 학습함으로써 나아가게될 로드맵이다.
Phase 1. 파이썬 기초 (The Foundation)
프로그래밍의 근육을 기르는 단계입니다.
- 핵심 목표: 파이썬 문법에 익숙해지고, 데이터를 자유자재로 다루기.
- 상세 내용: * 변수와 자료형 (숫자, 문자열, 불리언)
- 자료 구조의 핵심: 리스트(List)와 딕셔너리(Dictionary) 마스터.
- 제어문: if 조건문으로 의사결정 시키기, for/while로 반복 작업 자동화.
- 함수와 모듈: 자주 쓰는 코드를 묶어서 재사용하기 (def, import).
- 연결 고리: 이 기초가 탄탄해야 나중에 AI 모델에 넣을 데이터를 정제할 수 있습니다.
Phase 2. 데이터 분석 & 관리 (Data Intelligence)
데이터를 수집하고, 창고(DB)에 넣고, 요리(Pandas)하는 단계입니다.
- 핵심 목표: 엑셀보다 수만 배 빠른 데이터 처리 능력 갖추기.
- 상세 내용:
- 웹 크롤링: requests, BeautifulSoup으로 인터넷의 데이터를 내 컴퓨터로 가져오기.
- 데이터베이스(DB): 대용량 데이터를 체계적으로 저장하고 SQL로 조회하기.
- 판다스(Pandas): 표(DataFrame) 형태의 데이터를 필터링, 그룹화, 통계 분석하기.
- 데이터 시각화(Matplotlib/Seaborn): 분석한 데이터를 그래프와 차트로 그려서 숨겨진 패턴을 시각적으로 찾아내기.
- 연결 고리: "쓰레기를 넣으면 쓰레기가 나온다(GIGO)"는 말처럼, 좋은 AI를 만들려면 여기서 데이터를 깨끗하게 닦는 과정이 필수입니다.
Phase 3. 머신러닝 & 딥러닝 (Artificial Intelligence)
드디어 데이터가 지능을 갖게 되는 단계입니다.
- 핵심 목표: 데이터를 학습시켜 미래를 예측하거나 패턴을 분류하기.
- 상세 내용:
- 머신러닝(Scikit-learn): 회귀(수치 예측), 분류(스팸 메일 구분), 군집화.
- 모델 평가 및 최적화: 정확도(Accuracy) 등의 지표로 AI의 성능을 측정하고, 더 똑똑해지도록 튜닝하기.
- 딥러닝(PyTorch/TensorFlow): 인간의 신경망을 본뜬 모델로 이미지 인식, 자연어 처리 입문.
- 연결 고리: 데이터 분석 단계에서 찾은 인사이트를 바탕으로 실제 예측 모델을 구현합니다.
Phase 4. LLM & 서비스 배포 (Advanced & Deployment)
최신 기술을 활용해 실제 세상에 내놓는 단계입니다.
- 핵심 목표: ChatGPT 같은 거대 모델을 활용하고, 나만의 앱으로 서비스화하기.
- 상세 내용:
- LLM (Large Language Model): OpenAI API, LangChain 등을 활용한 AI 에이전트 만들기.
- 프롬프트 엔지니어링: AI에게 효과적으로 질문하고 답을 얻는 기술.
- 배포(Deployment): Flask나 FastAPI로 서버를 만들고, 클라우드(AWS/Streamlit 등)에 올려 누구나 접속 가능한 웹사이트 만들기.
- 연결 고리: 내가 만든 AI 모델이 내 컴퓨터 안에만 머물지 않고, 실제 사용자가 쓰는 '제품'이 됩니다.
'AI > Python' 카테고리의 다른 글
| 통계 개념 (0) | 2025.06.04 |
|---|---|
| 파이썬 기초(웹 크롤링) (0) | 2025.05.26 |
| 파이썬 기초(함수와 모듈) (0) | 2025.05.26 |
| 파이썬 기초(제어문) (0) | 2025.05.23 |
| 파이썬 기초(자료 구조의 핵심) (0) | 2025.05.21 |