티스토리 뷰

IT

오늘부터 개발자 by 김병욱

비즈붓다 2023. 8. 13. 18:53
728x90

[ 밑줄/연결 ]

 

(다양한 개발 분야)

(프론트 엔드)

ㅇ고객이 보는 모든 화면들을 '클라이언트단' 이라고 하고, 이것을 개발하는 개발자를 '프론트엔드 개발자'라고 부른다.

ㅇ우리가 이용하는 앱(또는 웹페이지)의 앞부분을 만드는 개발자

 

(백엔드)

ㅇ 보이지는 않지만 적립금, 쿠폰 처리 등 뒤에서 일어나고 있는 로직처리들을 서버에서 처리하는데, 이것을 개발하는 개발자를 '백엔드 개발자'라고 부른다.  

ㅇ 우리가 이용하는 앱(또는 웹페이지)의 보이지 않는 뒷부분 서버의 로직을 만드는 개발자

ㅇ 프론트엔드에서 보내주는 자료들을 처리하는 로직을 개발함과 동시에 어떤 데이터를 저장할지 등의 데이터베이스 설계까지 담당한다. 

 

(데브옵스)

서비스가 잘 돌아가도록 인프라 전반을 개발하는 '데브옵스' 개발자

ㅇ 서비스가 안정적으로 돌아가도록 전체적인 인프라를 만들고 관리하는 개발자

ㅇ 개발과 운영을 연계하여 다양한 기능들을 설계하고 만드는 개발자를 '데브옵스 개발자' 또는 '인프라 개발자'라고 부른다.

ㅇ 보통 인프라 개발자는 서비스 개발과는 관련없이 운영 업무만을 담당. 시스템을 배포/운영하며 장애를 탐지하고 알람을 주는 역할을 담당하며, 프로그램의 에러를 직접적으로 고치지는 않음. 운영과 개발의 괴리를 가져오게 되어 빠른 개발과 배배포 과정에서 걸림돌이 됨. 이런 단점을 보완하기 위해 개발과 운영을 하나의 주체가 책임지는 데이옵스 문화가 생겨남

데브옵스 개발자는 기존의 인프가 개발자들이 하던 일들(서버 스케인 인, 아웃, 배포 등) 모두 자동화시켜, 개발자 스스로 운영할 수 있는 환경을 만들어 주는 역할을 함. 이를 통해 안정적이면서도 빠른 배포를 할 수 있어 프론트엔드와 백엔드 개발자들이 개발에 집중할 수 있는 환경을 만들고 있음

ㅇ 전체 서비스의 운영을 기획하고 설계하는 개발자가 데브옵스 개발자임

ㅇ 서비스를 안정적으로 운영하기 위한 일련의 과정 (서버 스케일 인, 아웃, 배포, 고가용성 유지 등)들을 모두 자동화하여 개발자가 더 자유롭게 개발하고 더 빠른 배포를 할 수 있는 환경을 만들어 주는 것이 데브옵스 개발자의 역할

 

(데이터 사이언티스트)

ㅇ 데이터를 전문적으로 다루는 '데이터 사이언티스트'라는 직군

ㅇ 쌓여진 데이터를 활용가능한 데이터로 바꾸는 개발자

ㅇ 보통 백엔드 개발자의 역할은 DB에 어떤 데이터를 쌓을지 설계하고, 데이터를 쌓는 것까지 진행함. 

ㅇ 어떤 데이터를, 어떻게 수집하고, 어떻게 전처리하고, 어떻게 활용할 지 결정/실행

ㅇ 크게 세 종류의 일

(1) 개발 : 데이터 엔지니어 (데이터 파이프라인 작업)

(2) 분석 : 데이터 분석가 (통계적 분석)

(3) 머신러닝 : 데이터 학습(유의미한 모델 추출)

ㅇ 통계학, 컴퓨터공학, 산업공학 등 관련된 전공이 필요함....생각보다 전공과 학력을 많이 봄. 

 

 

 

