심심한 나의 이야기

개발자란 꿈..

꽃달린감나무 2023. 1. 10. 00:19
728x90

개발자를 꿈꾸기까지..

 어렸을 때, 아버지를 따라다니면서 공장에 있던 기계들을 봐왔다. 기계들을 보면서, "어떻게 작동하는 걸까..?" 호기심에 이끌려 한참이고 기계앞에서서 동작하는 원리를 머리 속 도화지에 그렸다. 눈에 보이는 부분들을 보며 숨겨진 곳에서 일어나는 일들을 상상하는 것이 재밌었다. 그러던 어느 날, 부모님이 컴퓨터를 통해 이것저것 쇼핑하시는 걸 보고는, 저 작은 정사각형 상자에서는 무슨 일들이 일어나는 걸까..? 라는 생각이 깊게 박힌 후에,  호기심을 해결하기위해 이것저것 시도해봤지만, 결국 궁금증만 남긴채 시간이 흘러 고등학생이 되었고, 우연히 듣게 된 고등학교 특별 강연 속에서, 컴퓨터 동작에 대해 듣게 되었고, 이는 오래 된 호기심을 꺼내는데 충분한 계기가 되었다.

 

그 후, 강연듣자마다 집으로 뛰어와 바로 컴퓨터를 분해하기 시작했고, 이리저리 살펴보며, "아 이게 강연에서 들었던 CPU구나"라는 혼잣말을 내뱉으면서 컴퓨터를 해체하다가, 집에 있는 유일한 컴퓨터를 고장내버렸다. 하지만, 현재까지도 부모님은 컴퓨터가 혼자 갑자기 고장난걸로 알고 있을거다.

 

이 계기를 통해, 컴퓨터 부품에 대해 공부하기 시작했다. RAM, CPU, 파워, 메인 보드가 각자 무슨 역할을 하는지, 또 사양은 어떻게 구별하는 지 하루하루 시간가는 줄 모르고 공부했으며, 집 컴퓨터를 조립하고 해체해가며 지식을 습득해갔다.

 

당연히, 대학교를 컴퓨터공학으로 진학하게되었으며, 컴퓨터구조, C언어 등등을 배우며 학창시절을 즐기던 중,  Java 수업교수님께서 "너네는 너네가 당연하게 사용하고 있는 홈페이지, 앱에 있는 기능들이 어떻게 작동되는지 궁금하지 않냐?, 동작의 바탕에는 Java라는 것이 기초적으로 깔려있다."라는 말한마디는, 호기심 가득했던, 어린시절의 나를 끄집어 내어 인터넷 작동원리에 대해 찾아보게 만들었다. 이렇게 나는 어느 순간부터 호기심에 이끌려 웹 개발자를 당연하게 꿈꾸고 있었다. 

 

프론트 엔드

사용자들이 가장 먼저 보고 경험하게 되는 모든 것들이 프론트 엔드 개발 분야를 통해 이루어 진다. 스크롤, 드롭다운 박스, 레이아웃, Text 폰트, 컬러 등이 개발을 이루는 분야이다. 사용자의 경험을 색다르게 하기 위해서는 HTML, CSS와 JS(JavaScript)가 프론트 엔드 개발에 있어 많은 역할을 한다.

 

HTML? CSS? ...JS..?

위 3가지가 프론트 엔드 개발을 구성한다고 해도 과언은 아니다. 그럼 무슨 각각 무슨 역할을 할까?

 

HTML은 하이퍼텍스트 마크업 언어로, 말그대로 링크와 마크업을 통해 웹 페이지에 구조를 정의하는데 사용된다.

좀 더 쉽게 말해, 건물을 지을 때, 건물의 골격을 HTML로 만드는 것이라고 보면된다.

 

CSS는 Cascading Style Sheet의 약자로, 종속 스타일 시트를 뜻한다. HTML이 건물의 골격을 잡아준다면, CSS 골격위에 덧 붙이는 디자인 적인 요소라고 보면된다.

 

