반응형

3.SW개발/Python 18

[Java관점]11편. Python 프로그래밍 사고 전환 – Java 스타일에서 Python 스타일로

11편. Python 프로그래밍 사고 전환 – Java 스타일에서 Python 스타일로 📚 목차1. 리스트 컴프리헨션 (List Comprehension) - for문을 한 줄로 줄이기2. Unpacking과 Zip - 여러 값을 더 직관적으로 다루기3. Context Manager (with 문) - 자원 관리를 자동으로 처리하기4. 코드 스타일 가이드 (PEP8) - Python답게 쓰는 문법 습관✔ 마무리 - Pythonic 사고의 시작점 “Java로는 이렇게 안 했는데…”Python을 처음 접한 Java 개발자라면 한 번쯤 이렇게 생각해본 적 있을 것입니다.Java는 정형화된 구조와 강한 타입 안정성을 중시하는 언어입니다. 반면, Python은 간결성과 유연함을 바탕으로 '무엇을 할지'에 더 집..

3.SW개발/Python 2025.11.13

[Java관점]10편. Python 파일 입출력 – Java IO vs Python open() 비교

10편. Python 파일 입출력 – Java IO vs Python open() 비교 📚 목차1. 텍스트 파일 입출력 - Java 스트림 vs Python open()2. 버퍼 IO 처리 - 성능을 위한 구조적 접근3. 텍스트 인코딩과 예외 처리 전략4. 바이너리 IO - 원시 바이트와 객체 직렬화 비교5. 포맷별 입출력 - JSON, CSV, YAML 처리 방식✔ 마무리 - IO 전략 선택의 기준 Java 개발자에게 파일 입출력(IO)은 친숙한 영역입니다.FileReader, BufferedWriter, FileInputStream, ObjectOutputStream 같은 클래스 조합을 통해 다양한 형식의 데이터를 읽고 쓰는 작업에 익숙할 것입니다.하지만 Python에서는 전혀 다른 접근이 펼쳐집니..

3.SW개발/Python 2025.11.13

[Java관점]9편. Python 모듈과 import – Java와 다른 가져오기 구조 이해하기

9편. Python 모듈과 import – Java와 다른 가져오기 구조 이해하기 📚 목차1. Java와 Python의 모듈과 패키지 개념 비교2. 디렉토리 구조 설계 방식의 차이3. import 구문 사용법: 기본, from-import, alias4. 상대 경로 vs 절대 경로: Python에서의 선택5. 실행 위치에 따른 import 에러: 구조적 차이 분석✔ 마무리 - 유연함 속의 규칙, Python import를 안전하게 쓰는 법 Java에 익숙한 개발자라면 Python의 모듈 구조와 import 방식에서 적잖은 혼란을 겪습니다.코드는 정상적으로 동작하는 것처럼 보이지만, 실행 위치에 따라 예기치 않은 ImportError가 발생하거나 동일한 구문이 어떤 환경에서는 실패하는 경우도 있습니다...

3.SW개발/Python 2025.11.13

[Java관점]8편. Python 멀티스레딩 vs GIL – Java와 Python 병렬 처리 방식 비교

8편. Python 멀티스레딩 vs GIL – Java와 Python 병렬 처리 방식 비교 📚 목차1. Java 병렬 처리 구조: Thread, Runnable, Executor2. Python의 병렬 처리 방식: GIL을 피하는 전략들3. GIL(Global Interpreter Lock) 구조와 병목 현상의 원리4. 멀티스레드 vs 멀티프로세스 전략 비교5. 실습 - 같은 연산, 다른 결과: Java vs Python✔ 마무리 - 병렬 처리 전략의 선택 기준 멀티코어 CPU 환경이 기본이 된 지금, 병렬 처리는 대용량 연산과 실시간 처리를 위한 핵심 기술입니다.특히 서버 사이드 애플리케이션, 데이터 분석, AI 모델 실행 등에서는 병렬 구조의 설계 방식이 전체 성능을 좌우합니다.Java는 언어 수준..

3.SW개발/Python 2025.11.13

[Java관점]7편. Python 컬렉션 정리 – Java List/Map/Set과의 대응 구조

