728x90

분류 전체보기 111

JS_CH05_BINDING

BINDING (this 바인딩)1. 바인딩(this)의 필요성this는 "함수가 실행될 때 그 함수가 참조해야 할 객체(실행 컨텍스트)"를 가리킵니다.동일한 함수가 여러 객체에서 재사용될 때 어떤 객체의 상태(프로퍼티)에 접근할지 결정하기 위해 필요합니다.이벤트, 콜백, 비동기 코드 등 호출 시점이 달라지는 환경에서 함수 내부에서 올바른 객체에 접근하도록 보장합니다.2. 바인딩 규칙(우선순위)우선순위가 높은 쪽이 적용됩니다.new (생성자 호출) — 새로 생성된 인스턴스가 this명시적 바인딩 — call / apply / bind로 지정한 객체암시적(메서드) 바인딩 — 객체.메서드() 호출 시 그 객체기본(전역/함수) 호출 — 일반 함수 호출: non-strict에서는 전역 객체(window/glob..

MZCBootCamp 2025.09.07

JS_CH04_Function

CH04_Function함수 개요함수는 특정 작업을 수행하는 독립적인 코드 블록입니다.자바스크립트에서 함수는 일급 객체(First-class citizen)입니다:함수를 변수에 할당할 수 있다.함수를 매개변수로 전달할 수 있다.함수를 반환값으로 반환할 수 있다.함수의 종류 및 예제함수 선언문 (Function Declaration)javascriptfunction sum(a, b) {return a + b;}console.log(sum(2, 3)); // 5함수 표현식 (Function Expression) / 익명 함수javascriptconst multiply = function(a, b) {return a * b;};console.log(multiply(2, 3)); // 6화살표 함수 (Arrow..

MZCBootCamp 2025.09.06

JS_03_OPERATOR

CH03_Operator산술 연산자: +, -, , /, %, *(거듭제곱)할당 연산자: =, +=, -=, =, /=, %=, *=비교 연산자:== (느슨한 동등, 타입 강제 변환 후 비교) — 예외와 혼동의 원인이므로 사용에 주의=== (엄격한 동등, 타입까지 비교) — 권장!=, !==, >, >=, 논리 연산자: &&, ||, ! (단축 평가(short-circuit) 동작)삼항 연산자: condition ? exprIfTrue : exprIfFalse비트 연산자: &, |, ^, ~, >, >>>null 병합 연산자: ?? (왼쪽 값이 null 또는 undefined면 오른쪽 반환)옵셔널 체이닝: obj?.prop (안전하게 접근)예제 (연산자)javascript// JavaScriptconst..

MZCBootCamp 2025.09.06

JS_CH02_Variable

CH02_Variable변수 선언 방법 및 타입자바스크립트는 동적 타이핑을 사용합니다(변수 선언 시 타입을 명시하지 않음).기본 타입(원시 타입, primitive)number (정수/부동소수 구분 없음, IEEE-754 double)stringboolean (falsy 값: 0, '', null, undefined, NaN, -0 등)undefinednullsymbol (ES6)bigint (ES2020, 큰 정수 처리)참조 타입(객체)object, array, function, class 등변수 선언 키워드와 유효 범위var함수 레벨 스코프(function scope)호이스팅 시 선언과 동시에 undefined로 초기화되어 선언 이전에도 접근 가능(의도하지 않은 동작 유의)let블록 레벨 스코프(bl..

MZCBootCamp 2025.09.06

JS_CH01_AboutJavaScript

CH01_AboutJavaScript자바스크립트란?동적인 웹 페이지를 위해 만들어진 객체 기반의 스크립트 언어입니다.원래는 웹 브라우저에서 주로 사용되었지만, Node.js의 등장으로 서버 및 다양한 환경에서 사용되는 범용 언어가 되었습니다.스크립트 언어란?전통적으로는 인터프리터 방식으로 동작하지만, 현대 런타임은 JIT(Just-In-Time) 컴파일을 병행하여 성능을 높입니다 (예: V8, PyPy)."사전 컴파일 없이 바로 실행"된다는 표현은 개발자가 별도의 빌드 단계에서 플랫폼용 네이티브 바이너리를 만드는 과정이 없다는 의미입니다. 런타임에서 바이트코드나 머신 코드로의 동적 변환이 발생할 수 있습니다.JS의 동작 원리 (개요)파싱: 소스 코드를 파싱하여 AST(Abstract Syntax Tree..

MZCBootCamp 2025.09.06

Spring Hibernate

실습 코드 : https://github.com/DDINGJOO/Spring5PlayGround Spring Hibernate모듈 개요와 코드 살펴보기Hibernate 구성 정보 총정리엔티티 모델: Singer/Album/Instrument와 관계 매핑Singer를 AbstractEntity로 리팩토링하기: 상속 전략과 실전 팁어노테이션을 필드 vs. 메소드 어디에 둘 것인가: 선택 기준과 주의점Hibernate 세션과 영속성 컨텍스트 내부 매커니즘트랜잭션, 플러시 모드, 지연 로딩, 캐시 최적화 전략DAO/리포지토리 계층 설계와 예외 처리, NamedQuery 활용테스트 데이터와 쿼리 튜닝 팁실전 운영 체크리스트와 베스트 프랙티스부록: 코드 스니펫 모음, 참고 자료1. 모듈 개요와 코드 살펴보기본 저장..

SpringStudy 2025.08.26

JDBC 최종

git link : https://github.com/DDINGJOO/Spring5PlayGround.git1. 왜 순수 JDBC를 먼저 알아야 할까?Spring에서 JPA/Hibernate를 사용하면 데이터 접근이 매우 편리해 보입니다. 하지만 JDBC를 모르고 ORM을 사용하면, 실제로 데이터베이스와 어떻게 통신하는지, 커넥션/트랜잭션/예외가 어떤 레벨에서 발생하는지, 성능 병목은 어디서 생기는지 등을 파악하기 어렵습니다. 순수 JDBC를 먼저 학습하면 다음과 같은 장점이 있습니다:DB 드라이버, 커넥션, PreparedStatement, ResultSet의 흐름을 명확히 이해자원 정리(닫기), 예외 처리, 트랜잭션 경계의 중요성 체득SQL과 파라미터 바인딩(? vs :name)의 차이와 위험 요소 ..

SpringStudy 2025.08.21

JDBC 학습 정리(1)

실습 코드 : https://github.com/DDINGJOO/Spring5PlayGround.gitJDBC 학습 정리:목차0) 데이터 모델 소개 (Singer/Album)1) 순수 JDBC로 시작하기 (PlainJdbcDemo, PlainSingerDao)2) 애노테이션 기반 설정과 내장 DB (H2) 활용 (ch6_03, ch6_04)3) 스프링의 예외 변환 (SQLErrorCodeSQLExceptionTranslator)4) JdbcTemplate: 위치 기반 파라미터("?")5) NamedParameterJdbcTemplate: 네임드 파라미터(":name")6) 스프링 부트 JPA Native Query에서 ":name" 권장7) 마무리 정리 및 팁0) 데이터 모델 소개파일: ch6_02_Da..

SpringStudy 2025.08.21

Pointcut 문법 정리

Spring AOP 포인트컷 문법 정리개요포인트컷(Pointcut)은 Advice가 적용될 조인 포인트를 선별하는 기준을 정의합니다. Spring AOP에서는 다양한 방식으로 포인트컷을 정의할 수 있으며, 각각의 특징과 사용법을 이해하는 것이 중요합니다.1. 정적 메서드 매처 포인트컷 (StaticMethodMatcherPointcut)개념컴파일 타임에 메서드 이름과 클래스 타입만으로 매칭을 결정하는 포인트컷입니다.문법 구조public class CustomStaticPointcut extends StaticMethodMatcherPointcut { @Override public boolean matches(Method method, Class targetClass) { // 메서..

SpringStudy 2025.08.20

SpringAop -final

실습 코드 : https://github.com/DDINGJOO/Spring5PlayGroundSpring AOP 개요AOP(Aspect-Oriented Programming)란?관점 지향 프로그래밍(AOP)은 프로그램의 핵심 기능과 부가 기능을 분리하여 관점별로 모듈화하는 프로그래밍 패러다임입니다.Spring AOP의 특징프록시 기반: 런타임에 프록시 객체를 생성하여 AOP 기능 제공메서드 레벨 적용: 메서드 호출 시점에서만 AOP 적용 가능스프링 컨테이너 연동: 스프링 IoC 컨테이너와 완전히 통합핵심 개념1. Aspect (관점)횡단 관심사를 모듈화한 것으로, Advice와 Pointcut을 결합한 개념입니다.2. Advice (어드바이스)특정 조인포인트에서 실행되는 코드를 말합니다.Advice 타..

SpringStudy 2025.08.20
728x90