내가 정리하는 자바스크립트(javascript) 1

besensible·2021년 7월 7일
0

javascript

목록 보기
1/1
post-thumbnail

자바스크립트 왜 공부해?

만 1년 동안 프론트엔드 개발자로 실무에서 일했다. 서비스 오픈은 물론이고 잘 기억은 안 나지만 만 3-4개월이 되었을 때 나는 팀에서 프론트엔드 메인 개발자가 되었고 (영세한 스타트업이었기에 가능했을지도) 여러 컴포넌트를 만들면서 새로 도입되는 기능이나 서비스에 대해서 API 연동, 필요에 따라 Redux 활용 등 개발자로서 면모를 다져왔다. 이직을 준비하면서 내가 얼마나 js에 대해 알고 있는지, 뭔지도 모르고 써왔던 여러 가지에 대해 알아보기로 했다.

아주 오래전 동료로부터 선물(?) 받은 책으로 공부를 하며 궁금한 부분, 이해되지 않는 부분, 나도 모르게 써왔던 부분, 알았는데 명확하게 정립한 부분 등을 정리하며 글을 써 내려 가보려고 한다. 물론 순서도 없고 엉망진창이다. 🤷‍♀️

javascript는 인터프리터 언어

컴퓨터는 기계어만 읽을 수 있어서 우리가 작성한 코드를 기계어로 번역해주어야 한다. 소스를 한꺼번에 묶어서 컴파일한 후 기계어로 번역하는 컴파일 언어가 있고, 소스 코드 한 줄 한 줄 번역 후 실행하는 인터프리터 언어가 있다. js는 한 줄 한 줄 번역하는 인터프리터 언어이다. 프로그램을 바로 실행할 수 있고 동작을 하나하나 확인하면서 프로그램 개발이 가능하다.

컴파일이란 과정을 거치는 컴파일 언어가 더 느리지 않을까? 하고 궁금증이 생기는데, 이는 빌드 과정에 관한 이야기이다. js의 경우 빌드 과정이 없어 코드를 수정하면 서버를 다시 실행하지 않아도 변경사항을 확인할 수 있다.

런타임 시 컴파일 언어에 비해 실행 속도가 느릴 것 같지만 코드를 컴파일하는 컴파일러가 내장되어 있어 실행 속도 측면에서도 단점을 보완하였다고 한다.💻

객체 지향 언어이면서, 또 함수형 언어

🍒 객체 지향 언어

  • 처리와 관련된 데이터와 절차를 하나로 묶어 객체 단위로 관리하는 언어

🍒 함수형 언어

  • 프로그램을 함수로 조합해 구현해 나가는 언어

(참고 : https://velog.io/@kyusung/%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9A%94%EC%95%BD)

응? 그래서 무슨 소리인지? 절차, 프로세스인데 처리 과정이라고 하면 되려나? 절차 지향의 경우 데이터와 절차가 분리되어 있는데 객체 지향은 객체 안에 데이터와 처리 과정을 모두 담은 언어! (라고 이해했다.)

여기서 말하는 (또 내가 이해한 함수형 언어는) javascript를 사용하다 보면 여러 함수를 쓸 수 있다. mdn에서 많은 정보를 얻을 수 있는데 이런 함수들을 조합해서 프로그래밍이 가능하므로 함수형 언어라고 하지 않나 싶다. 🙏 (주변에 선생님이 없다는게 갑자기 .. 쩝)

그래서 책에서 말하는 javascript는 프로토타입을 기반으로 한 객체 지향 언어라고 한다. 넹??? 그러니까, 객체를 생성한 후 프로퍼티와 메서드를 동적으로 추가하는 언어란다.

📌 프로퍼티(Property) - Object를 위해 데이터를 저장.
📌 메서드(Method) - Object가 요청을 받을 수 있는 액션.

(참고 : https://m.blog.naver.com/magnking/220966405605)

📢 '모던 자바스크립트 입문 (이소 히로시 지음)' 책을 공부하면서 정리한 포스트입니다.

profile
많고 많은 사람 중에 그대 한 사람

0개의 댓글