[DDL]

  • CREATE : DB, Table, View, Index 등 생성
  • ALTER : Table의 속성(Attribute), 도메인(Domain), 제약조건(Constraint) 등 변경
  • DROP : DB, Table, View, Index 등 삭제
  • TRUNCATE : Table의 모든 행 삭제
# CREATE 문법
CREATE TABLE 테이블명 (
	컬럼명1 자료형 [DEFAULT 기본값][제약조건]
    ...
    컬럼명N 자료형 [DEFAULT 기본값][제약조건]
);

# ALTER 문법, FK = FOREIGN KEY(외래키)
# 컬럼 추가 SQL 문법
ALTER TABLE 테이블명 ADD CONSTRAINT [제약조건명] FK ([컬럼명]) 
	REFERENCES [참조 대상 테이블명]([참조 대상 컬럼명])
    [외래키 옵션];
    
# 외래키(FK, FOREIGN KEY) 추가 문법
1) ON UPDATE/DELETE CASCADE : 부모 데이터 삭제 시 자식 데이터도 삭제
2) ON UPDATE/DELETE SET NULL : 부모 데이터 삭제 시 자식 데이터는 NULL로 수정
3) ON UPDATE/DELETE SET DEFAULT : 부모 데이터 삭제 시 자식 데이터는 DEFAULT값 수정
4) ON UPDATE/DELETE RESTRICT : 자식 테이블이 참조하고 있는 경우 데이터 삭제 불가
5) ON UPDATE/DELETE NO ACTION : RESTRICT와 동일하며 옵션 미지정 시 자동 선택됨

# DROP(DB / TABLE) + IF EXISTS
DROP DB DB명;
DROP DB 테이블명;

DROP DB IF EXISTS DB명;
DROP TABLE IF EXISTS 테이블명;

# TRUNCATE 문법
TRUNCATE TABLE 테이블명;

[DML]

  • SELECT : Table, View의 특정 조건 데이터 조회
  • INSERT : Table에 특정 조건의 데이터 입력
  • UPDATE : Table의 특정 조건 데이터 수정
  • MERGE : Table에 특정 조건에 따라 데이터를 입력(INSERT)하거나 수정(UPDATE)
  • DELETE : Table의 특정 조건의 데이터 삭제
# SELECT 문법
SELECT (필드명 | *) FROM 테이블명 [WHERE 조건문];

중복값 제거(DISTINCT) 
SELECT DISTINCT 필드명 FROM 테이블명; 

오름차순 정렬 (ORDER BY) : 
SELECT (필드명 | *) FROM 테이블명 ORDER BY 필드명;

내림차순 정렬 (ORDER BY ... DESC) : 
SELECT (필드명 | *) FROM 테이블명 ORDER BY 필드명 DESC;

혼합 정렬 (오름, 내림) : 
SELECT (필드명 | *) FROM 테이블명 ORDER BY 필드명1 DESC, 필드명2 ASC;

별칭 이용 처리 
SELECT 필드명 AS 별칭 FROM 테이블명; -- 해당 필드에 새로운 별칭 부여
SELECT 필드면 FROM 테이블명 AS 별칭; -- 해당 테이블에 새로운 별칭 부여

# INSERT 문법 컬럼명과 값의 위치는 동일하게 입력하도록한다.
INSERT INTO 테이블명 [(컬럼명1, ... , 컬럼명N)] VALUES (값1, ... , 값N);

EX)
INSERT INTO GreatMen(ID, Name, Date, RoomNum) 
VALUES (1, '홍길동', '2022-02-09', 1601);

생략할 수 있는 필드
1. NULL을 저장할 수 있도록 설정된 필드
2. DEFAULT 제약 조건이 설정된 필드
3. AUTO_INCREMENT 키워드가 서정된 필드


# UPDATE 문법
UPDATE 테이블명 SET 수정컬럼명1 = 값1, ... 수정컬러명N = 값N [WHERE 조건문];

쉽게 보기
UPDATE 테이블명
SET 필드명1 = 값1, ... 필드명N = 값N
WHERE 필드명 = 값


# DELETE 문법
DELETE FROM 테이블명 [WHERE 조건식];

테이블 레코드 삭제
DELETE FROM 테이블명 WHERE 필드명 = 값;

테이블의 모든 데이터 삭제
DELETE FROM 테이블명;


# Merge 문법
MERGE INTO 메인테이블명 USING 서브테이블명 ON (조건)
	WHEN MATCHED THEN
    	UPDATE SET 컬럼1 = 값1, ... 컬럼N = 값N
    WHEN NOT MATCHED THEN
    	INSERT (컬럼1, ... 컬럼N) VALUES (값1, ... , 값N)

[DCL]

  • GRANT : 특정 사용자에게 특정 객체에 대한 특정 작업 수행 권한 부여
  • REVOKE : 특정 사용자에게 부여된 권한 회수 
# GRANT 문법
GRANT 권한 ON 객체명 TO 사용자 (사용자명 | PUBLIC)

권한 : SELECT, INSERT, DELETE, UPDATE, REFERENCES 중 한 개 이상

EX)
-- STUDENT에게 SCORE 테이블에 대해 SELECT 연산 수행할 수 있는 권한 부여.
GRANT SELECT ON SCORE TO STUDENT

-- 모두에게 권한 부여 (PUBLIC)
GRANT SELECT ON SCORE TO PUBLIC

-- A에게 모든 권한 부여 (ALL PRIVILEGES)
GRANT ALL PRVILEGES ON SCORE TO A

-- 권한 전달 가능 옵션
GRANT SELECT ON SCORE TO A WITH GRANT OPTION


# REVOKE 문법
-- A에게 부여된 SCORE 테이블에 대한 SELECT 권한 회수
REVOKE SELECT ON SCORE FROM A

'SQL' 카테고리의 다른 글

DCL  (0) 2022.03.10
DML  (0) 2022.03.07
DDL  (0) 2022.02.25

1. 데이터베이스

(1) 데이터란?

관찰이나 측정으로 수집한 사실을 수치 또는 문자 형태로 표현한 최소 단위의 값을 의미한다.

(+) DIKW 피라미드

IT위키_DIKW 피라미드

  • Data : 문자, 숫자 등으로 표현한 체계화 되지 않은 최소 단위의 값을 의미한다.
  • Information : 데이터를 특정 기준으로 정리 및 가공하여 의미를 부여한다.
  • Knowledge : 정보를 체계화 및 구조화하여 규칙성과 경향 등을 표현한다.
  • Wisdom : 지식을 정확하게 인식하고 판단하여 가치관으로 표현한다.

(1) 데이터베이스의 정의

  • 통합 데이터 (Integrated Data) : 하나의 주제에 따라 중복을 최소화한 데이터의 집합
  • 저장 데이터 (Stored Data) : 언제든지 필요할 때 이용할 수 있도록 저장된 데이터의 집합
  • 공용 데이터 (Shared Data) : 여러 사용자와 다수의 응용 시스템이 공유할 수 있도록 만든 데이터의 집합
  • 운영 데이터 (Operational Data) : 중복을 최소화하고 여러 사람이 공유함에 있어서 문제가 발생하지 않도록 관리 필요로 하는 데이터의 집합

