📌 Front-end vs. Back-end
프론트엔드와 백엔드의 차이가 뭐예요?
프론트엔드(Front-end)
<프론트엔드가 하는 일>
- 프론트엔드 개발자는 사용자에게 보여지는 웹 어플리케이션을 만듭니다. 사용자가 웹 어플리케이션을 정상적으로 사용할 수 있도록 UI파트를 포함한 웹앱을 만드는 일을 하는 것입니다.
- 사용자와의 상호작용을 처리하는 일을 합니다. (이벤트 및 입력받은 데이터들 관리)
- UI/UX와 연관된 비즈니스 로직들을 코딩합니다. -> 이것을 백엔드 서버에서 데이터를 주고 받으므로써 처리합니다.
- 이 외에도 캐쉬, 부드러운 사용자의 플로우, 애니메이션, 웹앱 성능 및 배포되는 번들 사이즈 조절 등의 업무를 처리합니다.
백엔드(Back-end)
<백엔드가 하는 일>
- 서버 사이드에서 동작하는 서비스 를 만듭니다. 서비스 는 사용자의 정보를 제공하고, 백엔드 개발자들은 사용자들로부터 데이터를 전달 받아서 해당 데이터를 웹에서 지원 가능한 모든 버전으로 변형을 해주는 일을 합니다.
- 서비스 의 인터페이스 API를 구현하는 일을 합니다.
- 데이터 저장소를 개발하여 데이터베이스에 온갖 정보들을 저장해놓고 좋은 성능을 보장하면서 관리합니다.
- 로그를 합계하고 데이터 분석, 사이트 모니터링 등의 업무를 합니다.
- 이 외에도 제 3자의 서비스를 통합시키는 일 등의 업무를 처리합니다.
📌 Which one should I choose?
나는 어떤 걸 선택해야 할까요?
- 나는
UI
와 UX
에 관심이 많다
- 내가 작업하는 결과물이 시각적으로 즉각 나타나는 것이 좋다
- 웹에 내가 짠 코드와 디자인(css 등)이 브라우저 위에서 열일하는 것을 보고싶다
- 유저들과의 상호작용에 관련된 일을 하고 싶다
- 사용자들이 내 제품을 쓰는 것을 직접 보고싶다
- 내가 무슨 업무를 하는지 친구들한테 보여주면서 자랑하고 싶다
-> 프론트엔드(Front-end)
- 나는
UI
코드를 짜고 싶지 않다
- 유저와의 상호작용 관련된 코딩을 하고 싶지 않다
- 제품의 비즈니스 로직만 신경쓰고 싶다
- 확장성과 안정성에 더 중점을 주고 일하고 싶다
-> 백엔드(Back-end)
📌 Some learning Tips
어떤 걸 공부하면 좋을까요?
프론트엔드(Front-end)
를 희망하는 사람들을 위한 공부 추천 📓
HTML
, CSS
기초부터 다지는 것이 중요!
- 아주 기초적인 웹 사이트를 만들 수 있다는 자신감이 생긴 후에는 `Javascript`를 이용해서 동적인 요소들을 추가하거나 백엔드 서버로부터 데이터를 주고 받는 법을 배울 수 있습니다.
- 참고로, 요즘 많은 회사들이 유지보수와 확정이 있는 코드 작성이 용이한 `TypeScript`를 사용하기 때문에 부가적으로 배워두는 것도 추천합니다 :)
- 추후에 더 규모있는 프로젝트를 하기 위해서는 `LESS`, `SASS`, `PostCSS` 등과 같은 `CSS 전처리기` 들을 배우는 것이 좋습니다.
- 그 다음에는 `Vue`나 `React`와 같은 `Javascript`의 라이브러리/프레임워크를 배우게 될 것입니다.
🪄 당연한 말이지만 기본기를 잘 다져 놓는 것이 매우매우 중요!
또한 라이브러리/프레임워크가 어떤 문제를 해결하기 위해 나온 아이인지 모르는 채로 막무가내로 사용해선 안됩니다ㅠㅠ
각각의 라이브러리/프레임워크가 왜 개발되었으며, 어떻게 하면 더 효율적 및 효과적으로 사용할 수 있는지 잘 이해하셔야 합니다 :D
최신 동향을 잘 파악하고 적용하는 것도 매우 중요 포인트 📊
백엔드(Back-end)
를 희망하는 사람들을 위한 공부 추천 📓
- 프로그래밍 언어 (서버용 언어)를 배우셔야 합니다. ex)
Javascript
, NodeJs
, Java
, Go
, Python
, Ruby
등 본인의 취향과 관심사에 맞게 골라 배우시길!
- `HTTP`, `TCP/IP`, `DNS` 등의 네트워킹이 어떻게 돌아가는지 공부합니다.
- `REST`와 `REST`를 디자인하는 원칙에 대해서 배우셔야 합니다.
- 데이터 저장소로는 `관계형 데이터베이스`와 `NoSQL`을 알아야 합니다.
(`관계형 데이터베이스` -> `ACID` 원칙과 `keys`, `index`, `SQL syntax` 등 -> `NoSQL` 순서로 공부하는 것을 추천!)
- 그 후에 `Caching(캐슁)`에 대해 공부하기 위해 `Redis`, `MemCached`에 대해 배우면서 이들이 어떤 문제들을 해결하고자 존재하는 것인지 공부합니다.
- 다음에는 `authentication(인증)` 의 종류에는 무엇이 있으며, 어떤 것을 선택해서 사용할지, 그리고 그것들이 어떻게 동작하는지 이해해보며 알아봅니다.
- 이 모든 것이 가능해진 후에는 `분산형 시스템(Distributed system)`을 공부해봅니다. ex) `CAP theorem`, `BASE` 원칙 등
What are WE doing?
코사다마 프론트엔드 스터디 멤버들은 무엇을 배우고 있나요?
Full Stack is a hero?
풀스택 개발자는 슈퍼 히로가 아니다!
많은 사람들이 풀스택은 다양한 것을 얕게만 알고 있다고 믿는 경향이 있습니다.
즉, 다양한 것을 깊게 알지는 못하는 경우가 많다는 것을 의미합니다.
진정한 풀스택 개발자가 되기 위해서는 나 자신이 어디쯤에 위치하고 있는지 이해하고 어떤 것들을 더 공부해야 하는지 알아보면 좋습니다. 📚
처음에는 내가 생각했을 때 나랑 맞게다 싶은 것을 먼저 택해서 공부해보고, 하다가 안 맞으면 다른 역할이나 다른 분야로 전환하시면 됩니다! 너무 어렵게 생각하지 마세용
도전을 하는 것 자체만으로도 당신은 대단한 사람 💯
영상 출처 - 프론트엔드 개발자 백엔드 개발자 무엇을 선택할까? 공부 방법은? (Frontend vs Backend) - 드림코딩 by 엘리