7편. Python 컬렉션 정리 – Java List/Map/Set과의 대응 구조 📚 목차1. ArrayList vs list - 순차형 컬렉션을 간결하게 다루기2. HashMap vs dict - 키-값 구조의 차이와 유연성3. HashSet vs set - 중복 없는 컬렉션과 집합 연산4. 컬렉션 순회와 CRUD - Java보다 직관적인 문법✔ 마무리 - 익숙한 개념, 새로운 문법에 적응하는 법 Python은 list, dict, set이라는 세 가지 기본 컬렉션 타입을 내장 형태로 제공합니다.이들은 Java의 ArrayList, HashMap, HashSet과 유사한 역할을 하며, 문법은 훨씬 간결하고 사용법도 직관적입니다.Java에 익숙한 개발자라면 Python 컬렉션을 단순히 새로운 문법으로 ..

3.SW개발/Python 2025.11.12

[Java관점]6편. Python 예외 처리 문법 – Java와 Python의 처리 구조 비교

6편. Python 예외 처리 문법 – Java와 Python의 처리 구조 비교 📚 목차1. 예외 처리 기본 구조 - try-catch vs try-except 비교2. 여러 예외 처리 - 다중 블록과 그룹 처리 방식3. 리소스 자동 반환 - try-with-resources vs with open4. 예외 발생시키기 - throw와 raise의 차이5. Java vs Python의 예외 처리 철학과 흐름 차이✔ 마무리 - 두 언어의 예외 처리 방식, 무엇을 배울 수 있을까? Java에서 try-catch는 필수적인 예외 처리 패턴입니다. 코드에서 오류가 발생할 수 있는 부분을 안전하게 감싸고, 예외 상황에 유연하게 대응할 수 있도록 해 주죠. 그렇다면 Python에서는 어떤 방식으로 예외를 처리할까요..

3.SW개발/Python 2025.11.12

[Java관점]5편. Python 클래스와 객체지향 – Java보다 유연한 설계 방식 이해하기

5편. Python 클래스와 객체지향 – Java보다 유연한 설계 방식 이해하기 📚 목차1. Python 클래스 선언 방식 - 간결함과 동적 설계2. __init__() 생성자 - 오버로딩 없이 유연한 초기화3. self 키워드 - 인스턴스와 메서드 연결의 핵심4. 상속과 오버로딩 - Java와 Pytho의 설계 차이5. 접근 제한자 - Python의 관례 기반 제어 방식✔ 마무리 - 객체지향 철학의 차이를 이해하며 Java는 정적 타입과 엄격한 클래스 구조를 기반으로 하는 전통적인 객체지향 언어입니다. 반면 Python은 함수형, 절차적, 객체지향 프로그래밍을 모두 지원하는 다중 패러다임 언어로, 특히 객체지향 구현 방식에 있어 Java와는 매우 다른 철학과 문법 구조를 지닙니다. Java 개발자가..

3.SW개발/Python 2025.11.12

[Java관점]4편. Python 함수와 메서드 – 호출 방식과 선언 구조 비교

4편. Python 함수와 메서드 – 호출 방식과 선언 구조 비교 📚 목차1. 함수 정의와 호출 방식 - Java와 Python 구조 비교2. 오버로딩 없이 유연한 호출 - 기본값 인자와 키워드 인자3. 인자 개수 제한 없는 함수 - *args와 **kwargs의 활용4. 간결한 함수 표현 - 람다(lambda)의 사용법5. 메서드의 3가지 유형 - 인스턴스/클래스/정적 메서드 비교✔ 마무리 - Python 함수의 유연함을 Java 시각에서 이해하기 Java 개발자에게 함수는 클래스 내부의 ‘메서드’로 정의되며, 명확한 반환 타입과 접근 제어자를 포함하는 정형화된 구조로 익숙합니다. 하지만 Python으로 전환하면 전혀 다른 함수 정의 방식, 인자 처리 방식, 호출 구조를 마주하게 됩니다.예를 들어, ..

3.SW개발/Python 2025.11.11

[Java관점]3편. Python 조건문과 반복문 – Java와 다른 제어 구조 한눈에 보기

3편. Python 조건문과 반복문 – Java와 다른 제어 구조 한눈에 보기 📚 목차1. 중괄호 대신 들여쓰기 - 코드 블록이 달라요2. 조건문 if-else - 표현 방식과 문법 차이3. 반복문 비교 - for-each와 range의 차이점4. while 반복문 - 조건 기반 반복 구조✔ 마무리 - 구조는 다르지만, 의도는 같다 Python은 Java와 달리 중괄호 {}를 사용하지 않고, 들여쓰기(Indentation)만으로 코드 블록을 구분합니다.이러한 차이는 조건문과 반복문 구조 전반에 걸쳐 큰 영향을 줍니다.이번 글에서는 Java 개발자가 Python의 조건문(if)과 반복문(for, while)을 자연스럽게 익힐 수 있도록, 두 언어의 제어문을 구조적으로 비교하고 실무 예제를 통해 감각적으로..

