brunch

You can make anything
by writing

C.S.Lewis

by 훈오빵 Oct 25. 2023

[코딩] 백엔드 기초(1)

Terminology


프로그래밍이란?

"알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술"


기계어

- CPU가 직접 이해할 수 있는 비트 단위로 쓰인 컴퓨터 언어


저수준 언어(Low-level language)

- 컴퓨터에 보다 가까운 언어

- 기계어, 어셈블리어


고수준 언어

- C, C++ 등 보다 사람이 이해하기 용이한 언어


컴파일(Compile)

- 사람이 이해 가능한 프로그래밍 언어(C, C++)를 기계어로 변환하는 것


컴파일 언어

- 실행을 위해 컴파일이 필요한 언어

- C, C++, Java 등


인터프리터 언어(Interpreter language)

- 크롬 브라우저는 내장 번역장치가 있어 사람이 컴파일을 하지 않아도 됨

- 사람이 컴파일 명령을 하지 않아도 실행되는 환경에서 쓰이는 언어

- Javascript, Python 등


서버(Server)

- 원격지에 위치한 물리적 컴퓨터

- 서버 자체 + 서버 프로그램 SW

- 유저가 다시 시작할 수 없으므로 무중단 서비스를 구현하는 것이 중요


백엔드(Back-end)

- 데이터베이스에 담겨있는 정보를 불러오는 기능 구현

- 사진, 동영상 등 저장된 정보를 불러오는 기능 구현

- 회원가입 등 화면에서 입력된 정보를 데이터베이스에 저장하거나 트래픽을 처리하는 등의 작업 진행


프론트엔드(Front-end)

- 홈페이지, 모바일 앱, 게임 등 실제 유저가 접하는 화면을 구현하는 것


클라이언트(Client)

- 프론트엔드를 뜻하기도 함

- 핸드폰, PC 등 프론트엔드 결과물이 보여지는 단말기를 의미하기도 함


데이터가공

- 수집된 데이터를 기계학습이 가능하도록 가공하는 것

- 이미지 유사도를 분석하기 위해 각 픽셀의 RGB를 추출하거나 벡터화 하는 것 등


AI모델링

- 머신러닝, 딥러닝 등 AI의 방법을 활용해 결과를 예측하는 알고리즘 구현


프레임워크

- 일반적으로 사용되는 기능들을 재사용, 반복사용 가능하게 구현해 놓은 것



Javascript가 실행되는 환경

1) NodeJS

2) Browser


NodeJS 설치

https://nodejs.org/


Visual Studio Code(에디터) 설치

https://code.visualstudio.com/


NodeJS란?

- JS V8엔진 : Google이 개발한 Javascript 컴파일러

- NodeJS = Javascript runtime : JS 앱을 만들고 실행할 수 있도록 제공된 환경

- JS를 웹브라우저 바깥에서도 사용할 수 있게 해줌. 기존 홈페이지 개발에만 사용되던 JS를 서버나 모바일앱 개발 등에서 활용 가능해짐. JS 한 가지 언어로 서버, 웹페이지, 모바일앱 등 다양한 적용처에 활용 가능해짐(각 언어별 개발자가 불필요해짐)


NodeJS 개발 사례

- Netflix : 기존 Java 기반 서버에서 NodeJS 기반 서버로 이전하는 과정에서 웹사이트의 퍼포먼스가 상승. 서버수 75% 감소

- Trello : 이벤트드리븐, 논블락킹

- Paypal

- LinkedIn

- Uber


NodeJS 장점

- 앱 퍼포먼스 우수

- 생산성

- 방대한 NPM 생태계 https://www.npmjs.com/


 



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari