본문 바로가기

분류 전체보기

[Programming Language] 3. 자료형 (1) 직전글 2023.07.09 - [Language] - [Programming Language] 2. 변수, 바인딩, 영역 ● 서론 - 자료형(Data Type) : 데이터 값들의 모임과 그들 값들에 대한 미리 정의된 연산들의 집합 - 사용자-정의 타입(User-defined Type) : 사용자가 정의한 자료형 (C언어 typedef) 타입에 대한 의미있는 이름을 사용해 판독성이 올라가며, 프로그램 수정에 도움이 됨.(타입 선언문만 변경해서 타입을 변경 가능하기 때문) - 추상 자료형(Abstract Data Type) : 사용자 정의 타입에서 더 나아간 개념 (Class) - 객체 : 사용자-정의 추상 자료형의 인스턴스 ● 기본 자료형 다른 자료형을 이용하여 정의되지 않은 데이터 타입. 거의 모든 프로.. 더보기
[Programming Language] 2. 변수, 바인딩, 영역 직전글 2023.07.07 - [Language] - [Programming Language] 1. 서론 ● 변수 (Variable) 컴퓨터 메모리 셀이나 셀들의 모임에 대한 추상화. 흔히 메모리 위치에 대한 이름으로 생각하지만, 변수는 이름 외에도 몇 가지 속성을 더 가짐. (총 6개의 속성을 다룰 예정) 1. 이름 변수의 가장 기본적인 속성으로, 어떤 개체를 식별하기 위해 사용되는 문자열임. 식별자(Identifier)라는 용어와 혼용되어 사용됨. ㄴ 형식 길이 제한 : 언어 마다 제한하는 경우도 있고 안하는 경우도 있음. 표기법 : 낙타 표기법(myVariable), 스네이크 표기법(my_variable) 등 다양한 방법이 존재함. 대소문자 구분 : 많은 언어에서 대소문자를 구분함.(== 다르게 인.. 더보기
[Programming Language] 1. 서론 ● 들어가기 전 블로거 한마디 과목은 프로그래밍 언어 설계 및 구현시 고려되어야 하는 사항과 그에 따른 언어별 특징 등을 배우는 과목입니다. 각종 언어들에 대한 예제 코드가 나오지만, 그에 대한 문법적인 설명은 따로 제공하지 않으므로, 기본적인 문법, 특히 C, Python, Java 세 언어의 기본문법은 알고 보시는게 좋습니다. ● 컴퓨터 구조가 언어 설계에 미친 영향 현대의 컴퓨터 구조는 모두 폰 노이만 구조에 기반함. - 폰 노이만 구조 데이터와 프로그램이 모두 동일한 기억 장소에 저장됨 명령어를 실행하는 CPU는 기억 장소로부터 떨어져 있음. 명령어와 데이터는 CPU에 전달되어야 하고, 연산 결과는 다시 기억 장소로 전달되어야 함. (인출-실행 사이클, 해당 과정에서 Program Counter,.. 더보기
컨테이너 관련 개념 정리 컨테이너의 정의 컨테이너 기술은 소프트웨어를 실행하기 위한 가상화 기술이다. 컨테이너는 애플리케이션과 그 애플리케이션을 실행하는 데 필요한 모든 종속성 및 구성 요소를 포함하는 완전한 실행 환경을 제공한다. 이러한 컨테이너는 가볍고 이식성이 높으며, 동일한 환경에서 안정적으로 실행될 수 있도록 도와준다. 컨테이너 기술의 핵심은 컨테이너화된 애플리케이션을 호스트 운영 체제로부터 격리하는 것이다. 이를 통해 서로 다른 애플리케이션과 시스템 간의 충돌을 방지하고, 하나의 시스템에서 여러 개의 컨테이너를 실행할 수 있다. 가장 인기 있는 컨테이너 기술 중 하나는 Docker로, 컨테이너를 만들고 실행하며 관리하는 데 사용되는 플랫폼이다. Docker는 애플리케이션 및 해당 종속성을 이미지로 패키징하여 컨테이너로.. 더보기
가상화 개념 정리 가상화(Virtualization) 하드웨어 리소스를 가상적으로 분리하여 여러 개의 가상 환경을 생성하고 관리하는 기술. 실제 하드웨어를 물리적으로 분리하거나 수정하지 않고도 가상의 리소스를 제공함으로써 리소스의 효율성, 이용률, 유연성을 향상시킬 수 있다. => 쉽게 말해서, 하드웨어 하나를 가상으로(소프트웨어를 통해) 나눠서 여러 대처럼 사용하게 하는 기술이다. 한 하드웨어가 구동될 때 한 환경만 실행된다면 남는 리소스가 생기기 마련인데, 이를 쪼개서 다른 환경을 운영하는데 사용하면 자연스레 효율성, 이용률이 올라가게 된다. (ex. 컴퓨터 한 대 + 리눅스 한 개 → 컴퓨터 한 대 + 리눅스 두 개 이상) 가상화의 주요 용도 및 효과 서버 가상화(Server Virtualization): 단일 물리.. 더보기
[DB] Ch05. 관계 대수와 관계 해석 (2) 2. 관계 해석 관계 해석은 원하는 정보가 무엇이라는 것만 선언하는 비절차적인 특성을 가지고 있음. 수학의 프레디킷 해석에 기반을 두고 있으며, 프레디킷이라 하는 것은 실행 결과가 반드시 참 또는 거짓이 되는 함수를 말함. 관계 해석에는 '튜플 관계 해석'과 '도메인 관계 해석'이 있고, 표현 방법의 차이는 있지만 표현 능력은 동등함. 2.1. 튜플 관계 해석 '튜플 해석'이라고도 함. 원하는 릴레이션을 튜플 해석식으로 정의하는 표기법. 2.1.1. 튜플 변수 '범위 변수'라고도 함. 지정된 릴레이션의 튜플을 하나 씩 값으로 취할 수 있는 변수임. 선언은 R(t)의 형식으로 하는데, t가 R의 튜플 변수이고 취하는 값의 범위는 릴레이션 R의 튜플로 한정한다는 것을 명세한다는 뜻임. 이때 R(t)를 튜플 .. 더보기
[DB] Ch05. 관계 대수와 관계 해석 (1) 관계 데이터 모델에서의 릴레이션을 조직하기 위한 연산에는 '관계 대수'와 '관계 해석'이라는 두 가지 타입의 정형어가 있음. 데이터 획득 절차에 대해 얼마나 자세히 명세해야 되느냐에 따라 '절차 언어'와 '비 절차 언어'로 구분할 수 있음. 이런 면에서 볼 때 관계 대수는 절차 언어이고, 관계 해석은 비 절차 언어임. 둘은 데이터 언어의 표현력이나 기능면에서 동등함. 데이터 언어가 있을 때 이 언어로써 관계 해석이 표현할 수 있는 모든 질의를 표현할 수 있을 때 그 언어를 '관계적 완전'하다고 함. 1. 관계 대수 릴레이션을 처리하기 위한 연산의 집합으로, 각 연산의 피연산자가 모두 릴레이션이고, 연산 결과 또한 릴레이션임. 관계 대수 연산은 두 그룹으로 나누어 설명 가능하며, 첫 번째 그룹은 일반 집합.. 더보기
[DB] Ch04. 관계 데이터베이스 1. 관계 데이터 모델 70년 IBM의 E.F.코드에 의해 처음 제안되었음. 외적으로는 단순한 테이블 형태이지만, 이론적으로는 수학적인 릴레이션을 기초로 함. 통상적인 테이블의 개념은 관계 데이터베이스 시스템이 기반으로 하고 있는 관계 데이터 모델 환경 하에서 사용하는 학술적인 용어와 다름. [ 통상적인 테이블 개념 => 관계 데이터 모델 용어 ] 테이블 그 자체 => 릴레이션(Relation) 테이블 이름 => 릴레이션 이름 열 => 애트리뷰트(Attribute) 행 => 튜플(Tuple) 데이터의 가장 작은 논리적 단위는 개개 데이터 값, 즉 애트리뷰트 값임. 데이터 값들은 더 분해할 수 없는 '원자 값(Atomic Value)'만을 허용함. 하나의 애트리뷰트가 취할 수 있는 같은 타입의 모든 원자 .. 더보기