3.SW개발/Python 2025.11.11

[Java관점]2편. Python 변수와 자료형 – Java보다 유연한 선언 방식 비교

2편. Python 변수와 자료형 – Java보다 유연한 선언 방식 비교 📚 목차1. Java 개발자에게 '타입'이 중요한 이유2. Python은 타입을 어떻게 다룰까? - 동적 타이핑(Dynamic Typing)3. Java vs Python 자료형 완전 비교4. Python 동적 타이핑의 장점과 위험성5. 타입 힌트(Type Hints)의 등장 - Python이 바뀌고 있다✔ 마무리 - Python에서 타입은 '선택'이다 Python 학습의 가장 기본적인 부분이면서도 Java와 가장 큰 차이를 보이는 '변수 선언과 자료형'에 대해 다룹니다.Java에서는 변수를 선언할 때 항상 타입을 명시해야 하지만, Python에서는 그렇지 않습니다.이 차이가 왜 발생하며, Python의 '동적 타이핑(Dynami..

3.SW개발/Python 2025.11.10

[Java관점]1편. Python 설치와 구조 이해 – Java 개발자를 위한 입문 가이드

1편. Python 설치와 구조 이해 – Java 개발자를 위한 입문 가이드 📚 목차1. Python 설치 방법과 VSCode 개발환경 설정2. 인터프리터 기반 실행 구조 이해하기3. Java와 Python 실행 방식 및 문법 차이4. Hello World 예제로 비교하는 두 언어✔ 마무리 - Java 개발자에게 Python은 어떤 느낌일까? Python은 간결한 문법과 방대한 라이브러리 생태계를 바탕으로 웹 개발, 데이터 분석, 인공지능 등 다양한 분야에서 폭넓게 사용되고 있습니다.Java에 익숙한 개발자에게는 Python의 자유로운 문법과 실행 방식이 다소 생소할 수 있지만, 기존 지식을 잘 활용하면 훨씬 빠르게 습득할 수 있습니다.이 시리즈는 Java 개발자 관점에서 Python을 구조적으로 비교..

3.SW개발/Python 2025.11.10

[Python요약]7. Python 자료형 정리 : List, Tuple, Dictionary, Set, Sequence, Range

Python 자료형 정리 : List, Tuple, Dictionary, Set, Sequence, Range목차 1. 리스트(List) : 순서 있는 변경 가능한 컬렉션 2. 튜플(Tuple) : 불변의 순서 있는 컬렉션 3. 딕셔너리(Dictionary) : 키-값 쌍의 저장소 4. 집합(Set) : 중복 없는 데이터 모음 5. List vs Tuple vs Set vs Dictionary 비교 6. 시퀀스(Sequence) : 순서가 있는 자료형의 공통 기반 7. range 객체로 숫자 시퀀스 만들기 8. del 키워드로 항목 제거하기 관련 글 링크 1. 리스트(List) : 순서 있는 변경 가능한 컬렉션리스트는 여러 개의 값을 순서대로 저장할 수 있는 가변(mutable) 시퀀스 자료형입니다.파..

3.SW개발/Python 2025.11.05

[Python요약]6. Python 병렬 처리 : GIL, threading, asyncio, multiprocessing

Python 병렬 처리 : GIL, threading, asyncio, multiprocessing 목차 1. 병렬처리란? 2. GIL(Global Interpreter Lock) 개념 3. Threading의 장단점 및 사용 예시 4. Asyncio의 장단점 및 사용 예시 5. Multiprocessing의 장단점 및 사용 예시 6. Threading vs Asyncio vs Multiprocessing 비교 관련 글 링크 1. 병렬처리란?병렬 처리(Parallel Processing)란 여러 작업을 동시에 실행시켜 전체 작업의 처리 속도를 높이는 기법입니다.현대 컴퓨터는 멀티코어 CPU와 고속 I/O 장치를 제공하기 때문에, 이 성능을 제대로 활용하려면 병렬 처리 구조가 필수적입니다.Python에..

3.SW개발/Python 2025.11.05

[Python요약]5. Python 예외(Exception) 처리 : try-except-finally, with

