자. 백엔드는 일단 많이 하는 자바 기준으로, 정상적인 대기업 기준으로 설명한다.


백엔드는 자바에 대해 최대한 많이 알아야겠지. 이것만 해도 충분히 실무에 도움 된다.

그리고 DB에 대해서도 알아야 하지만 엔진을 이해할 필요는 없어. 쿼리 쓸 즐 알면 장땡.

왜냐고? DB를 다루는 직종이 따로 있거든. DBA, DB 엔지니어, 아키텍트 등이 있지.

보통 리눅스에 돌리지. 리눅스 커널을 알아야 할까? 아니, 백엔드는 배포만 할 수 있으면 된다.

리눅스의 모든 것은 시스템 엔지니어와 서버 엔지니어, 그리고 각종 인프라 담당 직종들이 있기 때문.

네트워크 통신하는데 물론 OSI 7계층이야 알아야 하지만 실무에 쓸 일은 7단계밖에 없잖아. 그 하위 단계는 네트워크 엔지니어들이 해주니까.


이렇게 백엔드는 오래된 역사를 자랑하고, 각종 시스템에 대한 직종들이 잘 꾸려져 있지.


하지만 프론트엔드는 역사가 그리 길지 않아. 웹이 1998년에 생기면 뭐해. 개념 생긴 게 2010년인데.

여태까지 백엔드가 프론트엔드 하는 짓들 다 했어. 다행히도 자바스크립트는 그저 부수적인 기능일 뿐이었지.

하지만 자바스크립트가 할 수 있는 게 다양해지면서 백엔드 혼자 감당하기엔 벅차지.

그래서 이걸 전문으로 하는 직종이 바로 프론트엔드인데.... 역사가 길지도 않고 게다가 심지어 아직도 과도기야.

누가 지적한 브라우저 엔진 파악이 무슨 도움이 되냐 하는데... 원리 파악은 도움 되긴 됨. 그게 다지만.

하지만 브라우저 버그 등으로 웹 결과물에 문제 생기면 브라우저 엔지니어가 도와주냐? 그런 사람 없어.

웹 화면에서 생기는 모든 문제는 모두 프론트엔드가 해결해야지. 서버 앱이 맛 갔을 때 백엔드가 해결해야 했던 것 처럼.

하지만 한가지 중요한 사실이 있다면, 프론트엔드는 털리기 가장 좋은 직종이지. 왜냐? 누가 봐도 눈에 보이니까.

네트워크 상황이 여의치 않아 화면 깨지는 등의 문제가 생기면 누가 손해냐, 백엔드? 네트워크 엔지니어? 아니. 가장 먼저 털리는게 프론트엔드이다.

그럼 프론트엔드는 OSI 7계층에 입각하여 증명해야 하지.


IE 까지 고려해야 한다면 사탄이 모셔감.