
프로그래밍을 처음 배울 때 변수는 보통 “값을 담는 상자”라고 설명한다. 입문 단계에서는 이해하기 좋은 설명이다. 하지만 실제 서비스를 개발하기 시작하면 이 정의만으로는 부족하다.

프로그래밍을 처음 배울 때 자료형은 보통 데이터의 종류를 구분하는 개념으로 배운다. 문자열은 문자 데이터를 저장하고, 숫자형은 숫자를 저장하며, 불리언은 참과 거짓을 표현한다. 입문 단계에서는 자료형의 차이를 이해하는 데 유용한 설명이다.

프로그래밍을 처음 배울 때 연산자는 보통 값을 계산하거나 비교하는 기호라고 배운다. \+는 두 값을 더하고, >=는 왼쪽 값이 오른쪽 값보다 크거나 같은지 비교하며, &&는 두 조건이 모두 참인지 확인한다.
프로그래밍을 처음 배울 때 조건문은 보통 조건에 따라 서로 다른 코드를 실행하는 문법이라고 배운다. if (age >= 18) { console.log("성인입니다."); } else { console.log("미성년자입니다."); } 조건이 참이면 if 블록을 실행하고, 거짓이면 else 블록을 실행한다. else if를 사용하면 여러 경우를 ...

프로그래밍을 처음 배울 때 반복문은 보통 같은 코드를 여러 번 실행하기 위한 문법이라고 배운다. 하지만...

배열은 여러 개의 값을 하나의 변수에 저장할 수 있는 자료구조다. 하지만 ...

프로그래밍을 처음 배울 때 객체는 보통 관련된 여러 값을 하나로 묶는 구조라고 배운다. 하지만 실제 서비스를 개발...

프로그래밍을 처음 배울 때 null과 undefined는 보통 “값이 없다”는 의미라고 배운다.selectedCoupon에는 아직 값이 할당되지 않았기 때문에 undefined가 들어 있고, expiresAt에는 개발자가 의도적으로 null을 넣었다.입문 단계에서는 다

프로그래밍을 처음 배울 때 타입 변환은 보통 한 자료형을 다른 자료형으로 바꾸는 것이라고 배운다.문자열 "100"은 숫자 100이 되고, 숫자 100은 문자열 "100"이 된다.타입 변환의 기본 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면

프로그래밍을 처음 배울 때 함수는 보통 여러 코드를 하나로 묶어 필요할 때 다시 실행하는 문법이라고 배운다.조금 더 배우면 입력값을 받아 결과를 반환하는 방법도 배운다.함수의 기본적인 문법과 재사용 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작

프로그래밍을 처음 배울 때 매개변수는 보통 함수에 값을 전달하기 위한 변수라고 배운다.name은 함수가 값을 전달받기 위해 선언한 매개변수이고, "Chris"는 함수를 호출할 때 전달한 인자다.매개변수의 기본적인 문법을 이해하기에는 충분한 설명이다.하지만 실제 서비스를

프로그래밍을 처음 배울 때 반환값은 보통 함수가 계산한 결과를 호출자에게 돌려주는 값이라고 배운다.add 함수는 두 숫자를 더한 뒤 그 결과를 return으로 돌려준다.반환값의 기본적인 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면 반환값을

프로그래밍을 처음 배울 때 스코프는 보통 변수를 사용할 수 있는 코드의 범위라고 배운다.함수 안에서 선언한 message는 함수 밖에서 사용할 수 없다.스코프의 기본적인 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면 스코프를 설계한다는 것은

프로그래밍을 처음 배울 때 모듈은 보통 “코드를 여러 파일로 나누고 필요한 기능을 가져와 사용하는 방법”이라고 배운다.모듈의 기본 문법을 이해하기에는 충분한 설명이다.하나의 파일에 모든 코드를 작성하는 대신 기능별로 파일을 나누고, export와 import를 사용해

프로그래밍을 처음 배울 때 클래스는 보통 “객체를 만들기 위한 틀”이라고 배운다.클래스와 인스턴스의 관계를 이해하기에는 충분한 설명이다.Coupon이라는 틀을 만들고, new를 사용해 실제 쿠폰 객체를 생성한다. 생성된 객체는 클래스에 정의된 속성과 메서드를 가진다.하

프로그래밍을 처음 배울 때 의존성은 보통 “한 코드가 다른 코드를 가져와 사용하는 관계”라고 설명한다.getCoupon 함수는 쿠폰을 조회하기 위해 couponRepository를 사용한다. 따라서 이 함수는 저장소에 의존한다.의존성의 기본적인 관계를 이해하기에는 충분

