나는 백엔드 개발자이다.
백엔드 개발자는 다양한 기능을 구현한다.
어떤 기능들이 있을까?
내가 경험한 기능들을 대강 나열해보자면
랭킹시스템, 협업툴 redo/undo, OpenAPI, 외부서비스연동 등 이 있을 수 있다.
이런 기능들을 구현하려면 어떻게 해야할까?
일단 로직이 있어야할것이다.
랭킹시스템이라면 랭킹을 집계하는 로직이,
외부서비스연동이라면 외부서비스를 연동할 때 외부서비스와의 인증로직, 데이터를 싱크업하는 로직등이 있다.
이것은 '코드'로 구현된다.
그 다음에는 데이터가 필요하다.
랭킹시스템이라면 점수를 저장하는 데이터, 집계된 점수를 저장하는 데이터
외부서비스연동이라면 연동 때 쓰인 access_token이나 외부서비스API를 사용해 조회한 데이터
이것은 '데이터베이스'로 구현된다.
그 다음에는? 인프라가 필요하다
로직이 있고, 데이터가 있으면 기능구현이 가능하다.
아니, 정확히 말하면 PoC는 가능하다고 할 수 있겠다.
왜 PoC라 표현했느냐면, 실제 대고객 서비스가 불가능할것이기 때문이다.
단순한 예시를 위해 '웹사이트'를 개발한다고 가정한다면,
일반적인 웹사이트는 React 등을 통해 내 컴퓨터 만으로도 쉽게 페이지를 개발 할 수 있다.
그러나 내가 만든 웹사이트를 내 컴퓨터뿐만아니라 다른사람의 컴퓨터, 다른사람의 스마트폰에서 접근가능하게 만드는것은 다른이야기다.
가능하게 하기위해서는 내 React 빌드 결과물을 서빙할 수 있는 웹서버가 필요하고
이 웹서버는 네트워크를 통해 누구나 접근가능해야한다.
클라우드 서비스(이하 AWS로 칭한다)는 이것을 가능하게한다.
React빌드 결과물을 AWS 스토리지 서비스인 S3에 담아 정적웹페이지 배포설정만 한다면 쉽게 배포가 가능하다.
여기에 DNS를 적용하여 naver.com daum.net과 같이 도메인네임을 사용할 수 있다.
또, CloudFront를 사용하여 캐싱을 이용해 엔드유저에게 빠른 사용경험을 제공할수도있다.
왜 공부하느냐
나는 백엔드 개발자로서 이 공부가 꼭 필요하다고 판단했다.
다양한 기능구현은 지금껏 어느정도 처리해왔다고 생각했지만,
규모가 있는 프로젝트를 진행하다보면 복잡한 시스템을 설계해야할때가 온다.
복잡하다는 표현이 맞을만큼 다양한 부분을 신경써야한다.
네트워크 및 데이터베이스 부하, 보안, 캐싱, 스케일 인/아웃, 코드효율, 배포 등...
큰 규모의 프로젝트를 준비가 안된 상태에서는 접하기 어렵다고 생각한다.
그렇기때문에 큰 프로젝트의 준비를 위함이 첫 번째 이유다 라고 할 수 있겠다.
준비가 되면 기회가 왔을때 당당히 맡아 처리할 수 있다.
재밌는 프로젝트를 접할 수 있고, 커리어에도 분명 좋을 일이다.
(회사업무든, 개인프로젝트든 말이다)
그리고 두 번째는
백엔드 개발자로서의 세계관이 넓어짐을 느꼈기 때문이다.
필자는 다양한 태스크를 처리해왔음에도
분명 경험하지 못해 얻지못한 기술적인 공백이 존재한다.
예를 들자면, '보안' '캐싱' 등이 있겠다.
이미 잘 돌아가고 있는 서비스는 이미 이 모든것들이 갖춘뒤니까
나는 그 안의 톱니바퀴 역할을 잘 수행하면 되었기 때문이다.
그러나 이 자격증 공부를 시작하면서
보안, 캐싱 뿐만아니라 부하처리 스케일인/아웃 등.. 시스템 전반적인 모든 부분을 경험하고있다고 생각한다.
알지 못하던 개념을 배웠고
볼 수 없었던 것들이 보이기 시작했다.
1편을 마무리하며..
이런 자격증이 있다는걸 인지하고나서
몇 번 시도하기는 했었지만
바쁘다는 핑계로 항상 취득을 미뤄왔었다.
이번엔 자격증 일정까지 잡았는데 가격이 살벌하다
약 20만원돈이 들었다.
(50%할인등의 프로모션도 간간히 진행하니, 바로 취득할 마음이 없으면 프로모션을 기다리는것이 좋겠다)
공부기간은 약 3주가 안되게 잡았다.
기간이 길어지면 늘어질까봐 일부러 빠듯하게 잡았다.
다음편에서는 내가 이 자격증 공부를 어떻게 하고있는지
공부법에 대한 이야기를 해볼까한다.
'재학습 > SYSTEM' 카테고리의 다른 글
짜릿한 젠킨스 복구기(記) - 두근두근 서론 (0) | 2021.02.19 |
---|---|
서버를 다꺼버릴거야! - (3) Docker Mongo DB BackUp Dump (0) | 2021.02.15 |
서버를 다꺼버릴거야! - (2) MySQL DB BackUp Dump (0) | 2021.02.14 |
서버를 다꺼버릴거야! - (1) 서론.. (0) | 2021.02.07 |