(2) 데이터베이스의 개념

  • 실시간 접근성 - 요청받은 데이터 처리는 실시간으로 처리되고 결과를 반환해야 한다.
  • 계속적 변화 - 저자된 데이터는 입력(Create), 수정(Update), 삭제(Delete)에 의해 지속적으로 변화한다.
  • 동시 공용 - 서로 다른 목적의 응용 SW 및 사용자에 의해 동시 공용이 가능하다.
  • 내용에 의한 참조 - 데이터의 참조는 데이터의 주소가 아닌 저장된 값에 의해 처리된다.

(3) 데이터베이스 관리시스템 (DBMS : Database Management System)

  • 동시성 제어 - 다수 트랜잭션의 동시 처리로부터 데이터 무결성 확모를 위한 제어 수행
  • 회복 관리 - 세스템 오류 및 장애로 인한 데이터 손실 및 결함의 대응
  • 성능 관리 - 데이터 처리 속도 확보를 위한 실행 계획의 최적화
  • 보안 관리 - 비인가 사용자의 접근 제어 및 중요 정보의 암호화

(4) 데이터베이스 종류

종류 설명 특징
계층형  - HDB
- 데이터를 상하 종속적 관계로 계층화하여 관리
- 한 레코드는 필드로 구성되며 다른 레코드들의 포인터로 구성
- 빠른 접근 속도
- 데이터 변화에 대한 유연성
망형  - NDB
- 망형의 네트워크 구조로 데이터 관리
- 레코드에 부모 레코드의 포인터 관리 가능
- 데이터 변화에 대한 유연성
- 데이터 모델링 복잡
관계형 - RDB
- 데이터 간의 관계 구조를 관리
- 레코드의 집합을 테이블로 구성
- 반복 그룹, 자료형 한계
- 동적 변화로 유연성 높음
객체지향형 - OODB
- 데이터를 객체화하여 관리
- 객체 재사용, 캡슐화, 상속 가능
- 멀티미디어 지원 가능
- 데이터 모델링 복잡
객체관계형 - ORDB
- 기존의 RDB에 객체의 개념 적용
- 개발자가 데이터형 정의 가능
- 반복 그룹, 자료형 한계 극복
- 데이터 모델링 용이

 

2. 트랜잭션

(1) 트랜잭션

데이터베이스의 상태를 변화시키기 위한 최소 작업 단위이며 한 번에 처리되어야 하는 질의어(SQL)의 묶음이다.

 

(2) 트랜잭션의 특징 (ACID ↔ NoSQL의 BASE)

Atomicity (원자성) - DB에 트랜잭션은 모두 반영되거나 전혀 반영되지 않아야 한다.
- Commit과 Rollback에 의해 보장 받는다.
- ex) 항공티켓주문
Consistency (일관성) - 트랜잭션 시작 시점에 참조한 데이터는 종료까지 일관성을 유지해야 한다.
Isolation (고립성) - 동시에 다수 트랜잭션이 처리되는 경우 서로의 연산에 개입하면 안 된다.
- 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없다. (IT위키)
Durability (지속성) - 트랜잭션이 성공적으로 완료되면 처리 결과는 영속적으로 반영되어야 한다.

(+) NoSQL의 BASE

Basically Available  - 가용성을 중시하며 Optmistic Locking 및 큐 사용
 - 다수의 실패에도 가용성을 보장
 - 다수의 스토리지에 복사본 저장
Soft - State  - 노드의 상태는 외부에서 전송된 정보를 통해 결정됨
 - 분산 노드 간 업데이트는 데이터가 노드에 도달한 시점에 갱신
Eventually Consistent  - 일시적으로 비일관적인 상태가 되어도 최적으로는 일관성이 있는 상태가 되는 성질

 

「트랜잭션의 고립화 수준」

1. Read Uncommitted : Commit되지 않은 데이터의 Read 허용
2. Read Committed : 질의 시작 전 Commit된 데이터의 Read만 허용
3. Repeatable Read : 트랜잭션 시작 전 Commit 된 데이터의 Read만 허용
4. Serializable : 병행 처리되지 않고 순차적으로 처리되는 것과 동일한 수준

 

3. 데이터 모델링

(1) 개념

시스템으로 구성하기 위한 데이터의 집합(실체)을 도출한 후 각 집합을 구성하는 세부 속성과 식별자를 정의하고 각 데이터 집합 간의 관계를 정해진 표기법(Notation)으로 시각화하는 과정

(2) 데이터 모델링 프로세스

요구사항 수집 / 분석  - 사용자 및 DB 용도를 식별, 사용자 요구사항을 수집 및 분석하여 요구사항 정의서 작성
설계 개념 모델링  - 현실세계의 정보를 추상화하여 주제 영역을 정의하고 식별자/관계/속성 도출, ERD 작성
논리 모델링  - 개념 데이터 모델을 특정 DB(계층, 망, 관계)에 적합하도록 구조화하여 논리 ERD 작성
물리 모델링  - 특정 DBMS에서 활용 가능하도록 물리 ERD 및 테이블 정의 서 작성 과정
DB 구현  물리 ERD 및 테이블 정의서를 이용해 특정 DBMS에 DB를 구축하는 과정

NCS 모듈 예시 발췌

(정리 1) 요구사항 정의서 작성 예시

순서 구분 요청내역
1  사무소 관리  숫자 3자리 고유 사무소 번호, 주소, 전화번호 관리
2  차량 관리  트럭 종류(5종), 마지막 정비 일자, 등록 말소일 관리
3  고객 관리  개인 고객 - 휴대폰 번호로 식별, 고객명 주소 관리 (막줄)
4  고객 관리 (2)  법인 고객 - 사업자 등록 번호로 식별, 법인명, 주소, 연락처 관리
5  렌탈 계약 관리  차량 1대만 가능하며 고유 계약 번호 자동 발급
6  렌탈 계약 관리 (2)  렌탈 계약 - 렌탈 사무소와 차량의 주행거리 기록
7  렌탈 계야 관리 (3)  반납 - 반납 사무소와 차량의 변경된 주행거리 기록

(정리 2) 개념/논리 데이터 모델링

[주제 영역 정의서]

분류 주제 영역명 설명 대표 개체
렌탈 렌탈 계약 개인 또는 법인 고객에게 트럭 대여를 위한 계약 관리 사무소, 차량, 고객, 계약

[개체 정의서]

개체명 설명 분류 식별자 관련 속성
사무소 회사에서 관리하는 사무소 정보 기본 사무소 번호 주소, 전화번호
차량 회사에서 관리하는 차량 정보 기본 차량 번호 차량 종류, 마지막 정비 일자, 등록 말소일
고객 계약을 체결하는 고객 정보 기본 고객 번호 고객명, 주소, 휴대폰 번호, 고객 구분
계약 차량의 렌탈 계약 정보 중심 계약 번호 차량 번호, 시작 사무소 번호, 시작 주행거리, 종료 사무소 번호, 종료 주행거리

「개체 분류」

