예약어란 특정 기능을 수행하도록 미리 예약되어 있는 단어를 말한다.
예시
print()
get() 메서드는 딕셔너리에서 주어진 키(key)에 해당하는 값을 반환하는 메서드입니다.
get() 메서드는 두 개의 파라미터를 가질 수 있습니다. 첫 번째 파라미터는 찾고자하는 키(key)이고, 두 번째 파라미터는 기본값(default value)입니다.
get() 메서드는 다음과 같은 동작을 수행합니다:
만약 주어진 키(key)가 딕셔너리에 존재한다면, 해당 키에 대한 값을 반환합니다.
만약 주어진 키(key)가 딕셔너리에 존재하지 않는다면, 기본값(default value)을 반환합니다. 만약 기본값이 지정되지 않았다면, None을 반환합니다.
먼저, 가변 객체와 불변 객체에 대한 이해를 하여보자.
불변적 객체(immutable)란, 메모리 안에 담겨 있는 값이 언제나 변하지 않는 객체를 의미한다. 예를 들면, 다음과 같은 종류들은 불변 객체이다.
정수형(int) & 불리언형(boolean)
실수형(float)
복소수형(complex)
문자열형(string)
튜플형(tuple)
바이트형(bytes)
frozenset형
decimal 라이브러리의 Decimal형
range형
반대로, 가변적 객체(mutable)란 메모리 안에 담겨 있는 값이 변할 수 있는 객체를 의미한다. 다음고 ㅏ같은 같은 종류들은 가변 객체이다.
리스트형(list)
집합형(set)
사전형(dictionary)
바이트 배열형(bytearray)
사용자 정의 class형 (이는 사용자가 불변 객체로 정할 수 있지만, 일반적인 경우 가변 객체이다.)
출처
https://0xffffffff.tistory.com/75
cs 면접 봤다 끝~ + 밍글데이 ( 게임, 라디오, tmi퀴즈 게임을 통해서 수강생들과 가까워지는 시간을 준비해주신것 같았다)
라디오 사연에 내가 낸 사연이 다 나와서 깜짝 놀램;;
메모리 구조:
배열: 메모리에서 연속적인 공간에 저장돼요.
연결 리스트: 메모리에서 연속적이지 않은 공간에 저장될 수 있어요. 각 노드가 다음 노드를 가리키는 포인터를 가지고 있어요.
크기 변경:
배열: 크기가 고정되어 있어서 처음에 정한 크기를 변경할 수 없어요.
연결 리스트: 크기를 동적으로 변경할 수 있어요. 새로운 노드를 추가하거나 기존 노드를 제거할 수 있어요.
데이터 접근 속도:
배열: 인덱스를 사용하여 원하는 요소에 빠르게 접근할 수 있어요.
연결 리스트: 처음부터 순서대로 찾아가야 하기 때문에 원하는 요소에 접근하는 데 시간이 더 걸려요.
삽입과 삭제:
배열: 중간에 요소를 삽입하거나 삭제하면 나머지 요소들을 이동시켜야 해서 시간이 많이 걸려요.
연결 리스트: 중간에 요소를 삽입하거나 삭제하는 것이 비교적 쉬워요. 그냥 포인터만 변경하면 돼요.
요약
배열(Array):
연속적인 메모리 공간에 저장.
고정된 크기.
인덱스를 사용하여 빠르게 접근.
중간에 삽입이나 삭제가 어려움.
연결 리스트(Linked List):
연속적이지 않은 메모리 공간에 저장.
동적으로 크기 변경 가능.
처음부터 순서대로 찾아가야 함.
중간에 삽입이나 삭제가 쉬움.
HTTP(HyperText Transfer Protocol, 그냥 에이치티티피라고 읽어요)
서버랑 클라이언트가 웹상에서 정보를 주고 받을 수 있도록 해주는 프로토콜을 의미
HTTPS(HyperText Transfer Protocol Secure, 마찬가지로 그냥 에이치티티피에스라고 읽어요)
기존의 http는 암호화를 하지 않는 프로토콜이다보니 보안성이 취약한 문제가 있었습니다.
해당 문제를 극복하기 위해 암호화를 하는 http프로토콜을 https라고 합니다.
(그렇다고 100% 보안성이 확보된것은 아니지만 그래도 기존의 http보단 보안성이 우수해요)
UDP(User Datagram Protocol, 유디피)
비연결형 데이터그램 방식의 프로토콜로 신뢰성을 보장하지 않아요.
TCP에 비해 구조가 단순하고 빨라요.
UDP는 데이터를 빠르게 전송하는 데 중점을 둔 프로토콜이에요. 하지만 데이터를 안전하게 전송하는 것은 보장하지 않아요.
UDP는 데이터를 빠르게 보내지만, 데이터가 잘 도착했는지 확인하지 않아요.
TCP(Transmission Control Protocol, 티씨피)
연결형 가상회선 방식의 프로토콜로 신뢰성을 보장합니다.
UDP에 비해 구조가 복잡하고 느려요.
TCP는 데이터를 안전하고 정확하게 전송하는 데 중점을 둔 프로토콜이에요.
TCP는 데이터가 잘 도착했는지 확인하고, 문제가 있으면 다시 보내요.
캡슐화, 상속, 다형성, 추상화
비유를 통한 설명
캡슐화를 이해하기 쉽게 마법의 상자에 비유해 볼게요.
캡슐화는 마법의 상자와 같아요.
마법의 상자 안에는 여러 가지 물건이 들어 있어요. 하지만 상자를 열지 않고는 그 안에 무엇이 들어 있는지 알 수 없어요.
상자 위에는 버튼이 있어서, 이 버튼을 누르면 상자 안에 있는 물건을 꺼내거나 넣을 수 있어요. 이렇게 하면 상자 안의 물건을 안전하게 보관할 수 있고, 함부로 만지지 못하게 보호할 수 있어요.
비유를 통한 설명
상속을 이해하기 쉽게 부모와 자식의 관계에 비유해 볼게요.
상속은 부모와 자식 관계와 같아요.
부모가 가지고 있는 특징(예: 눈, 코, 입)을 자식이 물려받아요.
자식은 부모의 특징을 그대로 물려받지만, 자신만의 고유한 특징도 가질 수 있어요.
비유를 통한 설명
다형성을 이해하기 쉽게 만능 도구에 비유해 볼게요.
다형성은 만능 도구와 같아요.
같은 도구를 사용해도 상황에 따라 다르게 동작해요. 예를 들어, 만능 도구는 상황에 따라 가위, 칼, 드라이버로 변신할 수 있어요.
하나의 도구가 여러 가지 일을 할 수 있는 것처럼, 다형성은 하나의 메서드가 다양한 방식으로 동작할 수 있어요.
비유를 통한 설명
추상화를 이해하기 쉽게 자동차 운전에 비유해 볼게요.
추상화는 자동차 운전과 같아요.
자동차를 운전할 때는 핸들, 페달, 기어 등만 사용해요. 엔진 내부가 어떻게 작동하는지는 몰라도 운전할 수 있어요.
복잡한 내부 구조는 숨기고, 운전에 필요한 중요한 부분만 제공하는 것이 추상화예요.
요약
캡슐화(Encapsulation): 데이터와 메서드를 하나로 묶어 보호하는 것.
비유: 마법의 상자
상속(Inheritance): 기존 클래스를 바탕으로 새로운 클래스를 만드는 것.
비유: 부모와 자식 관계
다형성(Polymorphism): 하나의 이름이 여러 가지 형태로 사용될 수 있는 것.
비유: 만능 도구
추상화(Abstraction): 복잡한 시스템에서 중요한 부분만을 선택하여 단순화하는 것.
비유: 자동차 운전
데이터베이스 관리 시스템(DBMS)에서 사용하는 여러 종류의 언어에 대해 잠깐 소개할게요. DBMS에서는 데이터를 정의하고 조작하며 제어하는 다양한 언어가 사용돼요. 이 언어들은 크게 DDL, DML, DCL로 나눌 수 있어요.
DDL (Data Definition Language): 데이터베이스의 구조를 정의하는 언어예요. 예를 들어, 테이블을 만들거나 삭제할 때 사용해요.
예시: CREATE TABLE, DROP TABLE
DML (Data Manipulation Language): 데이터베이스 안의 데이터를 조작하는 언어예요. 예를 들어, 데이터를 삽입하거나 수정, 삭제할 때 사용해요.
예시: INSERT INTO, UPDATE, DELETE
DCL (Data Control Language): 데이터베이스의 접근 권한을 제어하는 언어예요. 누가 데이터에 접근할 수 있고, 어떤 작업을 할 수 있는지를 결정해요.
DCL (Data Control Language)는 데이터베이스에서 사용자의 권한을 관리하고 제어하는 언어예요. 주로 데이터베이스의 보안과 권한 관리를 위해 사용돼요. DCL 명령어는 데이터베이스 관리자(DBA)가 사용자의 권한을 부여하거나 취소할 때 사용해요.
주요 DCL 명령어
GRANT: 특정 사용자에게 데이터베이스 작업을 수행할 수 있는 권한을 부여해요.
이 명령어는 user1에게 employees 테이블에서 SELECT (조회) 작업을 할 수 있는 권한을 부여해요.
REVOKE: 특정 사용자에게 부여된 권한을 취소해요.
DCL을 이해하기 쉽게 학교 도서관에 비유해 볼게요.
GRANT는 도서관 사서가 학생에게 특정 책을 대출할 수 있는 권한을 부여하는 것과 같아요.
예를 들어, 도서관 사서가 학생에게 특정 책을 빌릴 수 있도록 허락하는 거예요.
REVOKE는 도서관 사서가 학생에게 부여한 대출 권한을 취소하는 것과 같아요.
예를 들어, 도서관 사서가 학생에게 더 이상 특정 책을 빌릴 수 없도록 허락을 취소하는 거예요.
요약
DCL (Data Control Language): 데이터베이스에서 사용자 권한을 관리하고 제어하는 언어예요.
GRANT: 특정 사용자에게 데이터베이스 작업을 수행할 수 있는 권한을 부여해요.
REVOKE: 특정 사용자에게 부여된 권한을 취소해요.