개발자는 보통 개발자는 Web, App, Server 채용 한다고 볼 수 있는데,
여기서, 내가 지원하고 싶은 "웹개발자"에 대해서 알아보자.
웹개발자는 Frontend, Backend, Database로 나뉘며 각각의 차이점은 아래와 같다.
🟠 Frontend : 웹이나 앱에서 사용자의 눈에 보이는 영역을 개발하는 일을 한다.
JAVASCRIPT, HTML, CSS (참고로 전세계 어느 회사를 가나 세가지 언어를 사용)
🟢 Backend : 웹이나 앱에서 사용자의 눈에 보이지 않는 영역을 개발하는 일을 한다.
JAVASCRIPT, PYTHON, JAVA, PHP (나라마다 회사마다 선택하는 언어가 다름)
🔵 Fullstack : 프론트엔드와 백엔드의 업무를 두가지다 잘 할 수 있어야한다.
JAVASCRIPT, HTML, CSS, PYTHON, JAVA, PHP
🟡 Database : 전체적인 데이터베이스 시스템의 구조를 분석하고 평가. 데이터베이스 사용자들을 등록 관리하고 모니터링을 한다.
SQL
연봉? 연봉은 프론트엔드 백엔드, 주니어 ~ 시니어까지 차이가 없다고 볼 수 있다.
취업? 차이가 있다고 "느낄 수 있다"
(회사가 쓰는 언어가 다르니까 백엔드의 경우 차이가 있다고 느낄 수 있다)
CTO? 나중에 CTO가 되고 싶다면 백엔드 경험이 있는 것이 "좋다"
(꼭 한 번 경험을 해보는 것이 좋음, 백엔드는 공부하기가 쉽지가 않기 때문에, 협업을 통해서 경험을 해본다던가가 중요함/ 그렇다고 프론트엔드라고해서 CTO를 할 수 없는 것은 아니니 걱정X)
FULLSTACK? 프론트엔드 + 백엔드 (사실 주니어로서 하나만 파기가 쉽지가 않지만, 결국 개발자라면 협업이 굉장히 잘되고 다른 분야에서 소통이 100%가 되어야함, 시니어가 되면 될 수록 둘 다 잘 알아야함, 지속적으로 바운더리를 만들지 않도록 노력해야함)
디자인감각이 없고 에술적이지 않는 사람이라고 해서 프론트엔트 자격이 없는 것이 아니기 때문에
디자인 감각으로 프론트엔드를 고민하고 있는 사람들은 주저하지 않아도 된다.
UI개발 : HTML로 구조를 잡고 CSS로 디자인을 하는 것
event에 대한 로직 개발
크로스 브라우징/ 디바이스 : _브라우저나 사파리 인터넷 익스플로러 크롬 등 많은데,
브라우저 마다 CSS표현법이 다르기 때문에 모든 브라우저에서 모든 디바이스에서
잘 나오게 개발 해야함 EX)반응형 홈페이지
데아터 시각화 : 백엔드에서 받은 데이터를 사용자에게 편리하게 어떻게 정제할 것인가
X,Y축 세팅, 이벤트(ex)마우스 움직일 때 어떻게 표현할 것인가), 자료구조가 중요(배열을 쓸 것인인가 객체를 쓸 것인가)+알고리즘 중요
API : 데이터를 주고받는 방법. 원하는 데이터의주소를 요청하면 데이터 리스트 정보를 가져오는 것
Data Pipeline: E ( extract : 추출 ) T ( transform : 변환 ) L ( load : 적재 )
Infrastructure & Architecture : 개발을 할 때 서버라고 해서 컴퓨터에 특정 공간이 필요한데, 공간이 많으면 많을 수록 원하는 사용자를 받을 수 있지만, 적으면 적을 수록 사용자가 많아지면 서버가 다운되거나, 오류가 생갈 수 있다. 그런데 이런 공간에 비용이 발생하기 때문에 유동적으로 늘려가는데 원왈환 환경을 조성하며, 특정 사용자만 우회 할 수 있도록 하거나 보안에 대한 설정 하는 일을 하는 것
결국, 본인의 성향에 어울리는 업무를 결정하는 것이 가장 중요하다.
프론트엔드가 적성에 잘 맞는 사람의 특징
창업, 아이디어, 나만의 것을 만들고 싶다!
사용자 관점에서 생각하는 것이 좋다!
UI가 완벽하고 아름다운 사이트 구현하고 싶다!
백앤드가 적성에 잘 맞는 사람의 특징
서비스 구성을 위한 전체를 보는 눈이 있다!
데이터 중심의 사고를 잘 한다!
효율적이고 안정적인 시스템을 구축하고싶다!