개체는 발생 시점에 따라 기본, 중심, 행위 개체로 분류된다.
기본 개체 독립적으로 생성되어 타 개체의 부모 역할을 수행한다.
중심 개체 업무에서 중심적인 역할을 수행하는 개체로 기본 개체에서 발생한다.
행위 개체 개체의 활동에 의해 생성된 원천(Raw) 정보로 발생순서가 중요하다

[속성 정의]

속성을 도출하고 각 속성에 대해 속성명, 도메인, 필수 여부를 지정한다.
도메인 = 데이터 타입, 길이, 허용값, 디폴트 값으로 구성된다.
최소 단위까지 분할해야 하며 하나의 값만 갖도록 구성해야 한다.
최소 단위까지 분할 이후 관리 편의성을 고려하여 우편번호, 일자 등은 통합하는 것을 검토한다.

[관계 정의]

개체 구분 관계 설명
사무소 - 계약 가수성 1 : N - 사무소는 다수의 계약을 체결한다.
- 계약은 하나의 사무소를 지정한다.
선태성 필수 선택 - 사무소는 계약을 안 맺을 수 있다.
- 계약은 반드시 사무소를 지정해야 한다.
식별성 비식별 : 비식별 - 사무소의 식별자로 계약을 식별할 수 없다.
- 계약의 식별자로 사무소를 식별할 수 있다.

4. E-R 데이터 모델

(1) 개념

현실세계의 구성요소들을 DB로 관리하기 위해 유형화(Classfication), 집단화 (Aggregation), 일반화(Generalization) 과정을 통해 추상화(Abstraction)하여 개체(Entity)와 관계(Relationship)로 구조화한 데이터 모델
추상화(Abstraction)
유형화(Classfication) - 동일한 특성을 하나의 유형(Class)으로 분류하여 속성으로 정의
ex) 인사담당자, 영업담당자, 구매담당자를 담당자구분으로 유형화
집단화(Aggregation) - 연관된 속성을 하나의 집단으로 분류하여 새로운 속성으로 정의
ex) 담당자구분, 부서, 이름, 전화번호를 담당자로 집단화
일반화(Generalization) - 공통 속성을 파악하여 전체집합과 부분집합으로 분류
ex) 이름, 전화번호를 사람으로 일반화

(2) 구성요소

구성요소 설명
개체(Entity) - 사람, 사물, 사건, 개념 등의 유무형의 특성을 공유하는 독립적인 실체로 인스턴스의 집합
속성(Attribute) - 개체(Entity)를 구성하는 특성
관계(Relationship) - 개체 간의 상호 연관성을 표현하는 페어링(Paring)의 집합

(3) 표기법

유형 설명
Chen 표기법 - 1976년 Peter Chen에 의해 만들어진 최초의 표기법
- 교육용으로 주로 사용되며 실무적으로는 사용하지 않음
정보공학(IE( 표기법 - 1981년 Clive Finkelstein과 James Martin에 의해 발표됨
- 1980년 중반 James Martin에 의해 체계가 정리됨
바커(Baker) 표기법 - 1986년 Richard Barker, IanPalmer, Harry Ellis등에 의해 개발
- 이후 Richard Barker에 의해 지속적으로 개선된 표기법

「개체 표기법」

 

「속성 표기법」

 

「관계 표기법」

 

5. 관계형 데이터베이스 테이블

(1) 개념

데이터 모델링을 통해 도출된 개체(Entitiy)와 관계(Relationship)를 DB에서 관리하기 위한 2차원 표 형태의 저장 공간.

(2) 구성

구성 설명
필드 열과 행이 교차하는 지점 하나의 값
개체를 구성하는 속성(Attribute)
하나의 인스턴스(Instance)를 구성하는 속성값의 집합으로 튜플(Tuple), 레코드(Record)라고도 함.

 

6. SQL 개요

(1) 개념

DB를 조작하기 위한 구조화된 질의어로 사용자가 처리 결과를 얻기 위한 질의어를 DBMS에 전달하면 DBMS가 최적화 과정을 통해 처리 절차 및 방법을 수립하여 처리한다.
즉, 사용자가 처리 과정을 직접적으로 고려할 필요가 없는 비절차적 언어이다.

(2) 표준 SQL 주요 버전

유형 설명
SQL - 86 - 최초의 표준 SQL
- Select, Insert, Update, Delete, Group by, Having 등 지원
SQL - 89 - Unique, Not Null, Default, Check 등 무결성 제약 기능 보강
SQL - 92 - 현재 관계형 DB에서 사용되는 SQL의 기반이 되는 버전으로 SQL2라고도 함.
- Join, Case When, Cast 연산자 추가
SQL : 1999 - SQL3라고도 하며 SQL의 기본 개념을 정의하고 기본 구문 및 연산 정리
- Rollup, Cube 등 OLAP(Online Analytical Processing) 기능 추가
SQL : 2003 - 2003년 윈도 함수들 추가 및 XML 관련 기능 도입
- 이후 정기적으로 업데이트 되고 있으며 SQL : 2016에서 JSON 지원 추가

 

7. SQL 구문

(1) DDL (Data Definition Language, 데이터 정의어)

데이터를 정의하는 언어
스키마 구조를 변경하는 목적으로 DBA나 설계자가 주로 사용한다.
종류 설명
CREATE DB, Table, View, Index 등 생성
ALTER Table의 속성(Attribute), 도메인(Domain), 제약조건(Constraint) 등 변경
DROP DB, Table, View, Index 등 삭제
TRUNCATE Table의 모든 행 삭제

 

(2) DML (Data Manipulation Language, 데이터 조작어)

데이터 조작 언어
데이터를 조회하거나 입력, 수정, 삭제하기 위한 목적으로 DBA나 응용SW 개발자가 주로 사용
종류 설명
SELECT Table, View의 특정 조건 데이터 조회
INSERT Table에 특정 조건의 데이터 입력
UPDATE Table의 특정 조건 데이터 수정
MERGE Table에 특정 조건에 따라 데이터를 입력(INSERT)하거나 수정(UPDATE)
DELETE Table의 특정 조건의 데이터 삭제

(3) DCL (Data Control Language, 데이터 제어어)

데이터를 제어하는 언어
DB 접근을 위한 권한 부여 또는 회수하는 목적으로 DBA가 주로 사용
종류 설명
GRANT 특정 사용자에게 특정 객체에 대한 특정 작업 수행 권한 부여
REVOKE 특정 사용자에게 부여된 권한 회수

'IT 용어정리 및 실습' 카테고리의 다른 글

용어 정리 [IMAP / POP3] + dothome  (0) 2022.01.25

제어문, 조건문, 반복문

[제어문]

 

1. 제어문의 개념

  (1) 제어문이란?

  • 프로그램 명령이 순서를 제어하는 명령문을 말한다.

  (2) 제어문의 분류는?

  • 조건문과 반복문으로 나뉜다.
  • 조건문은 조건이 참인지 거짓인지에 따라 실행 명령을 분리하는 것을 말한다.
  • 반복문은 조건이 참인 동안 명령들을 반복 수행하는 것을 말한다.

  (3) 제어문의 종류는?

  • 조건문의 경우, if와 switch 구문이 있다.
  • 반복문의 경우, for, while, do while 구문이 있다.

 

2. 제어문의 구조

  (1) 제어문 구조의 종류

  • 순차구조
  • 선택구조
  • 반복구조

    1) 순차구조

  • 기본 구조로 명령문 하나씩 위에서 아래로 순차적으로 실행한다.

순차구조의 기본적인 특징, n번 반복

    2) 선택구조

  • 조건식의 참과 거짓에 따라 명령문들을 분리하여 실행한다.
  • '참일 땐 A를 해라, 거짓일 땐 B를 해라'

