기술 습관/CS 지식 [프로그래머스] 타입스크립트로 함께하는 웹 풀 사이클 개발 9-05 - 1. 왜 컴파일 언어를 이해해야 하는가 프로그래밍의 기본 원리 모든 프로그래밍 언어의 동작원리는 거의 동일 JS같(인터프리터 언어)은 스크립트 언어로는 동작 원리를 이해하기 힘든 구조 C언어(컴파일 언어)의 변수, 데이터타입, 배열, 포인터 등의 동작 원리들은 JS 언어 동작의 근간을 이룬다. 타입을 변수와 함수에 기본으로 사용해보면 타입스크립트를 더 쉽게 이해. 프로그래밍의 개념 개발자가 소프트웨어를 만드는 과정 개발의 3단계 과정 구상 추상적 설계 머릿 속 추상적인 내용을 문서화 = 구체화 구현 프로그래밍 언어란? 언어란 사람과 사람간의 통신 수단 컴퓨터 언어란 사람과 컴퓨터간의 통신 수단 ( 컴퓨터끼리의 통신 수단은 기계어) 프로그래밍 과정 내 생애 최초 C언어로 Hello World 출력하기 Online C Compiler - online editor C언어에서의 함수 형태 int main (void) { // 함수의 내용 } C언어의 대표적 출력 함수 printf("Hello World\n"); C언어는 엄격한 문법 문장의 끝 세미콜론 작성 → 컴파일러가 세미콜론 단위로 문장을 해석하기 때문 리턴 값 return 0; 은 함수의 수행이 끝남을 의미. 리턴값 0 자체에는 아무런 의미가 없다. 주석문을 사용하자 사용하는 이유 어떤 단어나 문장에 대한 구체적인 부연 설명 프로그래밍에서 주석은 필수 // 짧은 주석문 /* 긴 주석문 */ /* Date : 2024.04.26. Author : Jihee Eom Remark : "Hello World to the screen output" */ 변수와 자료형 변수란 무엇인가 변경 가능한 수 어떤 값이 들어갈 지 예측할 수 없다. JS는 변수에 입력된 값을 확인한 뒤 해당 값의 메모리를 결정 기본 4바이트 차지 변수를 사용하는 이유 메모리 상 올라가있는 수많은 데이터를 어떻게 구분할 수 있는가. 메모리의 주소값(유니크값)을 사람이 일일히 다 기억할 수 있는가 → 주소값 기억하기보다 의미있는 이름을 기억하는 것이 쉽다. 우리가 사용할 메모리 공간에 이름을 부여하는 것이 변수. 친구의 집을 집주소로 기억하지 않고 철수네로 기억하는 원 Lucky 가 변수 변수와 자료형 메모리 영역 : 크게 코드 영역 / 스택 영역 / 힙 영역 / 데이터 영역 총 4가지 구분 생성되는 객체는 대부분 힙 영역에서 생성.. 콜스택 메모리의 적용 매개변수도 지역변수이다. 우리가 지금껏 사용한 지역변수 및 매개변수들은 모두 스택 메모리를 사용 이러한 지역변수 및 매개변수는 다음과 같은 구조로 저장된다. 스택이므로 소멸 시 d>c>b>a 순서대로 소멸 동적메모리 할당 시 힙 영역 사용 (객체지향에서 new 연산자 사용시 전부 힙 영역 메모리 사용..) 콜스택, 메모리 힙의 데이터 저장 구조 원시 타입 데이터 변수 a에는 10이 저장된 콜스택 메모리의 주소값이 저장 변수 식별자 a 자체는 콜스택 상의 실행 컨텍스트의 렉시컬 환경이라는 곳에 저장된다. 참조 타입 데이터 메모리 힙의 주소값이 저장된 콜스택의 주소값이 각각 b,c,d에 저장. 즉 참조 타입의 데이터 자체는 힙메모리에 생성되어있다. (직접 갖고있는 것이 아닌 간접적으로 주소값만을 갖고있음) 원시타입 변수 생성 int a = 10; int b = 20; 원시타입 데이터 값은 콜스택에 저장, 데이터 값이 저장된 콜스택의 주소값은 변수 a, b에 각각 저장 원시 타입 재할당 int a = 20; 변수 a에 20을 재할당 시 본인의 메모리에 있는 값을 변경하는 것이 아닌 기존 20이 저장된 주소값으로 교체. a에 저장된 주소값은 20을 가리키고 있던 b의 주소값과 동일해진다. 없는 값으로 재할당 시 새로운 메모리에 값을 할당하여 주소값을 재할 주소값을 저장하는 변수를 변수를 포인터 변수라 하는데 이러한 구조가 포인터 구조이다. 가비지 컬렉터 더이상 참조되지 않는 데이터는 가비지 컬렉터에 의해 적절한 시점에 메모리에서 해제. 자료형이란 선언한 변수가 얼만큼의 메모리 공간을 할당할 것인지 결정 음식의 종류에 따라 그릇의 용도가 다른 것과 같은 원리 정수형 정수란 0을 포함하는 부호가 있는 수 실수형 소수점 이하를 가지는 수. 대표적으로 float, double 이 있다. 과거에는 float를 많이 사용했으나 현재에는 double을 많이 사용 문자형 숫자만 인식하는 컴퓨터가 문자를 표현하기 위해 특정 숫자와 문자를 대응하여 사용 아스키 코드 표준에 의거 A = 65 b = 98 1 = 49 상수에 관하여 상수란 무엇인가 변하지 않는 수 메모리공간에 수가 존재하지만 그 값을 변경할 수 없다. const 사용시 이후에 값을 변경할 수 없다. 따라서 초기화 시 값을 정의해주어야하며 하지 않을 경우 쓰레기 값이 저장됨(C언어) 사용자로부터 데이터 입력 scanf 사용자로부터 데이터를 입력받고자 할 때 사용하는 함수 데이터 입력시의 구조를 생각해보자. & : 주소연산자 키보드로 입력한 값은 어디로 전달되는 걸까? 키보드 하드웨어가 연결된 곳은 운영체제(OS) → 입력한 키값은 운영체제의 시스템 큐에 전달 → 어떻게 꺼낼 것인가 (=서울에서 김서방 찾는 셈) → 김서방의 주소를 알면 꺼낼 수 있다. 그래서 int input의 주소를 구하는 연산자인 &을 붙여서 scanf 사용 평가문제 사용자로부터 1개의 정수를 입력 받아 입력 받은 수의 5를 곱한 결과를 출력하세요 사용자로부터 알파벳 문자를 하나 입력 받고 이에 해당하는 숫자를 출력하세요 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기기술 습관 Contents 프로그래밍의기본원리 개발의3단계과정 프로그래밍언어란? 프로그래밍과정 C언어에서의함수형태 주석문을사용하자 사용하는이유 변수란무엇인가 변수를사용하는이유 변수와자료형 콜스택메모리의적용 콜스택,메모리힙의데이터저장구조 자료형이란 정수형 실수형 문자형 상수란무엇인가 평가문제 댓글 0 + 이전 댓글 더보기