JS는 동적인 요소들을 작동하게 해준다. 예를 들어, 홈페이지에 들어가면 있는 배너사진들, 카운트 다운, 달력등 웹 페이지내의 동적인 요소들을 담당하고 있다고 보면된다. 건물로 치면, 움직이는 요소들인 자동문, 엘레베이터 라고 보면된다(흠 이거는 보는 시선에 따라 다를 수 도 있을 것같다.

 

건물을 지을 때 여러가지 장비를 사용하는 것처럼, 프론트 엔드 개발도 다양한 장비들이 있다.

 

ReactJS : 리액트는 프론트엔드 개발에서 사용하는 선언형의 JS라이브러리다. 뛰어난 사용자 인터페이스를 만드는데 많은 도움을 줘, 개발자가 좀 더 편리하고 쉽게, 좀 더 효율적이게 개발할 수 있게 도와준다. 리액트는 컴포넌트 기반의 오픈소스라이러리이며, 애플리케이션의 반응형 뷰 레이어이다. React는 페이스북이 개발하여 유지보수를 해오고있다

 

Bootstrap : 부트스트랩은 반응형 웹을 개발하기 위해 사용되는 오픈소스 도구로, Js, Css, Html을 보다 더 쉽게 사용할 수 있게 해준다. link 태그를 통해 단지 연결만 해주면 편하게 사용할 수 있다.

 

 

백엔드

프론트엔드가 앞을 가리켰다면, 백엔드 뒤를 가리킨다. 말 그대로 사용자가 알 수 없는 곳에서 데이터와 서버 관리해주는 개발 분야이다. 백엔드는 서버 개발 분야로, 사용자들이 이용하는 데이터를 저장, 관리하고 클라이언트와 상호작용할 수 있도록 해준다. 백엔드는 사용자들이 직접 볼수는 없지만, 프론트 엔드를 통해 취하는 행동들 처리한다. 백엔드에는 API, 데이터베이스 통합, 비즈니스 로직등 다양한 것을 취급한다.

 

- 백엔드 개발의 언어

 

PHP : 웹 어플리케이션 개발을 위해서 만들어진 서버 스크립트 언어다. 오래 전에는 인기가 많아지만, 새로운 언어들이 생기면서 잘 사용하지 않고 있다.

 

JavaScript : 프론트엔드 에서 사용하는 언어이지만, 제작자의 업데이트를 통해, 백엔드와 프론트엔드 분야에서 모두 사용할 수 있게되었다.(이러한 이유로 프론트 엔드에서 백엔드 일을 어느 정도 하기도 한다고 들었다...소리소문)

 

Java : 인기 있는 프로그래밍 언어로,  주로 많은 양의 데이터를 처리할 때 사용한다. 그만큼 안정성이 뛰어나다.

 

Kotlin : Java를 좀 더 가독성있고 간결성 있게 사용할 수 있는 언어이다.(Java와 같이 JVM위에서 동작하며, Java언어와 혼용에서 사용할 수 있다.) 요즘은 Java보다 Kotlin을 사용하는 추세이다.

 

- 백엔드에 사용되는 장비

 

Spring :  서버 개발을 할 때, 유용한 라이브러리를 제공해주는 프레임 워크로 Java와 아주 찰떡궁합이다.

 

Spring boot : spring의 진화 버전으로, 개발자에 훨씬 친화적으로 변화한 Spring이라고 보면된다.

 

주의 : 모르는 지식이 많습니다. ㅠㅠ 귀엽게 읽어주세요 

 

백엔드 개발자를 꿈꾸게 된 이유

뭔가 개인적인 이유지만, 앞에서 무언가 반응하고 결과로 보여지는 것보다는, 뒤에서 은밀하고 위대한 설계를 하는 것을 좋아한다. 또한, 어렸을 때 부터, 보이지 않는 곳에서 무슨 일이 일어나는지 많이 궁금했던터라 백엔드 개발자를 선택하지 않았나 싶다. 단지, 사실 백화점을 예를 들어 설명한다면, 고객들에게 백화점이 어떻게 보여지는 지 신경쓰는 것 보다, 고객들의 동선을 어떻게 해야 많은 물건을 사가게 할지, 혼잡하지 않게 편하게 즐길 게 만들지를 좋아한다고 보면 될 것 같다. ^^7

728x90