예외 처리는 프로그램의 안정성과 복원력을 높이는 데 핵심적인 역할을 합니다. 하지만 try-except 구문을 잘못 사용하면 오히려 버그를 숨기거나 성능 저하를 유발할 수 있습니다. Python 예외(Exception) 처리 : try-except-finally, with목차 1. 기본구조: try-except-finally 2. 사용자 정의 예외(Custom Exception) 만들기 3. 잘못된 예외 처리 예시와 개선 방법 4. finally 사용법과 예시 5. with 사용법과 예시 : Context Manager 6. 사용자 정의 context manager(with) 만들기: __enter__, __exit__ 7. with vs try-finally 비교 관련 글 링크 1. 기본구조: ..

3.SW개발/Python 2025.11.05

[Python요약]4. Python 함수구조, 함수인자, 람다함수, 클로저, 고차함수, 데코레이터

Python 함수구조, 함수인자, 람다함수, 클로저, 고차함수, 데코레이터 목차 1. 함수 구조 2. 함수의 인자(Arguments) 3. 전역변수와 지역변수 4. 람다함수(Lambda function) 5. 클로저(Closure) 6. 고차 함수(High-Order Function) 7. 함수 데코레이터(Decorator) 관련 글 링크 1. 함수 구조Python에서 함수는 입력값을 받아 로직을 수행하고, 출력값을 반환하는 코드 블록입니다.반복되는 코드를 줄이고, 코드를 모듈화하여 유지보수를 쉽게 해줍니다.▶ 함수 정의 문법def 함수이름(매개변수1, 매개변수2, ...): """선택적으로 함수 설명""" 실행할 코드 return 결과값 ▶ 함수 호출 방법함수이름(인자1, 인자2) ▶..

3.SW개발/Python 2025.11.05

[Python요약]3. Python 클래스 정리: 클래스, 상속, 메서드, 접근제어

Python 클래스의 기본 구조부터 생성자, 메서드, 상속, 소멸자까지 핵심 개념을 정리했습니다.실무에 바로 적용 가능한 예제와 함께 __init__, self, __del__, __enter__, __exit__까지 전체 흐름을 이해할 수 있습니다.Python 클래스 정리: 클래스, 상속, 메서드, 접근제어 목차 1. Python 클래스 기본 구조 2. 생성자(__init__), 소멸자(__del__), self 이해하기 3. 인스턴스 변수 vs 클래스 변수 4. 메서드 종류(인스턴스, 클래스, 정적) 5. 상속과 메서드 오버라이딩 6. 캡슐화와 접근 제어(_와 __ 차이) 7. 특수 메서드(__str__, __repr__, __eq__, __lt__, __len__, __contains__) 8. 컨..

3.SW개발/Python 2025.11.05

[Python요약]2. Python 변수 정리: 지역변수, 전역변수, global, 클래스 변수

Python 변수 정리: 지역변수, 전역변수, global, 클래스 변수목차 1. 지역변수 vs 전역변수 2. global 키워드의 역할과 주의사항 3. nonlocal 키워드 4. 변수처럼 다루는 함수-일급객체로서의 함수 5. 클래스 변수 vs 인스턴스 변수 관련 글 링크 1. 지역변수 vs 전역변수Python에서 변수는 어디에서 선언되었는지에 따라 사용 가능한 범위(Scope)가 결정됩니다.이 범위에 따라 변수는 전역변수(Global Variable)와 지역변수(Local Variable)로 나뉘며, 각각 다음과 같은 특징이 있습니다. ◆ 전역변수(Global Variable)함수 외부에서 선언된 변수입니다.해당 모듈(파일) 전체에서 어디서든 접근할 수 있습니다.다른 함수나 블록에서도 읽기(rea..

3.SW개발/Python 2025.11.05

[Python요약]1. Python 모듈, 패키지, import 개념 정리: __init__.py

Python 프로젝트를 구조화하거나 규모가 커질수록 모듈, 패키지, 그리고 import에 대한 정확한 이해가 필수입니다. 이 글에서는 모듈과 패키지의 개념부터 __init__.py의 역할, import 에러가 발생하는 이유를 예제와 함께 정리합니다.모듈, 패키지, import 개념 정리: __init__.py목차 1. 모듈(Module)과 패키지(Package)란? 2. __init__.py의 의미와 역할 3. import 대상 및 문법 정리 4. 디렉토리 import 구조 예시 관련 글 링크 1. 모듈(Module)과 패키지(Package)란?“모듈(Module)”과 “패키지(Package)” 개념은 Python 코드의 구조화와 재사용성 향상에 핵심적인 역할을 합니다◆ 모듈(Module)Python ..

3.SW개발/Python 2025.11.05
반응형