조건문 선택 구조의 형태, 참과 거짓에 따른 명령문 수행

    3) 반복구조

  • 조건식이 참이면 계속 실행한다.
  • '참이면 계속 돌고 거짓이면 빠져나와'

명령문이 참일 시 계속 돌고, 거짓이면 종료

 

[조건문]

 

1. if 조건문 이해

  (1) if 조건문의 규칙

  • 참과 거짓을 구분하여 실행하는 명령어 블록은 중괄호, {} 로 표시한다.
  • 참과 거짓을 구분하여 실행하는 명령어가 한 개일 경우는 중괄호의 생략이 가능하다.
  • if 조건문의 명령어 블록 내부에 또다시 if 조건문 사용이 가능하다. (중첩 가능)
  • 중괄호 내부에 선언된 변수는 중괄호 안에서만 사용가능하다.
  • 중괄호 외부에 선언된 변수는 내부에서 사용이 가능하다.
  • 조건식에는 세미콜론 (;) 을 붙이지 않는다.

  (2) if 조건문의 종류

  • 단순 if문
public class HelloControl {
	public static void main(String[] args) {
    	int a = 0;
        if (a<5) {
        	System.out.println(a);		// a의 값이 출력됨.
        	a++;				// a의 값이 1씩 증가하여 5와 같아지면 빠져나옴.
        }
    }
}
  • if ~ else 문
public class HelloControl2 {
	public static void main(String[] args) {
    	int a = 3;
        if (a<5) {
        	System.out.println(a);		
            // 참일 시 a의 값이 출력됨.
        } else {
        	System.out.println("a는 주어진 값보다 작습니다.");
            // 거짓일 시 else의 출력문이 출력됨.
        }
    }
}
  • if ~ else if + (else) 문
/**
* if ~ else if 문 활용하여 성적표 출력하기
* 2022-02-04
*/
public class HelloControl {
	public static void main(String[] args) {
    	int score = 80;
        if (score>=90) {
        	System.out.println("A, Great job");
        } else if (score>=80) {
        	System.out.println("B, Well done");
        } else if (score>=70) {
        	System.out.println("C, Try Little more");
        } else {
        	System.out.println("D, Oh no..");
        }
    }
}

 

 

2. switch 조건문 이해하기

  (1) switch 조건문이란?

  • if ~ else if ~ else 문의 단순화 시킨 조건문을 말한다.
  • case문, break문, default문으로 구성된다.

  (2) switch 조건문의 구조는?

  • 변수는 정수형, 문자형, 문자열 변수가 사용된다.
  • 수식은 정수형 또는 문자형 결과값이 나오는 수식을 사용한다.
  • 상수 1값과 "변수 또는 수식"의 값이 동일한 경우 A블록을 수행한다.
  • switch문의 외부로 제어가 이동한다.
  • break문이 없으면 아래의 블록을 실행한다.
  • case문은 switch문 내부에 1개 이상 사용할 수 있다.
  • 모든 상수값들과 "변수 또는 수식"의 값이 동일하지 않으면 default값이 수행된다.
  • default문은 마지막에 1개만 사용 가능하다.
  • break문은 생략이 가능하다. (단, 위에서 언급한 것처럼 여러 블록이 실행된다.)
  • case문과 default문의 마지막에는 (콜론, :)을 사용한다.

switch문 기본 구조, 맨위 빨간 네모 = (;) X

  (3) switch 조건문과 if 조건문의 비교


public class Controlflow4 {

	public static void main(String[] args) {
		// if문
		int i = 1;
		switch (++i) {
		case 1: // 값을 알고 있을 때 switch문 작성. 
			System.out.println("1입니다.");
			break;
		case 2:
			System.out.println("2입니다.");
			break;
		case 3:
			System.out.println("3입니다.");
			break;
		case 4:
			System.out.println("4입니다.");
			break;
		case 5:
			System.out.println("5입니다.");
			break;
		default:
			System.out.println("1~5안에 값이 아닙니다.");
			break;
		}
		if (i > 5) { // if는 범위 지정.
				System.out.println("5보다 큽니다.");
		} else if (i == 5) {  
				System.out.println("5랑 같습니다.");
		} else  {
			System.out.println("5보다 작습니다.");
			
		}
	}
}

 

[반복문]

1. 반복문의 개념

  (1) 반복문이란?

  • 반복적으로 명령문을 실행시킬 수 있는 문장을 말한다.
  • 특징으로는 중복성 제거와 코드의 간결함이 대표적이다.
  • 반복문 내부에 다른 반복문을 중첩하여 사용할 수 있다.

  (2) 반복문의 예

  • "안녕하세요?" 문장 100번 출력하기를 예로 들어보자.
// 반복문 사용하지 않은 경우
public class Hello {
	public static void main(String[] args) {
    	System.out.println("안녕하세요?");	// 1
        System.out.println("안녕하세요?");	// 2
        System.out.println("안녕하세요?");	// 3
        System.out.println("안녕하세요?");	// 4
        System.out.println("안녕하세요?");	// 5, 100번 ctrl c,v 하면 가능. 하지만 100만번이라면?
        
        // 반복문 활용
        for (int i = 0; i < 100; i++) {
        	System.out.println("안녕하세요?");	// 알아서 100번 출력하고 끝남.
        }
    }
}

  (3) 반복문의 종류

  • 반복 횟수가 정해져 있는 경우 : for문
  • 반복 횟수가 정해지지 않는경우 : while문, do ~ while문

  (4) 무한반복

  • 반복문이 종료되지 않고 지속적으로 반복되는 현상
  • break - 반복을 종료하는 명령문
  • continue - 반복을 건너뛰는 명령문 (연년 표기 문제에서 자주 쓰임)

2. for 반복문 이해하기

  (1) for 반복문 구조

  • 반복 전에 초기식을 설정한다.
  • 반복 여부를 판단하는 조건식을 설정한다.
  • 반복할 때마다 수행하는 증감식을 입력한다.
  • 반복할 명령어들을 입력한다.
  • 명령어가 하나인 경우 중괄호는 생략 가능하다. 
  • 초기식, 조건식, 증감식은 세미콜론으로 구분한다.
  • for문의 경우 증감식에 세미콜론을 붙이지 않는다.

for 구문의 반복문 동작 원리

 

