프로그래밍의 기본 원리
왜 컴파일 기반 언어를 이해해야 하는가
- 컴파일언어 : 모든 코드를 한번에 해석하고 실행한다.
- 인터프리터 언어 : 코드를 한줄씩 해석하고 실행한다.
- 타입스크립트 공부하려면 컴파일 개념 이해해야 한다.
➡️ 타입스크립트가 자바스크립트로 변환하는 과정을 컴파일이라고 한다.
프로그래밍의 개념
- 프로그래밍 : 소프트웨어가 소프트웨어를 개발하는 과정(PD가 TV프로그램 만들듯이. PD도 개발자)
- 개발 3단계 : 구상 - 설계 - 구현
- 프로그래밍 언어
- 사람언어 - 컴퓨터 언어 - 기계어(0과 1로 이루어짐)
- 컴퓨터 언어를 기계어로 변환해주는 과정이 컴파일
- 프로그래밍 작성 과정
1) 설계 : 구상한 것 기록
2) 원시코드 작성 : 직접 요리
3) 컴파일 : 소스코드를 이진코드로 변환하는 과정
4) 링크 : 실행파일 만드는 과정
C언어로 Hello World 출력하기
C언어 테스트
- 온라인C 컴파일러
- 비쥬얼 스튜디오 커뮤니티
c언어에서의 함수 형태
int main(void){
}
- 출력함수 : prinf
- 엄격한 문법
- 문장 끝 세미콜론
- 컴파일 기반 언어는 문자을 마칠 때 반드시 세미콜론을 찍어주어야 한다.
컴파일러는 세미콜론 단위로 문장을 해석하기 때문
- 컴파일 기반 언어는 문자을 마칠 때 반드시 세미콜론을 찍어주어야 한다.
- 리턴값 return 0
- 함수의 수행이 끝남을 의미
리턴값 0 자체는 의미가 없다.
- 함수의 수행이 끝남을 의미
- 문장 끝 세미콜론
변수와 자료형
변수란 무엇인가
- 데이터를 담는 용기
- 자바스크립트는 어떤 타입의 데이터든 담을 수 있다.
- 특정 타입을 보고 메모리의 크기를 결정
변수를 사용하는 이유
- 메모리상 주소값을 기억하기 위해 이름 부여
- 우리가 사용한 메모리 공간에 이름을 부여한 것이 변수
메모리 영역
메모리는 크게 코드 영역, 스택 영역, 힙 영역, 데이터 영역 4가지로 구분
- 코드 영역 : 실행 명령어들 저장
- 스택 : 지역변수 및 매개변수 저장
- 힙(=큐 메모리) : 프로그래머가 직접 할당
- 데이터 영역 : 전역변수, static 변수 저장
이벤트 메세지 저장소 ➡️ OS 시스템큐 ➡️어플리케이션 큐
콜스택 메모리의 적용
우리가 지금껏 사용한 지역변수 및 매개변수 등을 모두 스택 메모리를 사용

※ new로 선언하는 것은 힙메모리 사용
콜스택 메모리 힙의 데이터 저장 구조

- 원시 타입 변수 생성
int a = 10; int b = 20;- 원시 타입의 데이터 값은 콜스택에 저장되고, 데이터값이 저장된 콜스택의 주소값은 변수 a, b에 각각 저장됨
- 원시타입 재할당
: 변수 a에 20을 재할당하면 본인의 메모리에 있는 값을 변경하는 것이 아니라 20이 저자된 주소값을 a에 저장한다.
: 변수 b에 30을 재할당하면 새로운 메모리 확보하여 30을 저장하고 b가 가리키는 주소값 교체 - 주소값을 저장하는 변수를 포인터 변수, 이러한 구조가 포인터 구조
- 가비지 컬렉터
➡️ 더이상 참조되지 않는 데이터는 가비지 컬렉터에 의해 적절한 시점에 메모리에서 해제
자료형이란
- 선언한 변수가 얼만큼의 메모리 공간을 할당할 것인지 결정
- 효율적인 메모리 공간을 활용하기 위해서 사용
- 정수형 사용 : int
- 실수형 사용 : float, double
- 문자형 사용 : 특정 숫자와 특정 문자를 대응시키는 방법 사용. 아스키코드 표준에 의거
#include <stdio.h>
int main() {
char ch1 = 'A';
printf("%d, %c", ch1, ch1);
return 0;
}
상수란
- 상수는 변하지 않는 수
- const : 변수에 붙여주면 상수화
- 주의점은 선언과 동시에 초기화 해줘야 한다.
#include <stdio.h>
int main() {
const int TEN;
TEN = 20;
return 0;
}
➡️ 에러남
사용자로부터 데이터 입력
scanf
scanf("서식문자열", &변수);
#include <stdio.h>
int main() {
int input = 0;
scanf("%d", &input);
printf("input: %d", input);
return 0;
}
➡️ 메모리 주소값 이용
<평가문제1>
사용자로부터 1개 정수 입력 받아 입력받은 수에 5 곱한 결과 출력
#include <stdio.h>
int main() {
int input = 0;
scanf("%d", &input);
printf("input: %d", input*5);
return 0;
}
<평가문제2>
사용자로부터 알파벳 문자 하나 입력 받아 이에 해당하는 숫자 출력
#include <stdio.h>
int main() {
char input;
scanf("%c", &input);
printf("input: %d", input);
return 0;
}'데브코스 웹풀스택 과정 > TIL' 카테고리의 다른 글
| 1107 프로그래밍 기초 문법 - 함수 포인터, 동적 메모리 할당, 사용자 정의 자료형, 객체지향언어 특징 (0) | 2025.11.07 |
|---|---|
| 1106 프로그래밍 언어 기초문법 - C언어 포인터 (0) | 2025.11.05 |
| 1002 쿠키와 세션 그리고 JWT(토큰 발행 및 쿠키담기, 유효기간 설정) (0) | 2025.10.02 |
| 1001 express-validator 사용해 유효성 검사 / 검사결과 처리 미들웨어 분리 (0) | 2025.10.01 |
| 0930 타임 존(timezone) 설정, 디비 연동 및 쿼리 가져오기 (0) | 2025.09.30 |