티스토리 뷰

 

안녕하세요 잡다입니다.

11편에서 번역과 컴파일에 대해 배워봤습니다.

최대한 쉽게 설명드리고 싶었는데...설명이 잘 되었는지 모르겠네요 ㅎㅎ

오늘은 본격적으로 프로그래밍에 사용되는 용어에 대해 배우게 될 것입니다.

생소한 내용이 많아 일부로 분량은 조금만 잡았습니다.

그럼 시작하겠습니다.


 

3과목 프로그래밍 일반 


7. 변수와 상수


7-1)변수(Variable)

하나의 값을 저장할 수 있는 기억 장소를 의미하며, 변수명을 만드는 규칙에 따라 임의로 이름을 붙일 수 있다. 이렇게 정해진 변수는 일반적으로 계속 유지된다.

->예를 들어 x=1이라는 것이 있으면, x가 변수입니다. x는 1이라는 것이 기억될 수 있는 장소이며, 1이라는 의미로 계속 사용하고 싶기 때문에 일반적으로 계속 유지합니다.


7-2)상수(Constant)

수명 시간 동안 고정된 하나의 값과 이름을 가진 자료

->예를 들어 x=1에서 상수는 1입니다. 이는 변하지 않는 자료입니다.

 

8. 선언문 및 배정문


8-1)선언문(Declaration)

프로그램 실행 시 사용할 데이터의 속성 정보를 언어 번역기에게 알려주는 문장


->예를 들어 int x변수 x라는 이름을 가졌으며, 정수 타입입니다라고 선언해주는 것입니다. 이런 식으로 이름, 타입 혹은 함수 동작 알려주는 것이 선언문이라는 것입니다. 이름과 무엇을 하는지를 미리 알려준다고 생각하시면 이해가 쉬우실 것입니다.

 

8-2)배정문(Assignment Statement)

변수의 내용을 변경하는 문장


-> sum = A+B 라는 문장이 예시가 될 수 있습니다. 


-> <7.변수와 상수>,<8.선언문 및 배정문> 문제는 실제로 프로그램밍된 자료를 주고 결과값을 묻는 문제가 나옵니다. 실제 프로그래밍을 접하지 않은 사람들에게는 진입장벽이 좀 높습니다. 하지만, 이 문제는 1문제 이상 거의 나오지 않기 때문에 효율적으로 공부하려면 다른 내용을 더 완벽하게 하는 것이 좋습니다.


9. 형 검사와 변환


9-1)형 검사(Type Checking)

각 연산이 올바른 자료형의 인수들을 받는지 행하는 검사로 정적 형 검사와 동적 형 검사가 있다.

정적 형 검사번역 도중에 검사를 실시하기 때문에 컴파일러 언어에 적합하고, 형 정보 유지를 위한 저장소가 없어도 된다. 하지만 융통성이 떨어지는 단점이 있다.

동적 형 검사실행 중에 검사를 실기하기 때문에 인터프리터 언어에 적합하고, 실행되는 과정 중에 자료형을 변경할 수 있기 때문에 융통성이 있다. 형 변환(Type Conversion)이라고도 한다.


->정적 형과 동적 형 검사의 차이점에 대해 알고 계셔야 합니다. 어떤 언어에 적합한지가 정말 중요합니다.


9-2)형 확장(Widening)

작은 자료형을 큰 자료 형으로 변환 시키는것


->말 그대로 자료형을 확장하는 것입니다. 정수형을 실수형으로 변환시키는 것과 같은 것을 의미합니다.


9-3)형 축소(Narrowing)

큰 자료형을 작은 자료 형으로변환시키는것을의미한다.


->형 확장과 반대되는 개념입니다. 실수형을 정수형으로 변환시키는 것과 같은 것입니다. 


10. 바인딩(Binding)


10-1)바인딩이란?

어떤 변수의 명칭과 그 메모리 주소, 데이터형 또는 실제 값을 연결하는 것으로 변수들이 갖는 속성이 완전히 결정되는 시간을 Binding Time이라고 한다.


->다수의 변수를 묶는 것이라고 이해하시면 됩니다. 정의보다 Binding time이 무슨 시간을 의미하는 것인지가 중요합니다.


10-2)종류

정적 바인딩(이른 바인딩)

실행 시간 전에 일어나며 끝날 때까지 메모리를 가지고 있다. 실행 효율성은 좋으나, 메모리 낭비가 발생하고 융통성이 없다.

동적 바인딩(늦은 바인딩)

실행 시간 중에 일어나며 메모리 할당 및 반환이 가능해서 메모리 낭비가 없고 융통성이 있다. 하지만 실행 효율성이 좋지 않다. 


->두 바인딩의 차이를 알고 있으면 됩니다. 하나만 외우면 나머지는 거의 반대이기 때문에, 외우는데 부담은 없을 것입니다.


11. 자료 구조


11-1)스택(Stack)

자료의 삽입과 삭제가 한쪽 끝(TOP)에서만 일어나는 LIFO(Last In First Out) 식의 자료 구조


11-2)큐(Queue)

2개의 포인터를 사용해 한쪽 끝에서 자료를 삽입하고, 반대쪽 끝에서 자료를 삭제하는 FIFO(First In First Out)방식으로, 운영체제의 작업 스케줄링에 적합하다.


11-3)데크(Dequeue)

스택과 큐를 복합한 형태로, 서로 다른 방향에서 삽입과 삭제가 모두 가능한 자료 구조


->각 자료구조가 어떤 특징을 가지고 있고 무엇이 LIFO, FIFO인지 알고 있어야합니다. 또한, 영어로 보기가 출제되는 경우가 많이 때문에 영어 단어도 외워야합니다.


 

---------------------------------------------------------


오늘 강의도 이렇게 끝났습니다. 

프로그래밍은 단순 암기는 아니라서 저는 좋은데...다른 분들도 그랬으면 하는 바램입니다 ㅎㅎ

포스팅된 내용 중에 잘 모르는 내용 혹은 잘 못된 내용은 꼭 댓글로 알려주세요!

그리고 제가 프로그래밍 자료를 보고 푸는 문제에 대해서는 일부로 많이 설명안했습니다.

물론 기초만 설명하면 이해 못하실 분은 없겠지만, 한 문제를 맞추기 위해 많은 양을 공부하는 것은 비효율적이라는 생각을 했고, 실습에도 프로그래밍 관련된 내용은 나오지 않아서 그렇습니다. 우리의 목표는 합격이니까요!

그럼 오늘 포스팅도 마친 잡다는 이만 인사드리겠습니다. 안녕~!

공감과 구독, 댓글은 큰 힘이 됩니다.ㅎㅎ

 

반응형
댓글