3. while 반복문 이해하기

  (1) while 반복문이란?

  • 반복횟수가 미리 정해지지 않은 경우 주로 사용한다.
  • 조건식이 참인 동안 실행되는 반복문이다.
  • 초기식은 while 반복문이 시작되기 전에 선언한다.
  • 증감식은 while 반복문의 중괄호의 마지막에 선언한다.
  • 초기식과 증감식은 필요에 따라 생략이 가능하다.

  (2) while 반복문 구조는?

  • 반복 전 초기식 설정
  • 반복 여부를 판단하는 조건식은 괄호 안에 입력한다.
  • 반복할 때마다 수행하는 증감식은 닫는 중괄호 위에 입력한다.
  • 반복할 명령어들을 입력한다.
  • 중괄호 내부에 명령어가 하나인 경우 생략 가능하나 적는 것이 좋다.
  • 초기식과 증감식은 필요에 따라 생략 가능하다.

  (3) break 제어문이란?

  • 반복문 (for, while, do ~ while)에서 사용한다.
  • 반복문의 중괄호를 벗어나 반복문을 종료한다.
  • 중첩된 반복문에서는 가장 가까운 중괄호를 벗어난다.

  (4) continue 제어문이란?

  • 반복문 (for, while, do ~ while)에서 사용한다.
  • 반복문 내부의 이후 명령문들은 건너뛴다.

4. do ~ while 반복문 이해

  (1) do ~ while 반복문이란?

  • 반복 횟수가 미리 정해지지 않은 경우 주로 사용한다.
  • 초기식은 do ~ while 반복문이 시작되기 전에 선언한다.
  • 증감식은 do ~ while 반복문의 중괄호 마지막에 선언한다.
  • 초기식과 증감식은 필요에 따라 생략이 가능하다.
  • 조건식과 상관없이 중괄호 내부의 명령문들이 먼저 한 번 실행된 후 조건식이 실행된다.

  (2) do ~ while 반복문의 구조

do ~ while 반복문의 구조와 동작 원리

 

연산자의 문법 이해하기

[연산자 이해]

1. 수식 이해

  (1) 수식이란?

  • 피연산자와 연산자로 구성된 문장을 말한다.
  • 피연산자는 상수값 또는 변수를 사용한다.
int result = 123 + 456;

/*
*	피연산자 = int result, 123, 456
*	연산자 = =, +
*
*/

 

2. 연산자 이해

  (1) 연산자 형식

  • 단항 연산자 : 피연산자가 한 개인 연산자를 말한다.
  • 이항 연산자 : 피연산자가 두 개인 연산자를 말한다.
  • 삼항 연산자 : 피연산자가 세 개인 연산자를 말한다.
단항 이항 삼항
- + = <= & ? :
~ - < >= ^
! * > == &&
++ / << != ||
-- % >>    

 

  (2) 연산자 종류

산술 연산자 +  -  *  /  %
대입 연산자 =  +=  -=  *=  /=  %=
증감 연산자 ++  --
관계 연산자 ==  !=  >  <  >=  <=
논리 연산자 !  &&  ||
조건 연산자 ? :
비트 연산자 &  |  ^  ~  <<  >>  |=  ^=  ~=  <<=  >>=
기타 연산자 (자료형)  instanceof

  (3) 연산자 우선순위

  • 우선순위가 높은 연산자가 있는 수식이 먼저 계산된다.
우선순위 1 괄호, 단항 연산자 ()  -  ~  !  ++  --  (자료형)
2 산술 연산자 *  /  %  +  -  (비트연산자)
3 관계 연산자 ==  !=  >  <  >=  <=  instanceof
4 비트 연산자 &  |  ^  ~
5 논리 연산자 &&  ||
6 조건 연산자 ? :
7 대입 연산자 =  +=  -=  *=  /=  %=

 

3. 산술 연산자 이해

  (1) 산술 연산자란?

  • 이항 연산자이다.
  • 덧셈, 뺄셈, 곱셈, 나눗셈은 정수형과 실수형 계산이 가능하다.
  • 나머지는 정수형 계산만 가능하다.

(2) 산술 연산자 종류

기호 의미 설명
+ 덧셈 ● 정수형과 정수형의 결과는 정수형이다.
● 정수형과 실수형의 결과는 실수형이다.
● 실수형과 실수형의 결과는 실수형이다.
- 뺄셈
* 곱셈
/ 나눗셈 ● 정수형과 정수형의 나눗셈의 결과는 정수형이다.
● 정수형과 실수형의 나눗셈 결과는 실수형이다.
● 실수형과 실수형의 나눗셈 결과는 실수형이다.
● 0으로 나누면 실행오류가 발생한다.
% 나머지 계산 결과값은 나눗셈을 한 후 나머지 값만 도출한다.

 

4. 대입 연산자 이해

  (1) 대입 연산자란?

  • 이항 연산자에 해당된다.
  • 연산자 오른쪽에 있는 값을 왼쪽에 대입 또는 저장하는 연산자이다.
int result = 100;

int result2 = 100 + 30;

// = : 대입 연산자
// result2에서 100 + 30이 먼저 계산된 후 result에 계산된 130이 대입된다.

  (2) 복합 대입 연산자란? 

  • 단순 대입 연산자 (=) 와 산술 연산자를 복합적으로 사용하는 연산자를 의미한다.
기호 사용 예 동일한 의미
+= sum += 3; sum = sum + 3;
-= sum -= 3; sum = sum - 3;
*= sum *= 3; sum = sum * 3;
/= sum /= 3; sum = sum / 3;
%= sum %=3; sum = sum % 3;

 

5. 증감 연산자 이해

  (1) 증감 연산자란?

  • 단항 연산자이다.
  • 정수형 변수의 값을 1 증가시키거나 감소할 때 사용한다.
  • 변수 이름 앞 또는 뒤에 붙여 사용하며 붙이는 위치에 따라 이름이 다르다.
  • 연산자 기호는 ++와 --가 있다.

  (2) 전위 증감 연산자 / 후위 증감 연산자

    1) 전위 증감 연산자

  • 변수 이름 앞에 증감 연산자를 사용한다.
  • 전체 수식을 계산하기 전 증감 연산자를 계산한 후에 수식을 계산한다.
  • ex.) ++a; --b;

   2) 후위 증감 연산자

  • 변수 이름 뒤에 증감 연산자를 사용한다.
  • 전체 수식을 계산한 다음 제일 마지막에 증감 연산자를 계산한다.
  • ex.) a++; b--;

 

6. 관계 연산자 이해

  (1) 관계 연산자란?

  • 이항 연산자이다.
  • 연산자를 기준으로 양쪽의 피연산자를 비교하여 참과 거짓을 판별한다.
기호 설명 사용 예 의미
== 같다 A == B A와 B가 같다.
!= 다르다 A != B A와 B가 다르다.
> 크다 A > B A가 B보다 크다.
< 작다 A < B A가 B보다 작다.
>= 크거나 같다 A >= B A가 B보다 크거나 같다.
<= 작거나 같다 A <= B A가 B보다 작거나 같다.

 

7. 논리 연산자 이해

  (1) 논리 연산자의 개요

  • 논리 연산자의 종류로는 단항 연산자 1개와 이항 연산자 2개로 나뉜다.
  • 피연산자를 대상으로 참과 거짓을 판별한다.
  • 피연산자란, 상수와 변수, 관계식을 의미한다.
  • 참이면 true, 거짓이면 false를 의미한다.
항목 관계 연산자 논리 연산자
형식 이항 연산자 단항 연산자, 이항 연산자
동작 피연산자의 값을 비교 피연산자의 참과 거짓을 비교
결과값 참이면 true, 거짓이면 false

  (2) 논리 연산자의 종류

항목 기호 형식 설명
NOT ! 단항 연산자 피연산자를 부정
AND && 이항 연산자 피연산자 모두 참이면 참
OR || 이항 연산자 피연산자 모두 거짓이면 거짓

  (3) 논리 연산자의 우선순위

  • NOT > AND > OR
  • 괄호() > 괄호 안 관계 연산자 > NOT > AND > OR > 대입 연산자(=)

 

8. 조건 연산자 이해

  (1) 조건 연산자의 개요

  • 삼항 연산자이다.
  • 피연산자의 역할이 각각 있다.

    1) 피연산자의 역할

  • 첫 번째 피연산자 - 조건식 (참 또는 거짓)
  • 두 번째 피연산자 - 조건식이 참인 경우 수행하는 상수 OR 변수 OR 수식
  • 세 번째 피연산자 - 조건식이 거짓인 경우 수행하는 상수 OR 변수 OR 수식
result = (조건식) ? (상수1 or 변수1 or 수식1) : (상수2 or 변수2 or 수식2);

// 조건식이 참인 경우 : 1번 수행
// 조건식이 거짓인 경우 : 2번 수행

 

 

9. 비트 연산자 이해

  (1) 비트 연산자의 개요

  • 비트 단위로 연산한다.
  • 종류로는 비트 논리 연산자와 비트 시프트 연산자가 있다.
종류 항목 기호 형식 설명
비트
논리
연산자
NOT ~ 단항 연산자 비트 반전 ( 0은 1로, 1은 0으로)
AND & 이항 연산자 피연산자 모두 1인 경우만 1
OR | 피연산자 모두 0인 경우만 0
XOR ^ 피연산자가 서로 달라야 1
시프트
연산자
왼쪽 시프트 << 왼쪽으로 비트 이동 (부호 유지)
오른쪽 시프트 >> 오른쪽으로 비트 이동 (부호 유지)
>>> 부호 비트를 포함한 오른쪽으로 비트 이동

  (2) 비트 연산자의 사용 예시

    1) NOT 연산

int value = 1;		// 비트 표현 : 0000 0001

int result = ~value;	// 비트 표현 : 1111 1110

// 부호 비트 반전 (양수를 음수로)
// 2의 보수로 표현됨 (음수값)

    2) AND 연산

int v1 = 3;		// 비트 표현 : 0000 0011
int v2 = 5;		// 비트 표현 : 0000 0101

int res = v1 & v2;		

// & : v1가 v2의 자리가 둘 다 1 이어야 1. 하나라도 0이면 0. 둘 다 0이어도 0.
// v1 & v2 : 0000 0001

System.out.println(res); // 1

    3) OR 연산

int v1 = 3;		// 비트 표현 : 0000 0011
int v2 = 5;		// 비트 표현 : 0000 0101
int res = v1 | v2 ;		

// | : 둘 중 하나의 자리가 1이어도 1. 둘 다 0이면 0.
// v1 | v2 : 0000 0111

System.out.println(res); // 7

    4) XOR 연산

int v1 = 3;		// 비트 표현 : 0000 0011
int v2 = 5;		// 비트 표현 : 0000 0101
int res = v1 ^ v2;		

// ^ : v1과 v2 둘 중 하나만 1이어야 1. 둘 다 1일 경우도 0.
// v1 ^ v2 : 0000 0110

System.out.println(res); // 6

    5) 왼쪽 시프트 연산 (부호 유지)

int value = 3;
int res = value << 1;

// value : 0000 0011
// value << 1 : 0 0000 0110 , 맨 앞에 0은 버려짐.

System.out.println(res); // 6

    6) 오른쪽 시프트 연산 (부호 유지)

int value2 = 6;		// 비트 표현 : 0000 0110
int res2 = value2 >> 1;

// value2 >> 1 : 0000 0011 0 , 맨 뒤에 0은 버려짐.

System.out.println(res2); // 3

    7) 오른쪽 시프트 연산 (부호 포함)

int value3 = -1;

int res3 = value3 >>> 1;

System.out.println(res3);
// res3 = 2147483647	, 잘 쓰이지 않는다 해서 그냥 이렇다 라고만 알고 있는 상태. 보충 필요.

 

1.  자료형과 상수

[자료형]

1. 데이터의 종류

  • 정수 - 1, 2, 3, 4, 0, (-1), (-2), ...
  • 실수 - 3.14 
  • 문자 - 'a', 'b', 'c'
  • 문자열 - "java"

 

 2. 자료형의 종류

  • 기본 자료형 : 논리형, 정수형, 실수형, 문자형
  • 참조형 자료형 : 문자열, 배열, 클래스
데이터 타입 메모리 크기
논리형
boolean 1byte
정수형
byte 1byte
short 2byte
int 4byte
long 8byte
실수형
float 4byte
double 8byte
문자형
char 2byte

[상수이해]

1. 상수란?

  • 프로그램 수행 중 값이 변하지 않는 데이터를 의미한다.

2. 종류

  (1) 논리(boolean)

  • 참(true)
  • 거짓(false)

  (2) 정수

  • 자료형이 표현할 수 있는 값의 범위 내에서 사용하여야 한다.
  • 접미사 'L' 또는 'l'을 붙이며, 일반적으로 대문자를 사용한다.
  • 'L'을 사용하면 long형 상수값이 되며, 'L'을 사용하지 않으면 int형 상수값이 된다.
진수 표현 정수상수의 표현
10진수 123 byte 123, 0x7B, 0173
16진수 0x123 short 123, 0x7B, 0173
8진수 0123 int 123, 0x7B, 0173
    long 123L, 0x7B, 0173L

  (3) 실수

  • 자료형이 표현할 수 있는 값의 범위 내에서 사용하여야 한다.
  • 접미사 'F' 또는 'f'를 붙이며, 일반적으로 소문자를 사용한다.
  • 'f'를 사용하면 float형 상수값이 되며, 'f'를 사용하지 않으면 double형 상수값이 된다.
실수상수의 표현
float 123.45f
double 123.45

    1) 지수 형식 표기 방법

  •  알파벳 소문자 e 또는 대문자 E를 이용한다.
  • 가수부와 지수부를 분리해서 표현한다. 
지수형식으로 상수표현
123.456 1.23456 * 10² 1.23456e+02
1.23456E+02

 

  (4) 문자 / 문자열

  • 문자 상수 - 작은 따옴표 사용
  • 문자열 상수 - 큰 따옴표 사용
문자 / 문자열 상수의 표현
구분 자료형 상수표현
문자 char '자', 'a', '*'
문자열 String "자바 프로그래밍"

 

2. 변수 이해

[변수이해]