프로그래밍을 처음 배울 때 추상화는 보통 “복잡한 내부 구현을 감추고 필요한 기능만 보여주는 것”이라고 배운다.호출자는 내부에서 어떤 코드가 실행되는지 모두 알지 않아도 sendCoupon()을 호출할 수 있다.추상화의 기본적인 개념을 이해하기에는 충분한 설명이다.하지

프로그래밍을 처음 배울 때 입력값은 보통 사용자가 키보드로 입력한 값이라고 배운다.사용자가 문자열을 입력하면 프로그램이 그 값을 받아 처리한다.입력과 출력이라는 기본 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면 입력값을 텍스트 필드의 문자

프로그래밍을 처음 배울 때 검증은 보통 사용자가 값을 입력했는지 확인하는 작업으로 설명한다.값이 비어 있으면 오류를 보여주고, 값이 있으면 다음 단계로 진행한다.입력 검증의 기본 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면 빈칸을 확인하는

프로그래밍을 처음 배울 때 상태는 보통 현재 저장되어 있으며 변경될 수 있는 값이라고 설명한다.처음에는 쿠폰 사용 횟수가 3이었지만, 쿠폰을 한 번 사용한 뒤 2로 변경되었다.상태의 기본적인 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면 값

프로그래밍을 처음 배울 때 이벤트는 보통 사용자가 화면에서 어떤 행동을 했을 때 실행되는 함수라고 설명한다.버튼을 클릭하면 콘솔에 "클릭됨"이 출력된다.이벤트의 기본적인 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면 이벤트를 클릭에 반응하는

프론트엔드 개발을 처음 배울 때 컴포넌트는 보통 “화면을 여러 조각으로 나누어 만드는 방법”이라고 설명한다.CouponCard는 쿠폰 하나를 보여주는 화면 조각이다.컴포넌트의 기본 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하기 시작하면 화면을 어디에

프론트엔드 개발을 처음 배울 때 폼은 보통 “사용자의 값을 입력받아 전송하는 요소”라고 배운다.이 설명은 input, form, button이 어떻게 함께 동작하는지 이해하기에 충분하다.하지만 실제 예약 서비스를 개발하면 입력창을 배치하는 것보다 더 많은 판단이 필요하

웹 개발을 처음 배울 때 요청과 응답은 보통 “클라이언트가 서버에 요청을 보내면 서버가 결과를 응답한다”라고 설명한다.클라이언트가 작업 목록을 요청하고 서버가 JSON 데이터를 반환한다. 웹이 어떤 방향으로 통신하는지 이해하기에는 충분한 설명이다.하지만 실제 서비스에서

프로그래밍을 처음 배울 때 API는 보통 “서버에서 데이터를 가져오는 주소”라고 배운다.이 설명은 프론트엔드가 URL로 요청을 보내고 서버가 JSON 데이터를 반환한다는 기본 흐름을 이해하기에 충분하다.하지만 실제 서비스를 개발하면 주소와 데이터 형식만으로는 API를

프로그래밍을 처음 배울 때 HTTP 메서드는 보통 CRUD 작업과 연결해서 배운다.웹 클라이언트가 서버에 어떤 작업을 요청하는지 구분하는 기본 개념을 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하면 단순히 데이터베이스 작업을 고르는 것보다 더 많은 판단이 필

웹 개발을 처음 배울 때 HTTP 상태 코드는 보통 요청의 성공과 실패를 나타내는 숫자라고 배운다.HTTP 통신의 기본 구조를 이해하기에는 충분한 설명이다.하지만 실제 서비스를 개발하면 성공과 실패만으로는 처리 결과를 충분히 설명할 수 없다.결제 요청이 즉시 완료된 것

프로그래밍을 처음 배울 때 비동기는 보통 “작업이 끝날 때까지 기다리지 않고 다음 코드를 실행하는 방식”이라고 배운다.fetch의 응답이 도착하기 전에 다음 로그가 출력된다는 사실을 이해하기에는 충분한 설명이다.하지만 실제 예약 서비스를 개발하면 단순히 기다리는지 기다

프로그래밍을 처음 배울 때 Promise는 보통 “미래에 받을 값을 담는 객체”라고 배운다.결제 작업이 완료되면 payment를 사용할 수 있다는 기본 개념을 이해하기에는 충분한 설명이다.하지만 실제 결제 서비스를 개발하면 미래의 값을 받는 것보다 더 많은 판단이 필요

프로그래밍을 처음 배울 때 에러 처리는 보통 오류가 발생할 수 있는 코드를 try-catch로 감싸는 것이라고 배운다.이 설명은 예외를 포착하고 프로그램이 갑자기 중단되는 것을 막는 기본 원리를 이해하기에 충분하다.하지만 실제 예약 서비스를 개발하면 에러를 붙잡는 것보