📘 6단원 : 프로그래밍 언어 활용 - 기본 문법 활용하기, 언어 특성 활용하기
🎓 1. 기본 문법 활용하기
✏️ 변수 활용
🏷️ 데이터 타입
📘 데이터 타입 개념
데이터 타입은 프로그래밍 언어에서 실수치, 정수 자료형과 같은 여러 종류의 데이터를 식별하는 형태
🏷️ 기본 저장 공간
📘 변수의 개념
저장하고자 하는 값이 있을 때 그 값을 주기억장치에 기억하기 위한 공간
🏷️ 자료형
📘 자바
- HashSet : 중복된 자료를 허용하지 않는 집합(Set)의 성질을 가진 클래스
- ArrayList : 크기가 가변적으로 변하는 선형리스트의 성질을 가진 클래스
- LinkedList : 데이터를 저장하는 노드가 이전 노드와 다음 노드의 상태를 알고 있는 링크드 리스트 자료구조를 구현한 클래스
- HashMap : 키와 값으로 구성된 객체를 저장하는 구조로 되어 있는 자료구조를 구현한 클래스
📂 HashSet : 중복된 값은 추가하지 않음
📂 HashMap : 키와 값으로 구성된 객체를 저장하는 구조로 되어 있는 자료구조
📘 파이썬
- 세트형 : 중복된 원소를 허용하지 않는 집합의 성질을 가지고 있는 자료구조 { }
- 리스트형 : 크기가 가변적으로 변하는 선형리스트의 성질을 가지고 있는 자료구조 [ ]
첫번째 요소(0/-n) | 두번째 요소(1/-(n-1)) | 뒤에서 두번째 요소(n-2/-2) | 마지막 요소(n-1/-1)
- 튜플형 : 초기에 선언된 값에서 값을 생성, 삭제, 수정이 불가능한 형태의 자료구조
- 딕셔너리형 : 키와 값으로 구성된 객체를 저장하는 구조로 되어 있는 자료구조 { }
🏷️ 식별자 표기법
- 카멜 표기법 : 여러 단어가 이어지면 첫 단어 시작만 소문자로 표시하고 각 단어의 첫 글자는 대문자로 지정하는 표기법
- 파스칼 표기법 : 여러 단어가 이어지면 각 단어의 첫 글자는 대문자로 지정하는 표기법
- 스네이크 표기법 : 여러 단어가 이어지면 단어 사이에 언더바를 넣는 표기법
- 헝가리안 표기법 : 식별자 표기 시 두어에 자료형을 붙이는 표기법, int형이면 n, char형이면 c, 문자열일 경우 sz를 붙임
✏️ 연산자
🏷️ 시프트 연산자
비트를 이동시키는 연산자
1. << : 왼쪽 값을 오른쪽 값만큼 비트를 왼쪽으로 이동하는 연산자
2. >> : 왼쪽 값에 오른쪽 값만큼의 부호 비트를 채우면서 오른쪽으로 이동하는 연산자
🏷️ 논리 연산자
두 피연산자 사이의 논리적인 관계를 정의하는 연산자
- && : 두 개의 논릿값이 모두 참이면 참을 반환하고, 그렇지 않으면 거짓을 반환
- || : 두 개의 논릿값 중 하나가 참이면 참을 반혼하고, 그렇지 않으면 거짓을 반환
🏷️ 비트 연산자
- & : 두 값을 비트로 연산하여 같은 비트의 값이 모두 1이면 해당 비트 값이 1이 되고 그렇지 않으면 0이 되는 연산자
- | : 두 값을 비트로 연산하여 같은 비트의 값이 하나라도 1이면 해당 비트 값이 1이 되고 그렇지 않으면 0이 되는 연산자
- ^ : 두 값을 비트로 연산하여 같은 비트의 값이 서로 다르면 해당 비트 값이 1이 되고 그렇지 않으면 0이 되는 연산자
- ~ : 모든 비트의 값을 반대로 바꾸는 반전 기능을 하는 연산자
✏️ 표준 함수
🏷️ 변수 출력
📘 문자형
%c : 문자 출력
%s : 문자열 출력
📘 정수형
%d : 10진수 출력
%x : 16진수 출력
%o : 8진수 출력
📘 실수형
%f : 실수 출력
✏️ 명령문
🏷️ 조건문
📘 switch 문
: break가 있으면 switch 문을 빠져나온다.
📘 루프 제어 명령어
break : 반목문을 중지하도록 하는 명령어
continue : 다음 반복으로 넘어갈 수 있도록 하는 명령어
✏️ 클래스
🏷️ 접근 제어자
접근 제어자는 지정된 클래스, 변수, 메서드를 외부에서 접근할 수 있도록 권한을 설정하는 기능
- public : 외부의 모든 클래스에서 접근이 가능한 접근 제어자
- protected : 같은 패키지 내부에 있는 클래스, 하위 클래스에서 접근이 가능한 접근 제어자
- default : 접근 제어자를 명시하지 않으면 같은 패키지 내부에 있는 클래스에서 접근이 가능한 접근 제어자
- private : 같은 클래스 내에서만 접근이 가능한 접근 제어자
🏷️ 생성자
생선자는 해당 클래스에서 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드
🏷️ 오버로딩
동일 이름의 메서드를 매개변수만 다르게 하여 여러 개 정의할 수 있는 기능
🏷️ 오버라이딩
하위 클래스에서 상위 클래스 메서드를 재정의할 수 있는 기능
c++은 virtual 키워드가 있어야 오버라이딩이 가능하다.
🏷️ 인터페이스
자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 문법
🎓 2. 언어 특성 활용하기
✏️ 프로그래밍 언어의 언어별 특성
🏷️ 프로그래밍 언어의 유형 분류
📘 개발 편의성에 따른 분류
1. 저급 언어 : 기계가 이해할 수 있도록 만들어진 언어
2. 고급 언어 : 개발자가 소스 코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어
📘 실행하는 방식에 따른 분류
1. 명령형 언어 : 컴퓨터에 저장된 명령어들이 순차적으로 실행되는 프로그래밍 방식
2. 객체지향 언어 : 객체 간의 메시지 통신을 이용하여 프로그래밍하는 방식
3. 함수형 언어 : 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식
4. 논리형 언어 : 논리 문장을 이용하여 프로그램을 표현하고 계산을 수행하는 개념
📘 구현 기법에 따른 분류
1. 컴파일 방식의 언어 : 고급 언어를 기계어로 번역하는 방식의 언어
2. 인터프리터 방식의 언어 : 고급 언어 명령문을 하나씩 번역하고 실행하는 방식의 언어
3. 혼합형 방식의 언어 : 고급 언어를 컴파일하여 중간 언어로 변환한 후, 인터프리터에 의해 번역을 실행하는 언어
🏷️ 객체지향 프로그래밍
📘 객체지향 프로그래밍의 구성요소
1. 객체 : 개체, 속성, 메서드로 구성된 클래스의 인스턴스
2. 클래스 : 객체지향 프로그래밍에서 객체를 표현하는 추상 데이터 타입으로 객체를 생성하는 틀
3. 메시지 : 객체 간의 통신
🐥 객클메
📘 객체의 구성요소
개체 + 속성 + 메서드
🐥 개속메
== 개가 속을 메스꺼워 함
✏️ 라이브러리 활용
🏷️ 모듈과 패키지
- 모듈 : 전역변수, 함수 등을 모아둔 파일
- 패키지 : 모듈을 디렉토리 형식으로 구조화한 라이브러리