본문 바로가기
내 꿈은 개발자 그렇지만 난 지금...

[개발자로 한 걸음] 프론트엔드? 백엔드? 서버?

by hyun's life_developer 2019. 9. 17.

 

안녕하세요. 초보개발자 시아아빠입니다. 이번 포스팅에서는 사xx, 잡xx 등등 구직 활동 많이 하실텐데요!

제가 구직활동시 이용했던 플랫폼인 사xx, 잡xx 뿐만 아니라 구인 글 보시면 많이들 보실텐데요.

 

바로 프론트엔드(Front-End), 백엔드(Back-End) 등등  많이 보실겁니다. 저는 비전공에 컴맹이다 보니 

어떤 일들을 구하는 건지, 무슨일을 해야하는건지 이해할 수가 없었습니다. 

 

처음보면 어려운 그들에 대하여 알아보겠습니다.

개발자에는 많은 개발자가 있습니다. 웹 개발자, 앱 개발자, 서버 개발자 등등...

다른 개발자들에게도 통용되는 언어이기는 하지만 웹 개발자에게 많이 쓰이는 언어입니다.

 


 

프론트 엔드(Front-End) : 사용자에게 웹 브라우저에서 직접적으로 보여지는 부분

 

백엔드(Back-End) : 웹 브라우저가 주고 받은 데이터를 처리하는 부분

 

데이터베이스(Database) : 백엔드가 다루는 데이터를 정리 및 저장하는 기술들

 

네트워크(Network) : 웹과 컴퓨터 사이의 데이터 통신에 필요한 기술들

 

자료구조(Data structure) : 다루는 데이터를 원하는 형태로 찾기 좋게 연결하는 구조

 

서버/클라우드(Server / Cloud) : 백엔드와 데이터 베이스를 운영할 기술과 환경

 

 


 

구인공고를 보면 프론트엔드 개발자, 백엔드 개발자, 서버개발자, 뭐 이거 저거 구하지요?

 

이런 일들을 하는 사람을 구하는 건데요. 좀 더 자세히 말씀드리겠습니다.

 

 

# 프론트엔드(Front-End)

-  사용자에게 직접적으로 보여지는 부분

 

여러분이 평소에 보시는 네이버, 페이스북, 인스타그램과 같이 눈으로 보기에 각기 다른 디자인을 하고 있지요?

 

보고계시는 이 블로그의 글, 이미지, 구성 역시 프론트 엔드라고 할 수 있습니다.

 

프론트엔드 개발자는 글씨체, 글자 색 등등 사용자의 눈에 보이는 모든 부분을 만지는 것이라고 할 수 있습니다.

 

이 보여지는 제 블로그에서 댓글도 달리고 공감도 눌러주시고 그러면서 이 페이지에 '데이터'를 저장할 수도 있습니다.

 

즉, 프론트엔드(Front-End)에 보여지는 데이터, 입력된 명령을 처리하는 부분이 있다는 뜻이지요!

 

예를들어, 네이버 웹툰을 보고 댓글을 답니다. 거기에 댓글들이 수없이 많고 베스트 댓글도 있고 하지요? 

 

그 댓글들이 데이터이며 그 데이터를 입력된 명령에 따라 처리할 수가 있는데요.

 

그 부분을 처리하는 곳이 '백엔드(Back-End)'라고 합니다.

 

 

# 백엔드(Back-End)

- 프론트엔드와 상호 작용하며 주고받을 '데이터'를 처리하는 부분(이미지, 글 ,링크, 구성) 등

 

네이버 웹툰을 예를들어 댓글이 있고 이 댓글에 좋아요나 싫어요를 누르면 댓글에 대한 처리를 해주는 곳이죠.

 

상호작용을 통해 좋아요의 수가 일정 비율이 되면 베스트 댓글이 되도록 처리하고 프론트 엔드(Front-End)에 넘겨

 

화면에 베스트 댓글로 나오도록 처리해주죠.

 

 

# 데이터베이스 (Database)

- 말씀드린 것처럼 프론트엔드와 백 엔드가 상호 작용하며 '데이터'를 주고 받습니다.

이 데이터는 일시적으로 저장하고 보여주고 할 수도 있지만 오랫동안 보관해야 될 수도 있죠.

 

만약 제가 썼었던 댓글을 찾고싶습니다. 그 댓글의 작성시간, 댓글의 내용, 작성자 등등이 있겠지요.

이 모든 것을 저장하는 것이 Database이며 데이터의 종류는 무궁무진합니다.

 

 

# 자료구조 (Data Structure)

- 위에서 말한 무궁무진한 데이터들을 정리 정돈을 해야 찾을 수가 있겠죠?

데이터의 용도, 데이터의 쓰임 등등에 따라 각각 보관방법, 보관장소 등 다 다를 겁니다.

이것을 설계하는 것이 바로 '자료구조'이며 자료구조의 이해를 잘하면 데이터 활용이 편해지고 무궁무진해집니다.

 

 

# 네트워크(Network)

- 쉽게말해 프론트엔드(Front-End)와 백엔드(Back-End)를 이어주는 연결통로를 네트워크라고 합니다.

클라이언트(사용자의 컴퓨터)와 서버를 이어주는 연결통로라고도 할 수 있습니다.

네트워크 자체가 프론트 엔드에서 백엔드로, 백엔드에서 프론트엔드로 뭘 연결해준다기보다 

네트워크 내에서 서로 연결이 되는 좀 더 포괄적인 개념이라고 볼 수 있습니다.

 

 

# 서버/클라우드(Server/Cloud)

- 서버는 네트워크 운영체제인데요.

컴퓨터 네트워크에서 다른 컴퓨터에 서비스를 제공하기 위한 컴퓨터 또는 소프트웨어를 가리킵니다.

반대로 서버에서 보내주는 정보 서비스를 받는 측, 또는 요구하는 측의 컴퓨터 또는 프트웨어를

클라이언트라고 합니다. 

 

클라우드는 서버를 빌리는 개념인데요.

서버를 구축한다는 것은 집을 산다는 개념으로 보자면 클라우드는 집을 빌리는 개념입니다.

개발자에게 있어서는 서버 구축에 필요한 자원 또는 서버자체를 빌리는 것으로 좀 더 포괄적입니다.

 

(아마존이나 AWS는 건물주?라고 볼 수 있겠네요 ㅎㅎ)

 

 

 

구독 또는 공감 한 표가 제게 큰 힘이 됩니다.

 

 

 

댓글