전체 글 222

📄 MyBatis 개념 정리 – SQL 중심의 ORM 대안

❓ 문제 설명 Spring에서 DB 연동 시, SQL을 직접 제어하고 복잡한 로직을 구현해야 할 경우 JPA보다 MyBatis가 더 적합한 상황이 많음MyBatis는 객체 매핑을 지원하지만, ORM이 아닌 SQL 매퍼 프레임워크임📌 핵심 개념 정리 ✅ MyBatis란? · SQL을 명확하게 직접 작성하고, 결과만 객체로 매핑해주는 SQL 매퍼 프레임워크 · ORM(Object-Relational Mapping)은 아니며, SQL 중심의 설계 구조✅ 주요 구성요소 요소설명Mapper Interface자바에서 호출할 메서드 정의Mapper XML실제 SQL 정의. 쿼리 작성 위치DTO/VOSQL 결과를 매핑할 자바 객체SqlSessionMapper를 가져와 SQL 실행✅ 특징 · SQL을 개발자가 완벽하..

💾 DB_ 2025.07.01

🌀 부가기능 분리 – AOP(관점 지향 프로그래밍)란?

❓ 문제 설명 서비스 로직에 공통적으로 들어가는 코드(예 : 로깅, 트랜잭션 처리, 보안)가 많아질수록 핵심 로직이 흐려지고 유지보수가 어려워짐이를 해결하기 위한 방법으로 AOP(Aspect-Oriented Programming) 도입📌 제한 조건 Spring AOP는 프록시 기반으로 동작 (JDK Proxy / CGLIB)대상은 Spring Bean만 가능메서드 실행 전/후/예외 발생 시 동작하는 구조핵심 로직은 변경하지 않고 횡단 관심사(Cross-Cutting Concern)만 분리🔍 풀이 전략 ✔ AOP의 핵심 용어 정리용어설명Aspect부가기능 모듈 (예: 로그 찍기)JoinPoint실행 가능한 지점 (메서드 호출 등)Advice언제 실행할지 (Before, After, Around 등)Po..

✅ Spring_ 2025.06.30

📘 데이터 타입 비교 – 리스트, 튜플, 딕셔너리는 어떻게 다를까?

✅ 파이썬의 기본 컬렉션 자료형을 예제와 함께 비교 정리 📌 주요 자료형 요약 타입설명수정 가능 여부list순서 있음, 변경 가능✅ 가능 (mutable)tuple순서 있음, 변경 불가❌ 불가능 (immutable)dict키-값 쌍, 순서 있음 (3.7+)✅ 가능 ✅ 예제 비교 # 리스트a = [1, 2, 3]a.append(4)# 튜플b = (1, 2, 3)# b.append(4) ❌ 오류 발생# 딕셔너리c = {"name": "CodeLoge", "age": 29}c["age"] = 30🔍 언제 어떤 걸 쓰나? 상황추천타입순서 있는 데이터, 수정 필요list고정된 데이터, 속도/안정성 중요tuple키로 데이터 빠르게 조회dict💡 설명 · 리스트는 가장 유연하게 사용할 수 있는 기본 구조 · ..

🅿️ Python_ 2025.06.29

📘 변수와 메모리 구조 – 값은 어디에 저장될까?

✅ 파이썬의 변수는 어떻게 작동하며, 메모리에 어떤 방식으로 저장되는지 간단 정리 📌 변수는 ‘이름표’에 가깝다 a = [1, 2, 3]b = ab.append(4)print(a) # [1, 2, 3, 4] ➡️ b는 a가 가리키는 메모리 주소를 함께 참조➡️ 두 변수는 동일한 객체를 공유 ✅ 메모리 구조 요약 요소설명객체실제 데이터가 저장된 메모리 블록변수객체를 참조하는 ‘이름표’ 역할id() 함수객체의 실제 메모리 주소 확인is 연산자두 변수가 같은 객체인지 비교 🔍 예제 x = 10y = 10print(x is y) # True (작은 숫자는 메모리 재사용)x = [1, 2]y = [1, 2]print(x is y) # False (서로 다른 리스트 객체)💡 설명 · 파이썬 변수는 값..

🅿️ Python_ 2025.06.29

📘 파이썬의 실행 구조 – 코드가 어떻게 동작할까?

✅ 파이썬 코드가 메모리에 올라가고, 실행되는 흐름을 간단히 소개 📌 파이썬 실행 흐름 요약 1️⃣ 소스코드 (.py) 작성 2️⃣ 인터프리터(Python VM)가 한 줄씩 읽고 실행 3️⃣ 필요 시 .pyc(바이트코드) 생성 4️⃣ 결과 출력 또는 예외 처리 5️⃣ 모든 과정은 런타임에 동적으로 진행됨✅ 간단한 예제 흐름 def greet(name): return f"Hello, {name}"print(greet("CodeLoge")) ➡️ 실행 구조 · greet 함수가 정의되고 · print()에서 함수 호출 → 문자열 리턴 → 출력💡 설명 · 파이썬은 코드를 읽으면서 바로 실행하는 인터프리터 언어 · Java(Spring)는 코드를 컴파일 후 JVM에서 실행 · 따라서 파이썬은 빠..

