Part 01. Hello world : 시작하기 전에
> 주절주절
도저히 시간도 안 나고, 정신도 없고, 생활비에 집중하다보니 해야하는 사전 공부를 이제야 열었다 ..
다행인 부분은 조금이나마 알고 있는 부분이라는 거!?! 가볍게 읽으면서 정리해봐야지!
목표는.. 14일까지 대충 다 끝내는 건데.. 되려나...(안될듯 양이 좀 많음)
지금도 알바중에 하는 중^^
1. 프로그래밍 언어가 다양한 이유
- 컴파일 여부, 성능/안정성과 편의성의 Trade-off 관계, 패러다임
1) 컴파일 여부
- 컴파일 : 소스코드 -> 기계 언어로 번역하는 일
- 컴파일을 하는 시점과 방법을 기준
(1) 컴파일 언어
- 소스코드로 이루어진 프로그램이 실행되기 전, 기계 언어로 전부 바꾸고 실행
- 장점) 런타임에(프로그램 실행 중간) 번역하는 과정 없음, 실제 프로그램이 실행될 동안의 문법오류 등 예상치 못한 에러를 마주칠 확률이 적음
- 단점) 처음 컴파일 시간이 좀 걸림, 번역하는 중 문법을 검사하는 등 별도의 처리가 필요 이로 인해 에러를 미리 무자해야함
(2) 인터프리 언어
- 실행과 동시에 한 줄 한 줄 해석하고 실행
- 장점) 중간언어로 해석하고 실행하기에 별도의 컴파일 필요 없음
- 단점) 컴파일 언어의 장점들
2) 성능/안정성과 편의성의 Trade-off 관계
- 일반적으로 성능과 개발 편의성은 Trade-off의 관계가 성립
: 프로그래밍 언어가 실행되는 환경에서 언어 자체적으로 더 많은 것들을 지원해줄 수록(메모리 관리, 타입 추론 등) 해당 언어로 작성된 프로그램들의 성능과 때로는 안정성이 일반적 으로 떨어지게 되기 때문
- 프로그램 동작의 커다란 두 가지 자원 : 메모리(저장공간), 연산능력
*Trade-off : 하나를 얻으면 하나를 잃는 관계
3) 프로그래밍 패러다임
- 프로그래머에게 프로그래밍의 관점을 갖게 해주고, 결정하는 역할을 해주는 것
- 대표적인 패러다임 : 절차형, 객체지향형, 함수형
2. 이런 것들을 궁금해야하는 이유
1) 자연스럽게 Js를 공부하고 용어에 친숙해지기 위해
2. 컴퓨터는 생각보다 멍청하고, 신기한 일이 일어나지 않으며, 당연한 것도 하나도 없어서 항상 궁금해 해야하므로
// 인정 멍청한 컴퓨터..