1. 식별자란?

 

  (1) 식별자(identifier)

  • 프로그래머가 필요 시 프로그램 내에 정의 또는 선언하여 사용하는 이름을 말한다.
  • 예) 변수이름, 메소드 이름 등이 있다.

  (2) 식별자 만드는 규칙

  • 알파벳 대소문자, 한글, 숫자, _(언더바), $(달러 표시)를 사용한다.
  • 공백을 포함하여 위에 없는 것들은 사용이 불가하다.
  • 식별자의 첫 문자는 알파벳 대소문자, _(언더바), 한글로 시작하여야 하며 숫자는 사용이 불가하다.
  • 예약어도 사용이 불가하며 알파벳 사용시 대소문자를 구분하여 사용한다.
올바른 식별자 잘못된 식별자
start 소문자 알파벳으로 시작 9stars 숫자로 시작
Total 대문자 알파벳으로 시작 Counting stars 중간 공백
_sum _(언더바)로 시작 int 예약어 사용
합계 한글로 시작 Looptotal! 특수문자 사용

 

2. 예약어란?

 

  (1) 예약어

  • 자바 언어에서 사용하는 문법적 단어들을 의미한다.
  • 식별자로 사용할 수 없다.    

  (2) 예약어 (예시)

  • byte / short / int / long / float / double / char / String
  • if / switch / else / case for / while / do

 

3. 변수란?

  • 데이터를 저장하는 컴퓨터 메모리 공간을 가리키는 식별자이다.
  • 변수에 데이터를 저장, 수정, 읽기 가능하다.
  • 프로그램이 실행되는 동안 변수의 데이터 값이 유효하다.
  • 데이터의 자료형 크기에 따라 컴퓨터 메모리 공간이 확보된다.

변수란?

[변수사용]

1. 변수 선언 방법

int i = 100 ;
  • int : (자료형) 프로그래머가 원하는 자료형
  • i : (변수이름) 식별자 만드는 규칙에 맞게 프로그래머가 정한다.
  • = : (대입연산자) 오른쪽에 위치한 상수값을 변수에 저장한다.
  • 100 : (상수값) 자료형과 같은 상수값을 사용한다. 여기선 정수를 의미한다.
  • ; : (세미콜론) 프로그램 한 줄의 마지막임을 표현한다.    

  (+) 같은 식, 다른 표현

int i; // 변수 선언
i = 100; // 변수에 상수값 저장

 

2. 변수 이름 표기법

  (1) 가독성 있게 표현하기

  • 의미 없는 변수 이름은 사용하지 않는다. (abc, a1, b2 ...)
  • 변수 사용 목적에 맞게 표기한다. 

  (2) 표기법

    1) 카멜 표기법 

  • 2개의 단어를 연결할 때 사용하는 표기법이다.
  • 첫 번째 단어는 소문자로, 두 번째 단어는 대문자로 시작하여 표기한다.
  • 예) scoreCount, myGrade

 

    2) 스네이크 표기법

  • 카멜 표기법과 같이 2개의 단어를 연결할 때 사용하는 표기법이다.
  • 첫 번째 단어와 두 번째 단어를 _(언더바)를 사용, 연결하여 표기한다.
  • 예) score_count, my_grade

 

3. 변수 선언 위치와 사용범위

 

  (1) 변수 선언 위치

  • 프로그램 내 원하는 위치에 선언이 가능하나 중복하여 선언할 수 없다.
  • 선언하는 위치에 따라서 사용 범위가 정해진다. (지역변수, 전역변수)
public class Hello {
	public static void main(String[] args) {
    	int countNum = 1; // 변수선언 이후 모든 영역에서 사용가능하다.
        System.out.println(countNum);
        
        int countTotal = 1; // countTotal 선언 이전에는 사용이 불가능하다.
        
    } // line 2 ~ line 8까지 main() 메소드라고 부른다. 
}

(+) 지역변수, 전역변수

public class Varia {
	public static void main(String[] args) {
    int globalInt = 0; // 전역변수
    
   	{
    		int localInt = 0; 	// 지역변수, 전역변수와 같은 이름은 사용할 수 없다.
    	}				// 지역변수가 선언된 {}를 벗어나면 효력이 없다.
    }
}

 

[변수의 데이터 표현 범위]

1. 오버플로우 (Overflow)

  • 변수의 자료형에 따라 표현할 수 있는 데이터의 최소값과 최대값이 있다.
  • 변수가 표현할 수 있는 최대값보다 큰 값이 변수에 지정될 때 발생한다.
  • 오버플로우 발생 시 문법적 오류가 발생한다.
정수형 자료형 short의 데이터 표현범위
-32,768 ~ 32,767
short test1 = 32767; short test2 = 32768;
short 자료형 최대값 이하이므로 정상 short 자료형 최대값보다 크므로 오버플로우 발생

 

2. 언더플로우 (Underflow)

  • 변수가 표현할 수 있는 최소값보다 작은 값이 변수에 지정될 때 발생한다.
  • 언더플로우 발생 시 문법적 오류가 발생한다.
정수형 자료형 short의 데이터 표현범위 
-32,768 ~ 32,767
short test1 = -32768; short test2 = -32769;
short 자료형 최대값 이상이므로 정상 short 자료형 최소값보다 작으므로 언더플로우 발생

 

[자료형 변환]

1. 자료형 변환이란?

  (1) A라는 자료형의 값을 B라는 자료형 값으로 변환하는 것을 말한다.

  (2) 종류

  • 자동 자료형 변환 
  • 강제 자료형 변환 (Casting)

2. 자동 자료형 변환

  • 메모리 크기가 작은 자료형의 값을 메모리 크기가 큰 자료형 값으로 변환하는 것.
  • byte -> short -> int / float -> long / double
byte by = 100;
short sh = 29;
int in = 2908;
long lo = 12908;
float fl = 129.08f;
double dou = 129.08;

sh = by;	// byte에서 short로
in = sh;	// short에서 int로
lo = in;	// int에서 long으로
dou = fl;	// float에서 double로

 

3. 강제 자료형 변환

  • 메모리 크기가 큰 자료형의 값을 메모리 크기가 작은 자료형의 값으로 변환하는 것을 말한다.
  • 변수의 값은 작은 자료형 크기에 맞는 값이어야 하며, 오버플로우에 주의한다.
  • 실수형 자료형의 값이 정수형 자료형의 값으로 변환될 때는 소수점 이하는 버려진다.
  • byte <- short <- int / float <- long / double
  • 캐스트(Cast) 연산자를 사용하여 강제 자료형 변환을 한다.
byte by = 100;
short sh = 29;
int in = 2908;
long lo = 12908;
float fl = 129.08f;
double dou = 129.08;

// 형식
// 대입하고자 하는 변수명 = (대입하고자 하는 변수명의 '타입') 변환시키고자 하는 변수명;
by = (byte) sh;		// short에서 byte로
sh = (short) in;	// int에서 short로
in = (int) fl;		// float에서 int로
fl = (float) dou;	// double에서 float로

 

3. 표준 입출력 이해

[표준 출력 메소드]

1. System.out.println() 메소드

  • 화면(표준 출력)에 내용을 출력해주는 메소드이다.
  • 소괄호 사이 화면에 출력할 내용을 지정한다.
  • 화면에 내용을 출력한 후 줄 바꿈이 실행된다.
