열심히 공부하는 중에 계속되는 야근과 출장 때문에 수업을 따라가기 어려워 많은 고심 끝에 기수유예를 하게 되었다. 내가 기수유예를 하리라고는 생각 못했는데 환경이 도와주질 않았다..🥲기수유예를 하고 5기가 다가오길 기다리다 오늘 드디어 5기가 시작되었다. OT는 3기
1) Terminal 실행2) Query 입력3) root(최상위 관리자) 비밀번호 입력4) ^D (control+D) 클릭하여 MySQL 종료매번 MySQL 실행 경로로 이동하기 귀찮을 때 필요한 기능이다.이 기능의 장점은 terminal을 실행하여 아무 위치에서나
1) 데이터베이스(database)는 여러 사용자가 공유하여 사용하는 목적으로 통합 및 관리되는 데이터의 체계화된 집합체이다.데이터베이스는 데이터를 구조화하여 저장하고, 필요한 정보에 빠르게 접근할 수 있도록 지원한다.또한, 데이터베이스는 데이터의 무결성을 유지하고,
DBMS 안에 기본적인 MySQL 시스템 데이터베이스 보유하고 있고, user 정보는 mysql에서 관리하므로 mysql 데이터베이스로 이동(USE)이 필요하다.User는 내부 사용자 (현재 PC에서 접속 가능한 사용자)와 외부 사용자 (외부 PC에서 접속 가능한 사용
이전 글에서 사용자를 처음 생성 시 권한이 없다.특정 데이터베이스에 대해서 특정 user에게 사용 권한이 부여 가능하다.실습환경 만들기에 앞서 2가지 필요 조건은 다음과 같다.1) 데이터베이스2) 해당 데이트베이스에 사용 권한을 부여할 user권한 관리를 실습하기 위한
<span style="color: Table은 데이터베이스 안에서 실제 데이터가 구조화되어 저장되는 형태이다.표 형식으로 되어 있으며, 각 표는 행(row)과 열(column)로 구성된다.각 행은 하나의 레코드 또는 튜플을 나타내고, 각 열은 레코드의 속성을 나
우선 table을 변경하기에 앞서 family라는 이름으로 database를 생성하고 생성한 database 안에 family 라는 table을 생성해보자.<span style="color: <span style="color: \*age를 agee로 일부러
데이터 조작 언어인 SELECT, INSERT, UPDATE 및 DELETE에 대해 알아보자.INSERT는 데이터를 추가하는 명령어다.입력한 column 이름의 순서와 같의 순서가 일치하도록 주의해야한다!!<span style="color: 모든 column값을
family 테이블 정보AUTO_INCREMENT는 데이터베이스에서 테이블의 열에 지정된 경우, 해당 열의 값이 자동으로 1씩 증가하도록 설정된다. 이는 일반적으로 기본 키(primary key) 열에 적용되어 해당 열에 새로운 레코드가 삽입될 때마다 자동으로 증가하는
1. 비교 연산자(Comparison Operators) | 연산자 | 의미 | | :---: | :---- | | A=B | A와 B가 같다 | | A>B | A가 B보다 크다 (초과) | | A=B | A가 B보다 크거나 같다 (이상) | | AB | A가 B보다
여러 조건을 모두 만족해야 True하나의 조건이라도 만족하지 못한다면 False<span style="color: <span style="color: <span style="color: <span style="color: <span style
논리 연산자 중 AND, OR, NOT은 여기를 클릭하면 더 자세히 알 수 있다.<span style="color: 똑같은 결과값을 가져오는 다른 query문은 다음과 같다.<span style="color: <span style="color: 나이가
1. UNION UNION은 여러 개의 SQL문을 합쳐서 하나의 SQL 문으로 만들어주는 방법이다. 한가지 주의할 점은 합칠 여러 개의 SQL문들의 열(column)의 개수가 같아야한다. > UNION 문법 UNION: 중복된 값을 제거하여 알려준다. > UNI
1. JOIN JOIN은 두개 이상의 테이블을 결합한 것이다. 1.1 INNER JOIN INNER JOIN은 교집합으로 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인 방식이다. > INNER JOIN 문법 Example: kdrama에 출연한 cel
1. CONCAT CONCAT은 concatenate(함께 연결하다)의 줄임말로, 여러 문자열을 하나로 합치거나 연결해주는 함수다. > CONCAT 문법 Example 1: Example 2: 2. ALIAS ALIAS는 열(column)이나 테이블 이름에
AWS RDS(Amazon Relational Database Service)는 Amazon Web Service(AWS)에서 제공하는 관계형 데이터베이스 관련 서비스이다. 1. MySQL RDS 생성 1) AWS RDS 페이지 접속 2) 페이지 오른쪽 상단의 콘
1. Jupyter를 이용한 Python 환경설정 1.1 miniconda 설치 여기를 클릭하여 최신 버전의 Miniconda3 macOS Intel x86 64-bit pkg 설치 1.1.1 VSCode 설치(for mac) - homebrew 설치 1) hom
1. VSCode 1.1 VSCode 설치 Python 환경설정을 참고하여 Homebrew 설치 완료한 후 다음 단계로 VSCode(Visual Studio Code)를 설치하는 방법이다. 1) Terminal 실행 2) Query 입력 > VSCode 설치
1. 실습환경 만들기 1.1 Workspace 생성 1) 파일 저장할 root 폴더 만들기 2) sql_ws 폴더를 만들고 그 하위에서 실습하기 3) sql_ws로 이동하여 SQL File 생성하기 4) sql_ws 폴더 하위헤 다음을 실행하기 여기서 두가지
1. Python with MySQL Python으로 MySQL 접속 후 사용하는 방법이다. 1.1 MySQL Driver 설치 및 확인 1) MySQL Driver 설치 Python에서 MySQL을 사용하기 위해서는 먼저 MySQL Driver를 설치 > ds
1. Primary Key(기본 키) > Primary Key 속성: 테이블의 각 레코드를 식별 중복되지 않은 고유값을 포함 NULL 값을 포함할 수 없음 테이블 당 하나의 기본키를 가짐 (column 하나로 지정할 수 있고, 여러개의 column을 하나의 기본키로
1. Aggregate Functions (집계함수) Aggregate Functions (집계함수)는 여러 column 혹은 테이블 전체 column으로부터 하나의 결과값을 반환하는 함수다. | Function | Description | | :
Aggregate Functions (집계함수) 중 COUNT와 SUM은 여기서 자세히 알아볼 수 있다. 5. AVG AVG는 숫자 column의 평균을 계산해주는 함수다. > AVG 문법 Example 1: 평균 폭력 검거 건수를 구하기 확인해보기 ![]
8. GROUP BY GROUP BY는 그룹화하여 데이터를 조회하는 함수이다. > GROUP BY 문법 Example 1: crime_status에서 경찰서 별로 그룹화하여 경찰서 이름을 조회하기 다음과 같이 DISTINCT를 써도 위와 결과값이 같다. DIST
1. Scalar Functions Scalar Functions는 입력값을 기준으로 단일 값을 반환하는 함수이다. | Function | Description | | :-------- | :-----------| | UCASE | 영문을 대문자로 변환하는 함수
1. Subquery Subquery란? 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL 문을 뜻한다. 하나의 SQL문은 메인 query라고 하며, 이 안에 포함되어 있는 SQL문을 subquery라고 한다. 메인 query가 subquery를 포함하는 종속적
1. Background 프로젝트 개발 과정에서 중요한 몇 가지 요구사항이 있다. 하나의 프로젝트를 여러 명의 개발자가 동시에 개발을 할 수 있어야 한다. 개발 중 문제가 발생하면, 문제의 전후 상황을 파악하여 특정 시점의 버전으로 돌아갈 수 있어야 한다. 각 버전
1. 버전 관리 시스템의 데이터 저장 방식 버전 관리 시스템(VCS)은 파일의 변경 사항(giff)을 시간순으로 추적하여 관리한다. 2. Git의 데이터 저장 방식 Git은 파일을 저장할 때 파일의 변경사항이 아니라 해당 시점의 스냅샷을 저장한다. 이는 파일이 변
1. Git 기반 서비스 1.1 GitHub GitHub는 Git을 호스팅해주는 웹 서비스 (클라우드 버전)로, 협업을 위한 다양한 기능을 제공한다. GitHub는 사용자들이 오픈 소스 프로젝트를 공유하고 관리할 수 있는 플랫폼으로, 개발자들 간의 소통과 협업을 촉진
1. Git 설정 기본 문법 1.1 Git 설정 범위 1) System Config System Config은 시스템의 모든 사용자와 모든 저장소에 적용 2) Global Config Global Config은 시스템의 특정 사용자에게 적용 3) Local Co
1. Git 저장소 Git Repository (저장소)는 Git으로 관리하는 프로젝트의 저장소를 의미한다. 이 저장소에는 파일과 directory가 포함될 수 있고, Git을 사용하여 버전 관리를 시작할 수 있다. 1.1 저장소 유형 저장소는 local 저장소와 r
1. Git 기본사용 문법 1.1 Git Status Git Status 명령어는 Working Directory와 Staging Area의 상태를 표시한다. 보통 파일의 상태를 확인할 때 사용한다. 1.2 Git Add Git Add 명령어는 Working D
1. Git Log 문법 버전의 이력 목록을 볼 수 있는 Git Log 문법이다. 1.1 Git Log - 시간순 Commit 이력 git log 명령을 사용하면 저장소의 commit 이력을 시간순으로 볼 수 있다. 각 commit은 다음과 같은 정보를 포함한다.
1. Remote Repository (원격 저장소) Remote 저장소는 Local 저장소와 연결되어 있어서 Local 저장소의 변경 사항을 공유 Push하고 동기화 Pull (또는 Fetch)하는 데 사용된다. 내가 Local 저장소에서 작업한 내용을 공유하는거
1. Git Checkout Git checkout은 특정 버전으로 이동하는걸 뜻한다. 이 명령은 작업 디렉토리를 지정된 commit이나 branch의 상태로 작업 폴더가 변경이 된다. 해당 시점의 코드 및 상태를 확인하거나 작업을 시작할 수 있다. 1.1 Co
1. Git Merge Git Merge는 현재 위치한 버전에 다른 버전을 병합하는 작업이다. Branch를 병합할때 사용한다. Push, Pull 할때 병합이 일어난다. 1.1 Main Branch에서 Dev Branch를 Merge Merge Commit 결과
1. Git Tag Git Tag는 특정 시점의 코드나 버전에 이름표(tag)를 달아주는 데 사용한다. 이를 통해 특정 버전을 식별하고 관리할 수 있다. 예를 들어, 소프트웨어의 출시 버전을 태그로 표시하거나 중요한 마일스톰을 기록할 때 사용된다. 태그를 사용하면 나
1. README README 파일은 프로젝트에 대한 핵심 정보를 담고 있는 매우 중요한 파일이다. 이 파일은 GitHub뿐만 아니라 다른 코드 호스팅 플랫폼이나 소프트웨어 프로젝트에서도 일반적으로 사용된다. README의 주요 내용: 프로젝트 설명: 프로젝트의 목
1. Python 파이썬(Python)이란? 1991년 네덜란드 개발자 귀도 반 로섬이 만들었다. 처음 소규모 프로젝트에 사용하기 위해서 만들었다. 이후 주변 사람들로부터 인기를 얻어 완성도가 높은 파이썬이 탄생했다. 구글은 자바와 함께 파이썬을 메인 언어로 사용하고
1. 컴파일러와 인터프리터 1.1 컴파일러 컴퓨터는 기계어인 바이너리 코드 (예: 1001 0011)만 읽을 수 있다. 인간이 쓴 언어(소스 파일)를 기계어로 바꿔줘야할 장치가 있어야하는데 그게 바로 컴파일러다. 소스 파일을 컴파일에게 주면 기계어로 변환해준다.
1. PyCharm Python IDLE Shell과 코드 편집기는 전문적으로 프로그램을 만들기에는 부족하다. PyCharm은 Python IDLE Shell과 코드 편집기가 가지고 있는 불편함들을 해결하고 좀 더 전문적으로 코딩을 할 수 있게끔 만들어진 코드 편집
1. 데이터와 메모리 데이터는 관찰이나 측정을 통해 수집된 데이터로 수집, 가공 등을 거쳐 정보로 전환될 수 있다. 숫자: 1, 2, 3, 4, 5 문자: '가', '나', '다', 'a', 'b', 'c', ':)' 이미지, 음원, 영상 등 컴퓨터에서 데이터를
1. 변수 변수는 데이터가 저장되어 있는 메모리 공간이다. 그 변수에 접근하기 위해서는 메모리 주소를 사용해야 하는데 메모리 주소를 우리 스스로가 알기 힘들기 때문에 이 대신에 이름표를 붙여주는데 그 이름표를 변수명이라고 한다. 1.1 변수 선언 및 초기화 변수
1. 자료형 자료형(Data type)은 효율적인 메모리 사용을 위해서 데이터를 정수형, 실수형, 문자(열)형, 논리형으로 구분한 것이다. 1) 정수: int (integer의 약자) num = 15 outcome = 95 2) 실수: float height =
1. 자료형 변환 자료형 변환은 데이터타입을 변환하는 것으로 Python에서 제공하는 함수를 이용한다. 1.1 데이터를 문자(열)로 형 변환 데이터를 문자(열)로 형 변환을 하면 str() 함수를 사용하면 된다. 1) 정수 ➞ 문자(열) num = 10 pri
1. 데이터 출력 1.1 print() 함수를 이용한 기본적인 데이터 출력 1.2 콤마(,)를 이용한 데이터 연속 출력 Python에서는 알아서 자동 줄바꿈(자동 개행)을 해준다. 사실 실제 코드는 이런 식으로 되어 있다. 따라서, 줄바꿈없이 그대로 이어지게
1. format() 함수 1.1 format() 함수를 이용한 데이터 출력 format 함수의 값을 전달해주는 방식이다. format 함수의 값이 두개인 경우 순차적으로 전달해주는 방식이다. 1.2 format() 함수를 인덱스를 이용한 출력 format()
1. 연산자 등호 (=, + 등)을 연산자라고 한다. 연산의 대상자를 피연산자라고 한다. >연산자 종류 산술 연산자: +, -, , /, %, //, * 할당 연산자: =, +=, -=, *=, /=, %=, //= 비교 연산자: >, >=, <, <=, ==,
1. 비교 연산자 1.1 숫자 비교 위의 결과를 보며 연산 결과는 True 또는 False로 데이터타입이 bool이다. Q1. 숫자 두 개를 입력한 후 비교 연산 결과를 출력하는 코드 작성하기 Q2. 자동차의 전장과 전폭을 입력하면 자동차 기계 세차 가능 여부를
1. 논리 연산자 논리 연산자는 피연산자의 논리(True, False)를 이용한 연산이다. > 논리 연산자 종류 and or not 1.1 and 연산 A and B: A와 B 모두 True인 경우만 결과값은 True이다. 1.2 or 연산 A or B: A
1. Operator 모듈 모듈은 누군가 이미 만들어 놓은 훌륭한 기능이다. 수학 연산 관련 모듈 난수 관련 모듈 연산자 관련 모듈 1.1 산술 연산자 관련 함수 | 산술 연산자 | operator 함수 | | :-: | :-: | | + | operator.a
1. 조건식 조건식은 어떤 조건에 따라 실행이 분기되는 식이다. 1.1 A if 조건식 else B A if 조건식 else B ➞ 조건식의 결과가 Ture이면, A 실행, 그렇지 않으면 B 실행 Q1. 적설량을 입력하고 적설량이 30mm 이상이면 대설 경보를
1. with~as문 with~as문을 이용하면 파일 닫기(close)를 생략할 수 있다. with~as문을 사용하면 파일을 열고 작업을 수행한 후에 파일을 자동으로 닫아준다. 이것은 파일 관리를 보다 효율적으로 처리할 수 있도록 도와준다. > 여기서 open(
1. writelines() writelines() 함수는 리스트(list) 또는 튜플(tuple) 데이터를 파일에 쓰기 위한 함수이다. 이 함수는 주로 여러 줄에 걸쳐 데이터를 파일에 작성할 때 유용하다. 위의 코드는 'example.txt'라는 파일을 열고,
1. readlines() readlines() 함수는 파일의 모든 데이터를 읽어서 각 줄을 리스트 형태로 반환한다. 2. readline() readline() 함수는 파일에서 한 줄을 읽어서 문자열로 반환한다. Example: 파일에
Q1. Data Read하기 데이터를 읽기 위해서는 먼저 해당 데이터를 불러와야한다. 보통 데이터를 읽어오기 위해 pandas 라이브러리를 사용한다. > 구글 Colab에서 코드 셀을 실행시키려면 셀 왼쪽의 실행 버튼을 클릭하거나, 단축키인 Shift+Enter를
Q20. 데이터 로드하기 Q21. quantity column 값이 3인 데이터를 추출하여 첫 5행 출력하기 df 값을 가지고 올건데 df['quantity']==3을 만족하는 df을 가져오겠다. >Python에서는 같다가 =가 아닌 == 들어가야한다. Q22.
Q44. 데이터를 로드하고 상위 5개 컬럼 출력하기 Q45. 데이터의 각 hostname의 빈도수를 구하고 hostname으로 정렬하여 상위 5개 출력하기 > size() 함수는 데이터프레임의 전체 요소 개수를 세며, NULL 값이 있어도 모두 포함하여 센다. co
Q56. 데이터를 로드하고 데이터 행과 열의 갯수 출력하기 df.shape은 dataframe의 행과 열의 개수를 tuple 형태로 반환하는 속성(attribute)이다. 반환되는 튜플은 (행의 개수, 열의 개수) 형태로 구성됩니다. (10127, 23) #해설:
Time Series는 시계형 데이터를 말한다. Q64. 데이터를 로드하고 각 열의 데이터 타입 파악하기 Q65. YrMoDy을 pandas에서 인식할 수 있는 datetime64타입으로 변경하기 to_datetime 명령어를 통해서 datetime64타입으로 변
Q80. Indicator을 삭제하고 First Tooltip 컬럼에서 신뢰구간에 해당하는 표현 지우기 Q84. 년도가 2015년 이상, Dim1이 Both sexes인 케이스만 추출하기 Q85. 84번 문제에서 추출한 데이터로 아래와 같이 나라에 따른 년도별 사망
Q91. df1과 df2 데이터를 하나의 데이터 프레임으로 합하기 axis=0에서 axis는 축으로 0은 행, 1은 열을 뜻한다. Q92. df3과 df4 데이터를 하나의 데이터 프레임으로 합치기. 둘다 포함하고 있는 년도에 대해서만 고려하기  이름을 적어주고 리시트 형식(대괄호로 묶어서 나열)으로 나열하기 Q107. 컬럼의 순서를 name, type, hp, evolut
matplotlib.pyplot은 파이썬에서 데이터 시각화를 위해 널리 사용되는 라이브러리인 Matplotlib의 하위 모듈이다. plt라는 별칭을 사용하여 라이브러리에 접근할 수 있다. Matplotlib은 다양한 종류의 그래프를 생성하고 스타일을 지정하는 기능을 제
Q130. Column명을 아래와 같이 변경하기 컬럼을 변경할 때는 df.colums 명령어를 쓰면 된다. Q131. Column별 NA값이 존재하는지 확인하기 Q132. 'petal_length'의 10번째부터 29번째 행의 값을 NaN으로 변환하기. Q133
1. 데이터 핸들링 1.1 Data 형태 확인 ` 1.2 Unique한 Value별 카운팅 1.3 DataFrame 특정값 치환 1.4 Null 값 이전 값으로 채워넣기 1.5 DataFrame 특정 column만 가져오기 1.6 조건에 맞는 DataFra
1. 약수 약수는 어떤 수를 나누어 떨어지게 하는 수이다. 예시: 2의 약수는 1과 2 2 / 1 = 2 2 / 2 = 1 3의 약수는 1과 3 3 / 1 = 3 3 / 3 = 1 1.1 Python을 이용한 약수 Example 1: Python을 이용해서 사용
1. 소인수분해 1.1 소인수 소인수는 소수+인수로 인수(또는 약수) 중에서 소수인 숫자라고 한다. 20의 소인수: 20의 약수(인수)는 1, 2, 4, 5, 10, 20 20의 소수는 2, 5 20의 소인수는 2, 5 12의 소인수: 12의 약수는 1, 2,
1. 공약수 공약수는 두 개 이상의 수에서 공통된 약수이다. 12의 약수: (1, 2, 3, 4, 6, 12) 20의 약수: (1, 2, 4, 5, 10, 20) 12와 20의 공약수: (1, 2, 4) Example 1: 36, 60의 공약수 36의 약수:
최소공배수는 공통된 배수 중에서 가장 작은 수이다. 1. 공배수 공배수는 두 개 이상의 수에서 공통된 배수이다. 3의 배수: (3, 6, 9, 12, 15, 18, 21, 24, 27, 30, ...) 5의 배수: (5, 10, 15, 20, 25, 30, 3
1. 진법 진법은 특정 숫자 몇 개를 사용하여 수를 표시하는 방법이다. >2진법: 0, 1 (2개 사용) 8진법: 0, 1, 2, 3, 4, 5, 6, 7 (8개 사용) 10진법: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (10개 사용) 16진법: 0,
1. 수열 수열은 규칙성을 가지고 나열되어 있는 수들을 말한다. 2씩 증가하기에 등차수열이라고 한다. 1.1 항들의 합과 항의 관계 특정항은 특정항까지의 합에서 특정항 이전의 항까지의 합과 같다. 수혈 합은 모든 항들을 더한거를 말한다. Q1. 다음 수열의
1. 수열 수열은 규칙성을 가지고 나열되어 있는 수들을 말한다. 2씩 증가하기에 등차 수열이라고 한다. 1.1 항들의 합과 항의 관계 특정항은 특정항까지의 합에서 특정항 이전의 항까지의 합과 같다. 수혈 합은 모든 항들을 더한거를 말한다. Q1. 다음 수열의
1. 등비 수열 등비 수열은 연속된 두 항의 비가 일정한 수열을 말한다. 1.1 등비 수열과 일반항 등비 수열 규칙성을 이용해서 일반항을 구할 수 있다. 1.2 등비 중항 등비 중항은 연속된 세 항에서 가운데 항을 말한다. 1.3 등비 수열의 합 규칙성을
1. 시그마 시그마(Σ)는 수열의 합을 나타내는 기호이다. 등차 수열 또는 등비 수열이라는 수열이 있을 때 그 수열의 합을 나타내면 시그마를 쓸 수 있다. Example 1: 시그마를 이용해서 나타낸 수열의 합을 Python 프로그램으로 만들기 Example 2
1. 계차 수열 계차 수열은 어떤 수열의 안접하는 두 항의 차로 이루어진 또 다른 수열이다. 1.1 계차 수열과 일반항 계차 수열을 이용해서 수열 an의 일반항을 구할 수 있다. Example: 계차 수열을 이용해서 수열 an의 일반항 구하기 2. Python
1. 피보나치 수열 피보나치 수열은 세 번째 항이 두 번째 항과 첫 번째 항을 더한 합이다. 피보나치 수열에서 하나 하나의 값들은 피보나치 수라고 한다. Example: Python을 이용해서 피보나치 수를 계산하는 프로그램 만들기
1. 팩토리얼 팩토리얼은 1부터 양의 정수 n까지의 정수를 모두 곱한 것을 의미한다. > 0! ➞ 1 = 1 ➞ 0!은 1로 약속한다. 1! ➞ 1 = 1 2! ➞ 1 x 2 = 2 3! ➞ 1 x 2 x 3 = 6 4! ➞ 1 x 2 x 3 x 4 = 24 5!
1. 군 수열 군 수열은 여러 개의 항을 묶었을 때 규칙성을 가지는 수열이다. Example: 다음 수열의 40번째 항의 값 구하기 1.1 Python을 이용한 군 수열 Example 1: 다음 수열을 보고 n번째 항의 값을 출력하는 프로그램 만들기 1, 1,
1. 순열 순열은 n개에서 r개를 택하여 순서있게 나열하는 경우의 수를 말한다. n: 모든 항의 개수 P: permutation의 약자 r: 몇 개 1.1 순열과 팩토리얼 순열은 팩토리얼(계승)을 이용해서 나타낼 수 있다. Example 1: 다음 순열의 값
1. 조합 조합은 n개에서 r개를 택하는 경우의 수이다. Example: 4개에서 3개를 택하는 경우의 수 1) 순열: 24가지 경우의 수 3) 조합: 4가지 경우의 수 1.1 순열과 조합 ![](https://velog.velcdn.com/images/ye
1. 확률 확률은 모든 사건에서 특정 사건이 일어날 수 있는 수를 나타낸 것이다. 예시 1: 동전 모든 사건: 앞, 뒤 ➞ 2가지 경우 특정 사건: 앞 ➞ 1가지 경우, 뒤 ➞ 1가지 경우 확률: 앞 ➞ 1/2, 뒤 ➞ 1/2 예시 2: 주사위 모든 사건: 1,