2024.04.26 이번 주간은 다시 과제 요약제출인가보다 'ㅅ'
배운 내용 요약
타입스크립트 기초를 들어가며 컴파일 언어와 인터프리터 언어의 차이에 대해 배웠고,
JS는 인터프리터 언어이기에 타입스크립트를 이해하려면 컴파일언어에 대한 이해가 필요하기에 C언어로 간단하게 배우고 실습했다. 변수, 자료형, 상수에 대해 배움!
왜 컴파일 언어를 이해해야 하는가
컴파일 언어 VS 인터프리터 언어
- 컴파일 언어: 코드 전체를 한번에 해석해서 실행할 수 있는 언어로 변경해주는 것 =C언어
- 인터프리터 언어: 코드를 한 라인씩 해석하면서 실행해가는 언어 =JS, 파이썬
왜 컴파일 기반 언어를 이해해야 할까?
=이후에 타입스크립트를 사용할 것이기 때문
(컴파일 과정을 통해 코드를 JS코드로 변환시켜 줌)
프로그래밍과 프로그래밍 언어의 개념
프로그래밍: 프로그램을 만드는 과정
프로그래밍 언어: 컴퓨터 언어는 사람과 컴퓨터 간의 통신 수단
⇒ 사람의 언어를 컴퓨터 언어로 바꾸는 과정이 컴파일
- 컴파일: 사람의 언어를 컴퓨터 언어로 바꾸는 과정
- 링크: 라이브러리 엮어서 실행 파일 만드는 과정
⇒ 근데 요새는 컴파일+링크 엮어서 빌드라고도 함
내 생애 최초 C언어로 Hello World 출력하기
[C언어] Visual Studio 2022 설치하고 C 프로그램 만들기
C언어 프로그램을 만들 때는 보통 비주얼 스튜디오 2022 커뮤니티 컴파일러를 사용하며 편의상 VC++라고도 합니다. Visual Studio Community 항목에 있는 [무료 다운로드]를 클릭합니다.
hongong.hanbit.co.kr
=> 걍 이거 참고했는데 사실 프로그램 설치 안하고
GDB online Debugger | Compiler - Code, Compile, Run, Debug online C, C++
Online GDB is online compiler and debugger for C/C++. You can compile, run and debug code with gdb online. Using gcc/g++ as compiler and gdb as debugger. Currently C and C++ languages are supported.
www.onlinegdb.com
GDB online Debugger에서 바로 실습가능 ㅎㅅㅎ
C언어에서 중요한 것
1) 엄격한 문법:
명확한 코드작성을 통해 코드의 모호한 상황이나 에러를 방지하기 위해(=사전에 잠재적 오류 막음
문장 끝에 반드시 세미콜론;
2) 리턴값(중요)
return 0;
1) 함수의 수행이 끝났다
2) 리턴하는 실제 값 외부로 전달하겠다
변수와 자료형
변수란 무엇인가?
- 변경이 가능한 수
즉, 뭔가를 담는 그릇이나 용기 - 메모리의 기본 단위는 바이트
- 주소값: 메모리에서 유일한 유니크 값
메모리 영역 =스택, 힙영역만 이해하면 됨
포인터변수 = 주소값 저장하는 변수
스택
: 차곡차곡 쌓는다, 바닥에 하나하나 쌓아올림. 나중에 들어온애가 먼저 나감 (데이터 들어온 순서대로)
힙(=큐)
: 시스템큐, APP큐에서 사용. 동적메모리 할당 시에도 사용
- 원시타입 : 일반적인 정수, 실수, 문자같은 기본타입
⇒ 스택메모리에 그냥 저장 됨 - 참조타입 : 다른 메모리 참조 ⇒ 힙메모리(포인터)
자료형이란?
- 변수 선언할 때 어떤 용도(성격)의 데이터를 사용할건지에 따라 미리 결정해줘야 함
→ 그래야 시스템이 그에 맞는 메모리공간확보 - 자료형을 제공하는 이유? 효율적인 메모리 공간 활용을 위해
정수
: 0을 포함한 부호가 있는 수
e.g. int
실수
: 소수점 이하를 가지는 수
e.g. float, double
상수란?
- 변하지 않는 수
- 상수도 당연히 메모리공간 차지!
다만 다른 것은…한번 입력한 값은 변경할 수 없다 - const : 선언과 동시에 초기화해야 함
초기화 안했다고 아무런 값이 없는게 X 쓰레기값이 들어있음 ^^
사용자로부터 데이터 입력
scanf: 사용자로부터 데이터 입력 받음
&변수: 주소값을 나타냄
'프로그래머스 > 프로그래머스 Study' 카테고리의 다른 글
[10-1] 타입스크립트 기초2 (0) | 2024.04.29 |
---|---|
[프로그래머스 9-1] jwt/authorization/ try-catch/Throw (0) | 2024.04.28 |
[3/25] 오늘의 과제제출 (0) | 2024.03.25 |
[프로그래머스 3-5] http vs express/json (0) | 2024.03.18 |
[프로그래머스 3-4] Node.js란/모듈/npm/콜백함수/템플릿문자열 (0) | 2024.03.18 |