본문 바로가기

language38

프로미스(Promise), async/await – JavaScript의 비동기 처리 구조 이해하기 들어가며JavaScript는 싱글 스레드 기반 언어이지만, 비동기 처리(asynchronous) 를 통해 논블로킹 방식(메인흐름을 멈추지 않고 계속 진행)의 동작을 구현합니다.이 과정에서 등장하는 핵심 문법이 바로 Promise와 async/await입니다.이 글에서는 JavaScript의 비동기 처리 배경과 함께, Promise 객체의 기본 구조, then/catch, async/await 문법의 차이와 실전 예제를 단계적으로 설명합니다. 1. 비동기 처리란?시간이 오래 걸리는 작업(네트워크 요청, 파일 I/O 등)을 메인 흐름을 막지 않고 처리하는 방식예: setTimeoutconsole.log("1");setTimeout(() => console.log("2"), 1000);console.log(".. 2025. 4. 20.
클로저와 스코프 체인 완전 이해하기 – JavaScript의 함수 세계를 깊이 있게 바라보기 들어가며JavaScript에서 클로저(Closure) 는 고급 주제처럼 보이지만, 실제로는 변수의 유효 범위와 함수의 실행 맥락을 이해하는 데 있어 매우 기본적이고 중요한 개념입니다.함수형 프로그래밍, 콜백, 모듈 패턴, 비동기 처리 등에서 자주 등장하기 때문에 스코프 체인(Scope Chain) 과 함께 클로저를 정확히 이해하는 것이 중요합니다.이 글에서는 클로저와 스코프 체인을 초보자도 이해할 수 있도록 개념 → 예제 → 실무 활용 단계로 풀어봅니다. 1. 스코프(Scope)란 무엇인가?스코프는 변수에 접근할 수 있는 범위입니다.JavaScript는 렉시컬 스코프(Lexical Scope) 를 따릅니다.→ 코드 작성 시점(문법 구조)에 따라 스코프가 결정되며, 함수 안에서 바깥 변수에 접근 가능하지.. 2025. 4. 20.
언어 자바 - 심화 학습 리스트업 ✅ 객체지향 심화 주제접근 제어자와 캡슐화: private, protected, default, public의 차이와 설계 의미this, super, static 키워드: 정적/인스턴스 문맥, 상속 시 오버라이딩 해석 등생성자 오버로딩과 초기화 블록: 클래스 초기화 전략의 핵심equals, hashCode, toString 오버라이딩: 객체 비교와 해시 기반 컬렉션 사용 전 필수 이해✅ 내부 구조/메모리 구조JVM 메모리 구조 이해: 스택, 힙, 메서드 영역 등참조 타입, 객체 생성과 메모리 흐름GC(Garbage Collector) 동작 원리와 옵션✅ 제네릭 & 컬렉션 고급제네릭 타입, 와일드카드, 타입 제한: , 등Comparator, Comparable 차이와 사용법HashMap 내부 구조 & 해.. 2025. 4. 20.
typing 모듈로 타입 힌트 명시하기 (Python 3.5+) 들어가며Python은 동적 타이핑 언어지만, Python 3.5부터 도입된 typing 모듈과 타입 힌트(Type Hint)를 활용하면 코드의 가독성, 정적 분석 도구 활용, IDE 자동완성 등에서 큰 이점을 얻을 수 있습니다.이 글에서는 Python에서 타입 힌트를 명시하는 기본 문법부터, List, Dict, Union, Optional, Callable 등 typing 모듈의 주요 기능을 소개합니다.1. 변수와 함수에 타입 힌트 작성하기name: str = "Tom"age: int = 30함수에 적용def add(x: int, y: int) -> int: return x + y매개변수와 반환값에 타입 힌트를 추가실행 시에는 강제되지 않지만, 도구(Pyright, Mypy)로 정적 검사 가능 2.. 2025. 4. 19.
파일 입출력과 with 문 – Python의 안전한 파일 처리 방식 들어가며Python에서 파일을 읽고 쓰는 일은 매우 자주 발생하는 작업입니다.기본적으로 open() 함수를 사용하여 파일을 다루지만, 이와 함께 자주 사용되는 것이 컨텍스트 매니저(Context Manager) 와 with 문입니다.이 글에서는 Python의 파일 입출력 기본 문법과 함께, with 문을 활용한 안전한 리소스 관리 방법을 설명합니다.1. 파일 열기와 닫기 – 기본 구조f = open("hello.txt", "w")f.write("Hello, world!\n")f.close()open() 함수로 파일을 열고, close()로 반드시 닫아야 함w: 쓰기 모드 (기존 내용 삭제)r: 읽기 모드 (기본값)a: 추가 모드 (기존 내용 유지, 이어쓰기)읽기 예시f = open("hello.txt",.. 2025. 4. 19.
예외 처리 (try-except)와 사용자 정의 예외 – Python 오류 처리 구조 이해하기 들어가며Python은 예외(Exception) 처리를 통해 예상치 못한 오류 상황에서도 프로그램이 안정적으로 동작하도록 도와줍니다.이 글에서는 Python의 try-except 기본 구조부터, finally, raise, 사용자 정의 예외 클래스까지 예제 중심으로 정리합니다.1. 기본 try-except 구조try: result = 10 / 0except ZeroDivisionError: print("0으로 나눌 수 없습니다.")예외 발생 시 except 블록으로 흐름이 이동오류가 발생하지 않으면 except는 실행되지 않음✅ 예외 정보 확인try: x = int("abc")except ValueError as e: print("예외 발생:", e) 2. 다양한 except 처리여러.. 2025. 4. 19.