Temp

프론트엔드와 백엔드 차이 - 백엔드 개발자가 되고 싶은 이유

ju_young 2023. 10. 19. 22:02
728x90

프론트엔드 (Frontend)

프론트엔드는 사용자와 직접 상호작용하는 부분으로, 웹 애플리케이션 또는 웹 사이트의 시각적 부분을 담당한다.

특징

  • 사용자 인터페이스 (UI): 프론트엔드는 웹 페이지의 레이아웃, 디자인, 색상, 텍스트, 이미지, 버튼 등 사용자가 보고 상호작용하는 모든 것을 처리한다.
  • 웹 브라우저에서 실행: 프론트엔드 코드는 주로 HTML, CSS, JavaScript를 사용하며, 이 코드는 클라이언트 측에서 웹 브라우저에서 실행된다.
  • 사용자 경험 개선: 프론트엔드는 웹 애플리케이션의 사용자 경험을 향상시키는 역할을 한다. 사용자가 쉽게 탐색하고 상호작용할 수 있도록 설계되어야 한다.

주요 업무

  1. 사용자 인터페이스 (UI) 개발
    • 웹 페이지 레이아웃, 디자인 및 스타일링 작업을 수행하여 사용자 경험을 개선
  2. 사용자 경험 설계
    • 사용자가 웹 사이트 또는 애플리케이션을 쉽게 탐색하고 상호작용할 수 있도록 설계
  3. 클라이언트 측 로직
    • 웹 페이지에서 사용자 입력을 처리하고, 이벤트 처리 및 상호작용 기능을 구현
  4. 웹 보안
    • 기본적인 웹 보안 원칙을 이해하고, 사용자 데이터의 안전을 보장하는데 기여

적합한 성향

  1. 창의적이고 시각적인 관심: 프론트엔드 개발은 사용자 인터페이스 및 디자인을 다루므로 창의성과 시각적 감각을 가진 사람에게 적합
  2. 사용자 중심 접근: 사용자 경험을 개선하고 사용자 피드백을 반영하는 데 관심이 있는 사람들에게 적합
  3. 프론트엔드 기술 업데이트: 웹 기술이 빠르게 진화하므로 새로운 웹 기술과 프레임워크에 대한 관심과 학습 능력이 필요
  4. 디테일에 민감: 레이아웃, 디자인 및 사용자 경험의 세부 사항에 민감한 사람들에게 적합
  5. 피드백 수용 가능: 사용자 및 디자이너의 피드백을 수용하고, 변경 사항을 빠르게 반영하는 능력이 필요

백엔드 (Backend)

백엔드는 웹 애플리케이션의 뒷단에서 동작하는 부분으로, 프론트엔드가 보여주는 내용과 기능을 지원합니다.

특징

  • 데이터 처리: 백엔드는 데이터베이스와 상호작용하여 데이터를 저장, 검색 및 조작하는 역할을 한다. 예를 들어 사용자 정보, 게시물, 주문 기록 등을 처리한다.
  • 비즈니스 로직: 웹 애플리케이션의 핵심 비즈니스 로직을 실행하며, 예를 들어 회원 가입, 결제 처리, 권한 관리 등을 포함할 수 있다.
  • 서버 측 언어 및 프레임워크: 백엔드 코드는 서버 측에서 실행되며, 다양한 언어와 프레임워크로 개발된다. 이 코드는 데이터의 유효성 검사, 보안, 인증 및 권한 부여와 같은 중요한 기능을 수행한다.

주요 업무

  1. 데이터 관리
    • 데이터베이스를 설계하고 구축하며, 데이터의 생성, 읽기, 갱신 및 삭제 (CRUD) 작업을 처리
  2. 비즈니스 로직 구현
    • 웹 애플리케이션의 핵심 비즈니스 로직을 개발하고 유지 관리 (e.g. 회원 가입, 로그인, 주문 처리, 결제 처리 등)
  3. 서버 측 로직
    • 웹 서버를 설정하고 관리하며, 요청을 받아 처리하고 클라이언트에 응답
  4. 보안
    • 웹 애플리케이션의 보안을 유지하고 사용자 데이터를 안전하게 저장하고 전송
    • 인증 및 권한 부여 시스템을 구현하여 사용자 및 데이터 보호를 강화
  5. 성능 최적화
    • 웹 애플리케이션의 성능을 개선하기 위해 데이터베이스 쿼리 최적화, 캐싱 및 스케일링 작업을 수행

적합한 성향

  1. 논리적이고 문제 해결 능력: 백엔드 개발은 데이터 처리와 비즈니스 로직에 중점을 두므로 논리적 사고와 문제 해결 능력이 필요
  2. 데이터와 보안 관심: 데이터베이스 설계, 데이터 처리 및 보안에 관심이 있는 사람들이 백엔드 개발자로 적합
  3. 서버 측 기술 이해: 서버 측 언어, 프레임워크 및 서버 운영체제에 대한 관심과 이해가 필요
  4. 안정성과 성능 강조: 웹 애플리케이션의 안정성과 성능을 향상시키기 위해 고려사항을 고려하고 해결하는 능력이 필요
  5. 팀 협업 능력: 백엔드 코드는 프론트엔드와 함께 작동해야 하므로 팀 협업 능력이 중요