(API와 JSON)

 

API  : 프론트엔드와 백엔드 간의 약속

 

ㅇ 서로 통신을 하기 위한 인터페이스를 약속해 놓은 것

ㅇ 서로 원할한 통신을 위해 요청을 하고자 하는 페이지에 제대로 요청이 가도록 약속을 해놓아야 함

 

Rest API  : API 통신의 효율을 높이기 위한 약속

 

ㅇ API에도 요청을 어떻게 보내야 할지에 대해 사전에 약속이 필요함. 직접 주문하는지, 키오스크로 주문하는 지 등 등 

ㅇ 프론트엔드와 서버 간의 통신 효율성을 높이기 위해 어떻게 요청하고, 어떻게 전달할지를 정해 놓은 규약

ㅇ 웹/앱 페이지 안에서 하는 행동은 크게 4가지 정도. 지금 하고 있는 행동이 어떤 것인지를 서버 쪽에 요청을 보낼 때 미리 알려주는 것. 

 

JSON  : 결과값을 주고받는 형태

 

ㅇ 프론트엔드에서 서버 쪽으로 요청을 할 때는 약속해 놓은 API로 상황에 따라 method(GET/POST/PUT/DELETE)를 보여 주기로 했는데, 응답값을 어떻게 받을지에 대한 약속이 없음

ㅇ 단순한 정보만 나열하는것이 아니라 각각의 정보가 무엇을 의미하는지 같이 넣어 주어야 함. 그 방법이 JSON

ㅇ JSON은 Key와  Value로 이루어진 형태인데 예를 들면 {'product_name' : '만두' } ....key는 product name이고 value는 만두

ㅇ 데이터가 넘어오는 도중에 정보가 섞이게 되더라도 문제가 없음. 프론트엔드에서는 각각의 key에 맞추어 제목에는 product_name에 들어오는 내용을, 가격 표시에는 각각의 key에 들어오는 내용을 쏙쏙 뽑아내어 사용하면 됨

 

 

(프레임워크와 라이브러리)

 

서비스를 제대로 개발하기 위해서는 개발언어에 맞는 '프레임워크'라는 것을 추가로 배워야 함

 

(프레임워크)

 

ㅇ 개발을 쉽게 할 수 있도록 도와주는 도구 또는 툴

ㅇ 부대찌개 재료와 밀키트의 차이

ㅇ 우리가 개발을 쉽게 할 수 있도록 도와주는 도구, 즉 밀키트.. 그것이 바로 프레임워크

ㅇ 각각의 프레임워크에서 정한 규칙을 따라야 하는데, 그럼에도 불구하고 생산성이 극도로 높아지기 때문에 사용함

ㅇ Java는 Spring이라는 프레임워크, Python은 Django와 Flask, JavaScript는 React와 Vue, React native 등의 프레임워크가 있음

 

(라이브러리)

 

ㅇ 프레임워크가 밀크트라면, 라이브러리는 햄... 예를 들어 밀키트에 햄이 마음에 들지 않으면 수제 햄, 또는 오뎅을 바꿔도 됨.. 이 때 수제햄과 오뎅이 라이브러리임

ㅇ 웹사이트에 달력을 넣어야 하는데 프레임워크에서 기본 제공하는 달력이 마음에 안 들면 다른 달력을 사용하면 됨

라이브러리는 프레임워크 안에서 우리가 원하는 것을 찾아 사용할 수도 있고, 다른 개발자들이 만들어 놓은 것을 가지고 와서 사용할 수도 있음

 

[ 자평 ]

 

내게 친숙한 코치 수준의 국내 개발자는 이화식, 전병선, 임백준, 신현묵, 신승환 정도다. 

늙은 나는 이 책의 타켓은 아니다.

 

그저 요즘 젊은 개발자들은 어린 개발자들에게 무엇을 가르쳐 주려고 하는지 궁금해서 훑어 봤다.

 

댓글