System.out.println(" ~~ ");

// System.out : 표준 출력 객체
// ~~ : 화면에 출력할 내용 지정

  (1) 소괄호 사이에 화면에 출력할 내용 지정 방법

  • 큰 따옴표(" ") 사이에 있는 문자열은 화면에 그대로 출력된다.
  • 변수는 변수의 값이 화면에 출력된다.
  • 상수는 상수의 값이 그대로 화면에 출력된다.
  • 수식은 수식이 계산된 결과값이 화면에 출력된다.
  • 화면에 출력될 항목들은 " + " 기호로 연결한다.
  • // 큰따옴표 사이 문자열 화면 출력
    System.out.println("출력");	// 결과: 출력
    
    // 변수는 변수의 값이 화면에 출력
    int i = 1;
    System.out.println(i); 		// 결과: 1
    
    // 상수는 상수의 값이 화면에 출력
    System.out.println(100);	// 결과: 100
    
    // 수식은 수식이 계산된 결과값이 화면에 출력
    System.out.println(1+2);	// 결과: 3
    
    // 화면에 출력될 항목들은 "+" 기호로 연결
    int j = 100;
    System.out.println("j의 값은" + j + 200 + "을 더하면" + (j+200));	
    // 결과: j의 값은 100, 200을 더하면 300

 

2. System.out.print() 메소드

  • System.out.println() 메소드 사용법과 동일하다.
  • 차이점은 화면에 내용을 출력한 후 줄 바꿈을 실행하지 않는다.
System.out.println("안녕");
System.out.println("하세요");
// 결과
// 안녕
// 하세요

System.out.print("안녕");
System.out.print("하세요");
// 결과 : 안녕하세요

 

[표준 입력 메소드]

 

1. 표준 입력 메소드 사용 방법

  • Scanner 클래스 import 하기
  • 표준 입력 객체를 이용하여 Scanner 클래스의 객체 생성하기
  • Scanner 객체를 이용하여 표준입력(keyboard)로부터 데이터 입력 받기
import java.util.Scanner;

Scanner scan = new Scanner(System.in); // System.in = 표준입력(키보드) 객체
int a = scan.nextInt(); 		// Scanner 객체, 정수형 자료 입력
double b = scan.nextDouble();		// 실수형 자료 입력(double)
String c = scan.nextLine();		// 문자열 자료 입력(String)

1. IMAP / POP3

 

개념

  • 전자 메일에 액세스하는 두 가지 방법
  • IMAP : 휴대폰, 랩톰, 태블릿과 같은 여러 다른 장치에서 전자 메일을 확인해야 하는 경우 권장됨.

IMAP

  • Internet Messaging Access Protocol, 서버에서 이메일을 읽는 프로토콜
  • 사용 시 어디서나 모든 장치에서 전자 메일에 액세스할 수 있다.
  • IMAP 사용하여 전자 메일 메시지를 읽을 때 실제로 컴퓨터에 다운로드하거나 저장하지 않는 대신 전자 메일 서비스에서 읽는다.
  • 클릭할 때만 메시지를 다운로드하고 첨부 파일은 자동으로 다운로드되지 않는다.

POP3

  • Post Office Protocol, 사용자의 기기로 이메일을 다운로드하여 읽는 프로토콜
  • 대신, 다운로드한 내용은 서버에서 삭제되기 때문에 동일한 기기에서만 이메일 확인이 가능하다.
  • 대부분의 서비스 업체에서는 POP3 방식을 제공하고 있다.

차이점 (불러오는 방식의 차이)

  • [IMAP]
  • PC나 모바일에서 메일을 확인할 때 서버에 저장된 정보를 가져와서 내용을 보여주고 변경 사항을 동기화한다.
  • 여러 디바이스에서 접속해도 항상 동일한 정보를 확인할 수 있다.
  •  
  • [POP3]
  • 우리가 사용하는 기기에 정보를 저장한다.
  • 복사본을 저장하지 않으면 아웃룩에서 주고받는 데이터들이 삭제된다. 

장단점(IMAP)

  • [장점]
  • 동기화 : 아웃룩에서 보낸 데이터를 Web과 Mobile에서 확인할 수 있다.
  • 환경 : 다운로드 이슈가 발생하지 않아, 안정적인 환경에서 수신 / 발신 할 수 있다.
  • 멀티 디바이스 : 언제 어떤 디바이스에서 접속해도 모든 속성이 동기화되어 편리하게 사용가능하다.
  •  
  • [단점]
  • 용량 관리 : 서버에 계속 데이터가 쌓이기 때문에, 용량 제한 서비스 이용 시 관리가 어렵다.
  • 비싼 요금 : 모든 내용을 동기화해야 하므로 더 많은 트래픽이 필요하다. 그러므로 사용 요금이 비싼 경우가 많다.

장단점(POP3)

  • [장점]
  • 용량 관리 : 데이터 자동 삭제를 설정할 수 있어서 IMAP와 비교하여 용량 관리가 쉽다.
  • 저렴한 요금 : 대부분의 서비스 제공 업체가 POP3 환경을 지원하기 때문에 요금이 크게 비싸지 않다.
  •  
  • [단점]
  • 발송 메일 보존 불가 : 아웃룩에서 보낸 편지는 웹 서버에 저장되지 않아 아웃룩 외 다른 곳에서 보낸 데이터 확인하기 어렵다.
  • 기기 관리 어려움 : 저장된 기기 자체를 관리해야 하기 때문에 하드 고장 또는 PC 바이러스가 생기면 복구하기 어렵다.
  • 다운로드 이슈 : 여러 디바이스에서 같은 메일을 계속 다운로드 하다 보면 중복 다운로드 및 사라짐 이슈가 발생할 수 있다. 

 

참고사이트

 

[메일 용어] IMAP과 POP3의 의미와 차이점

안녕하세요. 언제나 유용한 정보를 전달해드리는 메대리입니다. 주말이 가고 어느새 월요일이 되었습니다. ...

blog.naver.com

 

IMAP 및 POP 이란?

IMAP 및 POP는 전자 메일에 액세스하는 두 가지 방법입니다. IMAP는 휴대폰, 랩톱 및 태블릿과 같은 여러 다른 장치에서 전자 메일을 확인해야 하는 경우 권장되는 방법입니다. IMAP IMAP를 사용하면

support.microsoft.com

 

2. dothome.co.kr (FTP 실습)

 

dothome + filezilla + 메모장(index.html)

과정

  • dothome 회원가입 및 무료 호스팅
  • filezilla 다운로드 및 dothome 무료 호스팅 사이트와 연결
  • 메모장(html) 파일 생성
  • 메모장 파일 - filezilla html 폴더 안에 업로드
  • yangicson.dothome.co.kr에 index.html 내용 업로드
  • 주의 : 3개월 간 무료 이용 가능 (오늘 날짜 : 2022. 01. 25)

 

'IT 용어정리 및 실습' 카테고리의 다른 글

[메모] 데이터베이스 기초  (0) 2022.02.07

+ Recent posts