프론트엔드와 백엔드 개발에 대한 역할이 명확하게 구분되지 않는 경우도 많다. 따라서 프론트엔드에 해당하는 부분이 백엔드에도 해당할 수 있고 백엔드에 해당하는 부분이 프론트엔드에도 해당할 수 있다.

 


 

백엔드 개발자가 되고 싶은 이유

코딩을 접하게된 이유

처음 사회에 들어섰을때 Plumbing 설계를 시작했다. 이 시절에는 내가 하고 싶은 일이 무엇인지 몰랐고 그저 돈을 벌어야겠다는 생각뿐이었다.

 

설계를 위해 AutoCAD 프로그램을 사용하고 엑셀을 사용하여 끝없는 반복작업 업무를 수행했다. 어느 날 결막염에 걸렸고 그제서야 내가 일하는 방식이 잘못되었다는 것을 깨달았다. 그래서 "자동화"를 키워드로 어떻게 하면 조금 더 편하게 효율적으로 업무를 진행할 수 있을까 찾아보고 고민했다. 고민한 결과가 바로 코딩이다.

 

처음은 Python 언어를 시작해 조금씩 업무에 적용하기위해 무작정 개발해보고 사용해보았다.

 

 
2020년에 글을 올렸으니 3년 전에 처음 코딩을 시작한 것 같다.

 

AutoCAD 프로그램에서는 Python을 지원하지 않아 C# 언어를 사용해서 명령어를 만들어보기도 했다.

 

전업을 결심한 이유

하지만 현실은 불합리하고 부조리했다. AutoCAD 프로그램은 무조건 사용하던 버전만 사용해야했고 명령어 또한 사용하던 것들만 사용해야했다. 코딩을 공부하고 개발해도 적용하는 단계에서 벽에 부딪혔다.

 

이 때부터 나는 내가 하고 싶은 일이 무엇인지 알게되었다. 그리고 코딩에 점점 관심이 깊어지면서 자연스럽게 AI에도 눈이 가게되었고 본격적으로 관련 교육 과정을 밟아보기로 결정했다. 쉽지 않은 결정이었지만 하고 싶은 일을 하지않는다면 훗날 후회할 것 같았고 코딩을 해야겠다는 의무감이 뚜렷했다.

 

이후 Naver AI boostcamp에서 5개월간 교육을 받고 운좋게도 스타트업에 취업하게되었다.

방황했던 시기

스타트업의 문화는 내가 이전에 다녔던 회사와 상당히 이질적이었고 새로웠다. 하지만 내가 하고 싶었던 일을 할 수 있었기에 적응하는 것은 문제가 되지 않았다. 당사에서 수행한 업무는 OCR 개발이었다. 혼자 진행해야했지만 개발할 수 있는 것이 좋았고 모든 시간을 업무에 쏟아부었다. 업무 후 코딩을 하던 이전 회사처럼 업무 후 논문을 찾아보고 스터디를 하며 자기계발을 위해 노력헀다. 긍적적인 결과를 내고 서비스화까지 할 수 있었다.

 

하지만 내가 할 수 있는 것은 서비스화가 아닌 기능의 개발이었다. 내가 노력해서 개발한 기능을 자신이 서비스화하지 못한다는 것은 나에게 부족한 부분을 많이 느끼게 해주었다. 그와 동시에 커리어에 대한 고민이 커져갔다. '나의 커리어로 이직할 수 있는 기업이 있을까?', '훗날에 내가 개발한 기능을 직접 서비스할 수 있을까?'

 

앞서 말한 "운좋게"도 취업했다는 것이 바로 이런 까닭이다. 코딩을 하고 기능을 개발하는 경험을 쌓아도 인터넷, DB 등에 대한 지식과 기술이 부족하다는 것을 알게되었고 방향성을 잃은 느낌을 받았다. 방황했다는 표현이 맞는 것 같다.

백엔드를 하고 싶은 이유

이전 직업으로 되돌아가야할까라는 생각도 해보았지만 내가 하고 싶은, 하고자 하는 일은 명확했다. 그래서 방향을 찾기위해 내가 필요한 기능, 만들고 싶은 기능을 새로운 언어로 만들어보기도 했다.

그리고 내가 개발한 기능을 서비스화하는데 어떤 부분이 부족한지 생각해보았다. 인터넷, DB, API 등 전체적으로 백엔드에 대한 지식이 대부분 차지했다. 유저의 유입을 위해 프론트엔드도 물론 중요하지만 백엔드로 기능을 구현하는 것이 나에게 우선적으로 필요했다.

 

결국 백엔드에 대해서 독학을 시작하였고 점차 내가 만들고 싶은 서비스도 생각할 수 있었다. 그렇게해서 현 시각을 기준으로 만들고있는 서비스가 My3D 이다.

 

마지막으로는 혼자 프로젝트를 진행하는 것에 한계를 느끼고 커뮤니티와 협업을 통한 프로젝트 경험을 얻고자 제로베이스에서 한 번 더 교육 과정을 밟고 있다.

마지막으로

앞서 프론트엔드와 벡엔드에 적합한 성향을 작성해놓았지만 개인적으로 불필요한 내용이라고 생각한다. 자신이 하고 싶은 일이 있고 하고자하는 것이 뚜렷하다면 그것이 자신에게 맞는게 아닐까?

 

728x90