지난 도레미 파이썬 Vol.1에서는 변수, 리스트, 조건문, 반복문 같은 기본 문법을 배웠습니다.
덕분에 간단한 프로그램 정도는 읽을 수 있게 되었지만, 아직도 개발자들이 작성한 코드를 보면 이해하기 어려운 부분이 많았습니다.
이번 Vol.2 강의에서는 그런 의문을 조금 해소할 수 있었습니다.
실제 개발자들이 자주 사용하는 Python 문법과 코딩 패턴을 배우는 시간이었기 때문입니다.
솔직히 난이도는 이전 강의보다 확실히 높았습니다.
하지만 AI 개발자가 되기 위해서는 반드시 알아야 할 내용들이라는 생각이 들었습니다.
코드도 "잘 쓰는 방법"이 따로 있었다
이번 강의를 들으며 가장 크게 느낀 점은
"코드는 돌아가기만 하면 되는 것이 아니다"
라는 사실이었습니다.
같은 결과를 만들더라도 더 짧고, 더 읽기 쉽고, 더 효율적으로 작성하는 방법이 존재했습니다.
마치 엑셀도 여러 방법으로 같은 결과를 만들 수 있지만 숙련자는 더 효율적인 함수를 사용하는 것과 비슷했습니다.

f-string
문자열 출력이 훨씬 편해졌다
가장 먼저 배운 내용은 f-string이었습니다.
이전에는 문자열과 변수를 함께 출력하려면 여러 개를 이어붙여야 했습니다.
하지만 f-string을 사용하면 문자열 안에서 바로 변수를 사용할 수 있습니다.
예를 들어
현재 시간은 오전 9시 15분입니다.
같은 문장을 훨씬 직관적으로 만들 수 있습니다.
실습을 해보니 앞으로 print()를 사용할 때 거의 필수처럼 사용하게 될 것 같습니다.

도레미파이썬 vol2 실무에서 자주 사용하는 추가적인 문법 패턴
List Comprehension
Python 개발자들이 사랑하는 문법
이번 강의에서 가장 인상 깊었던 내용은 List Comprehension이었습니다.
처음 코드를 봤을 때는 솔직히 암호 같았습니다.
하지만 설명을 듣고 나니
반복문과 조건문으로 여러 줄 작성해야 할 코드를 한 줄로 줄이는 기술이었습니다.
예를 들어
0부터 99까지 숫자 중 짝수만 추출하거나,
특정 조건에 맞는 데이터만 골라 새로운 리스트를 만드는 작업을 간단하게 수행할 수 있습니다.
데이터 분석을 하게 되면 이런 패턴이 굉장히 자주 등장할 것 같다는 생각이 들었습니다.
sort와 sorted의 차이
처음에는 둘 다 정렬인데 왜 두 개나 있는지 이해가 되지 않았습니다.
강의를 듣고 나서 차이를 알게 되었습니다.
sort()
원본 데이터를 직접 변경합니다.
sorted()
원본은 유지하고 정렬된 복사본을 반환합니다.
실무에서는 원본 데이터를 보존해야 하는 경우가 많기 때문에 sorted()를 사용하는 이유를 이해할 수 있었습니다.
enumerate
인덱스 번호와 데이터를 동시에 가져오기
반복문을 사용할 때
"지금 몇 번째 데이터인지"
확인해야 하는 경우가 있습니다.
이럴 때 enumerate를 사용하면 인덱스 번호와 데이터를 함께 가져올 수 있습니다.
예를 들어
학생 성적을 순서대로 출력하거나,
데이터 목록을 번호와 함께 보여줄 때 유용합니다.
처음에는 사소한 기능처럼 보였지만 실제 코드를 작성해 보니 상당히 자주 사용될 것 같았습니다.
Lambda
함수도 한 줄로 만들 수 있다고?
이번 강의에서 가장 어려웠던 내용은 Lambda였습니다.
Lambda는 이름 없는 익명 함수를 만드는 문법입니다.
간단한 계산이나 데이터 변환 작업을 할 때 사용됩니다.
솔직히 아직은 일반 함수가 더 이해하기 쉽습니다.
하지만 데이터 분석이나 머신러닝 코드를 보다 보면 Lambda 함수가 자주 등장한다고 하니 익숙해질 필요가 있을 것 같습니다.
map 함수
데이터를 한 번에 변환하기
Lambda와 함께 배운 내용이 map 함수였습니다.
map 함수는 리스트 안의 모든 데이터에 동일한 작업을 적용할 때 사용합니다.
예를 들어
- 모든 문자를 대문자로 변경
- 모든 숫자를 제곱
- 특정 형식으로 데이터 변환
같은 작업을 한 번에 수행할 수 있습니다.
AI나 데이터 분석 분야에서 데이터를 전처리할 때 자주 활용될 것 같은 느낌이 들었습니다.
if name == "main"
이번 강의에서 가장 개발자스럽다고 느꼈던 문법입니다.
처음 봤을 때는 주문 같은 느낌이었습니다.
하지만 설명을 듣고 나니 Python 프로그램의 시작점을 지정하는 역할을 한다는 것을 알게 되었습니다.
규모가 커진 프로그램에서는 여러 파일을 나눠서 작성하게 되는데,
이때 의도하지 않은 코드 실행을 막아주는 중요한 역할을 합니다.
지금은 완전히 이해하지 못하더라도 나중에 프로젝트를 하게 되면 반드시 만나게 될 문법이라고 합니다.
비전공자가 꼭 기억하면 좋은 내용
이번 강의를 들으며 개인적으로 중요하다고 생각한 개념은 다음과 같습니다.
1. f-string
가독성 좋은 출력
2. List Comprehension
반복문을 짧게 작성하는 방법
3. sorted()
원본 데이터를 유지하며 정렬
4. enumerate()
순서와 데이터를 동시에 사용
5. Lambda + map
데이터를 효율적으로 변환
6. if name == "main"
프로그램 시작점 관리
이번 강의를 마치고
Vol.1이 Python 문법을 배우는 시간이었다면,
Vol.2는 Python을 Python답게 사용하는 방법을 배우는 시간이었습니다.
처음에는 코드가 점점 복잡해지는 것 같아 당황하기도 했습니다.
하지만 강의를 들으면서 개발자들이 왜 이런 문법을 사용하는지 조금씩 이해하게 되었습니다.
특히 데이터 분석과 AI 개발에서는 수많은 데이터를 다루게 되는데, 결국 더 짧고 효율적인 코드를 작성하는 능력이 중요하다는 것을 느꼈습니다.
아직 Lambda나 List Comprehension은 자연스럽게 사용하기 어렵지만, 적어도 다른 사람이 작성한 코드를 읽을 때는 훨씬 이해하기 쉬워질 것 같습니다.
AI 개발자로 가는 길이 생각보다 쉽지는 않지만, 이전보다 한 단계 더 성장한 느낌이 드는 강의였습니다.