본문 바로가기

IT/개발상식

프론트엔드, 백엔드

안녕하세요. FoxMon입니다. 유난히 추웠던 겨울이 지나가고 이제 봄이 왔네요. 옷도 점점 얇아지고 있어요. 나무엔 꽃이 피어나고 있구요. 이번 포스팅에서 유독 좀 따뜻한 느낌이죠? 어쩔 수 없어요. 날이 따뜻해 지니까 제 마음도 따뜻해 져서 그래요. 그냥 그런가보다 해주세요. 기분이 괜스레 좋잖아요? 제 기분도 좋으니까 여러분의 기분도 좋아졌으면 좋겠어요. 진심이에요.

아무튼 이번 포스팅에선 프론트엔드와 백엔드에 대해서 소개를 해볼까 해요. 뭔가 처음 프로그래밍을 시작하시는 분들이 제일 많이 하시는 질문 중 하나가 이러한 내용이거든요. 프론트엔드를 해야 할지, 백엔드를 해야 할지 고민이라고 하시는 분들이 굉장히 많아요. 근데 사실 뭔가 딱 명확하게 이거 해라! 라고 말씀 드리기가 굉장히 조심스럽기도 하고 어렵기도 해요. 그래서 간략하게 각각의 포지션에 대한 내용들, 그리고 제가 느껴지는? 그런 부분들에 대해서 기록해 보려고 해요.

아, 참고로 저는 포지션이 뭐냐구요? ~~ 입니다.

그럼 본격적으로 본론에 들어가 보도록 할게요.


프론트엔드

프론트엔드에 대해서 감히 제가 정의를 내릴 순 없을 것 같아요. 제가 무협지를 좋아하니, 무협지로 비유를 하자면 프론트엔드는 전장의 맨 앞. 즉 최전방에서 화려한 검술과 다채로운 기교를 부리며 길을 뚫어내는 검사와도 같은 것 같아요. 문제를 해결하기 위해 훌륭하게 로직을 짜기도 하구요. 사용자와 상호작용을 더욱 좋게 하기 위해 다양한 기교가 필요하죠. 즉 저희가 사용하는 웹의 맨 첫 페이지 부분이 프론트엔드 분들이 작업해 주시는 영역이랍니다. 그렇다고 해서 단순히 이쁘게 그려내는 디자인만 하는 것은 아니에요.

사용자에게 친숙한 디자인을 디자이너 분들이 그려 주시면, 프론트엔드 분들이 이에 해당하는 부분들을 코드로 작성하신 뒤, 단순 그림에서 사용자와 인터랙션을 주고 받기 위해 다양한 비즈니스 로직이 필요한데 이러한 부분을 프론트엔드 분들이 훌륭하게 해결해 주신답니다. 물론 필요에 따라서 퍼블리셔 분들의 도움을 받을 수도 있어요. 추가적으로 무언가 사용자가 어떠한 것을 눌렀다면 그에 해당하는 통신도 해야 하는데 이러한 부분 역시 프론트엔드 분들이 멋지게 구현해 주신답니다.

제가 무사에 비유한 이유가 이러한 것들 때문입니다. 같은 내용을 구현했음에도 불구하고 그에 해당하는 로직을 다양하게 풀어낼 수 있거든요. 또한 하나의 기술에만 집착하지 않고 다양한 기술을 빠르게 습득할 수도 있어야 하는 것 같아요. 마치 무협지 만화에서 매화를 피워내는 매화검수와도 같죠. 화려하지만 날카롭고 강력하게. 저는 프론트엔드가 이렇게 느껴지더라구요. 그래서 뭔가 코드의 로직을 치는 것이 재미있고 다양하게 풀이 하는것에 흥미를 가지며 사용자에게 보여지는 화면에 대한 부분을 담당하고 싶다면 프론트엔드를 공부해 보시면 좋을 것 같아요.


백엔드

그렇다면 백엔드는 무엇을 할까요? 저는 프론트엔드가 최전방에 서서 검술을 펼친다면 백엔드는 전략가와 같다고 생각이 들어요. 보통 회사에서 만드는 시스템이 규모도 크고, 사용자가 늘어날수록 이를 대처하기 위해선 적절한 대안이 필요하거든요. 프론트엔드는 사용자와의 인터렉션을 담당한다면, 이를 적절하게 처리하기 위해선 알맞은 서버 배치가 필요해요. 마치 전장에 군대를 적절한 위치 및 시기에 배치하는 것처럼요.

사용자가 늘어날수록 이를 부드럽게 처리하기 위해선 백엔드의 서버를 구성하는 방식이 매우 중요하거든요. 특히 데이터베이스의 경우 더욱 어렵고 힘들어요. 그리고 규모가 큰 서버, 그리고 많은 양의 서버를 적절하게 컨트롤하기 위해선 또 다른 기술들이 들어가야 하거든요. 그래서 뭔가 탄탄한 설계, 그리고 이를 효율적으로 운용할 수 있는 방법들에 대한 고민들이 매우 많이 이루어지곤 한답니다. 그렇다고 백엔드가 코드를 치는 양이 적은 것은 결코 아니에요. 백엔드 역시 다채로운 기술과 테크닉이 필요하답니다.

근데 제가 느끼기에 백엔드는 저런 전략들이 매우 중요한 것 같아요. 사용자의 데이터를 다루는 만큼 작업 하나하나가 매우 치명적이거든요. 마치 전략가가 전략을 잘못 세우면 낭패를 당하듯이 말이죠. 이러한 것들에 흥미를 느끼신다면 백엔드를 공부해 보시는 것을 추천드려요. 저는 매우 매력적인 포지션이라고 생각이 든답니다.


결론

제가 각각의 포지션에 대해 느낀점을 소개해 드렸는데요. 사실 제가 말한 내용만을 가지고 판단을 내리기는 매우 성급하다고 생각이 들어요. 공부를 해보실 때는 하나씩 직접 해보고 본인의 적성에 맞는 것을 선택하는 것이 현명하다고 생각이 든답니다. 사실 공부를 할 때에는 제가 말한 것들을 경험하기 어려우실 수도 있어요. 특히 백엔드같은 경우는 더더욱 그렇죠.

혼자 학습하는 환경에서 많은 트래픽을 경험하기란 매우 어렵거든요. 사실 불가능하죠. 그래서 이러한 상황을 가정해서 다양한 테스트를 진행하는데, 이러한 상황을 만들어 보기까지 시간도 많이 소요되구요. 그래서 프론트엔드, 백엔드 가볍게 경험해 보시고 더욱 흥미가 가는 것에 학습하시는 것을 추천드립니다.

그럼 오늘도 급하게 마무리 하도록 할게요.
읽어주셔서 땡큐~

'IT > 개발상식' 카테고리의 다른 글

[개발상식] 완벽한 프로젝트와 기술 스택  (0) 2024.05.12
[개발상식] 라이브러리와 프레임워크에 관한 건  (0) 2024.04.06
의존성 주입  (0) 2024.02.25
Class  (0) 2024.02.06
추상화  (0) 2024.01.10