🅿️ Python_ 2025.06.27

📘 개념 비교 – 파이썬과 스프링(Spring)은 무엇이 다를까?

✅ 언어와 프레임워크, 본질적 차이와 사용 목적 비교 📌 개요 항목PythonSpring분류프로그래밍 언어자바 기반 프레임워크역할로직 구현의 수단구조적 백엔드 개발의 도구사용 목적범용 스크립트, 데이터 분석, 간단한 웹서버 등기업용 웹 서비스, API 서버 구축 등유연성자유도 높음 (스크립트형)구조화 강함 (MVC 기반)학습 난이도초보자 친화적객체지향 개념 요구실행 환경인터프리터 기반 (Python VM)JVM 기반 (Servlet 컨테이너)✅ 기술 구성 비교 항목PythonSpring웹 프레임워크Flask, DjangoSpring MVC, Spring BootORM 도구SQLAlchemy, Django ORMJPA, MyBatis종속성 관리pip, venvMaven, Gradle테스트unittest,..

🅿️ Python_ 2025.06.26

📘 언어 전환 – 자바 개발자가 파이썬으로 옮겨갈 때 생기는 차이점

✅ Java 개발자가 Python을 배울 때 겪는 주요 차이점, 팁 정리 📌 주요 차이점 요약 항목 Java → Python 전환 시 주의점 타입 선언명시하지 않아도 동작하지만, Type Hint로 가독성 유지 권장예외 처리checked 예외 없음 → try-except 블럭으로 느슨한 처리 가능객체지향클래스 필수 아님 → 함수형 코드도 많음패키지 관리Maven → pip, virtualenv(venv) 사용접근 제어자public/private 없음 (관습상 _, __)인터페이스Duck Typing 기반 (인터페이스보다 관용에 의존)✅ 예시 코드 JavaList names = new ArrayList();for (String name : names) { System.out.println(name..

🅿️ Python_ 2025.06.25

📘 언어 비교 – 파이썬 vs 자바, 무엇이 다를까

✅ 프로그래밍 언어 선택 시 자주 비교되는 파이썬과 자바의 차이점을 정리함📌 비교 기준항목파이썬(Python)자바(Java)작성 스타일동적 타이핑, 간결한 문법정적 타이핑, 명확한 구조실행 방식인터프리터 방식컴파일 후 JVM에서 실행코드 길이짧고 직관적길지만 체계적개발 속도빠름상대적으로 느림성능낮음높음주요 분야데이터 분석, AI, 자동화서버, 안드로이드, 대규모 시스템라이브러리AI/과학 특화안정적이고 다양함커뮤니티트렌디하고 빠름폭넓고 깊음✅ 코드 비교 Pythonfor i in range(5): print("Hello, Python")Javafor (int i = 0; i 💡 설명 파이썬은 빠른 개발과 간결한 문법 덕분에 프로토타입, 데이터 분석, AI 분야에 적합자바는 안정성과 확장성을 기반으..

🅿️ Python_ 2025.06.24

📊 데이터 시각화 – CSV 병합 및 이중 Y축 그래프 (macOS + Python)

❓ 문제 설명 여러 개의 CSV 파일을 병합하여 DataFrame으로 구성한 뒤, 복수 데이터를 하나의 시각화에 표현할 수 있도록 이중 y축을 활용한 시각화 구현📌 제한 조건 • CSV 파일 직접 병합• 인코딩은 기본 UTF-8 사용• matplotlib 시각화 사용• macOS 환경 한글 폰트 적용• 두 가지 시각화 (호흡기 질환자 수 + 미세먼지, 사고 건수 + 강수량)🔍 풀이 전략 • csv.reader로 데이터 불러오기• 병합된 내용을 새로운 CSV로 저장• pandas로 읽어들여 이중 y축 그래프 구성• macOS의 기본 한글 폰트(AppleGothic) 설정• 시각적으로 직관적인 비교를 위한 bar + line 조합 구성✅ 코딩 (macOS 기준 Python)import csvimport ..

🅿️ Python_ 2025.06.23

🔁 Python 기초 문법 – 조건문과 반복문

✅ 개요 분기 처리 → if, elif, else반복 처리 → for, whilePython에서는 들여쓰기로 블록 구분조건문과 반복문은 코드 흐름 제어의 핵심⚖️ 조건문 기본 구조if 조건: 실행문elif 다른 조건: 실행문else: 실행문 • 중괄호 없이 들여쓰기• elif로 조건 분기• else는 생략 가능 • 예시score = 85if score >= 90: print("A")elif score >= 80: print("B")else: print("C")논리 연산자• and, or, not 사용• 여러 조건 결합 가능x = 10if x > 5 and x 🔄 반복문 for문for i in range(5): print(i)• range(n) → 0부터 n-1까지..

🅿️ Python_ 2025.06.22