- 인터페이스(Interface): 사물과 인간 사이의 경계에서 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜을 말한다.
- 프로토콜 : 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 통신 규약 및 약속
- REST(Representational State Transfer) : 네트워크 아키텍처 스타일이다. 여기서 '네트워크 아키텍처 스타일'란 네트워크 자원을 정의하고 처리하는 방법 전반을 일컫는다 /
- REST는 HTTP를 잘 활용하기 위한 원칙이라고 할 수 있고 REST API는 이 원칙을 준수해 만든 API이다.
- JSON : JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식
개발자란?
- 코딩 :컴퓨팅적 사고를 바탕으로 프로그래밍 언어를 도구로 사용해 알고리즘이라는 절차에 따라 효율성을 중시하며 코드로 작성된 명령서를 만들 수 있는 능력
개발자란 코딩을 하는사람이다.
개발자의 종류는 어떤것이 있을까?
- 웹개발자
- 게임개발자
- 앱개발자
- 데이터사이언티스트
- SI/SM 전산개발자
- 알고리즘 개발자
백엔드 개발자는 어디에 속해 있을까?
바로 1번 웹 개발자에 들어가있다 그렇다면 웹개발자란 무엇일까?
웹 개발자란?
Http 프로토콜을 커뮤니케이션 매체로 사용하는 웹 페이지, 웹사이트 등 www 기반 소프트웨어 개발자 또는 소프트웨어 엔지니어를 말한다
웹 개발자의 종류
프론트엔드 개발자 (front end developer)
사용자가 보는 화면을 만드는 업무를 한다.
UI 개발 (User Interface)
사용자가 웹화면을 봤을때 맞우하는 모든것을 개발한다. 여기서 디자인이 아닌 개발을 한다는것이 중요하다.
디자인은 디자이너의 영역이다.
이벤트에 대한 로직을 개발
event란 무엇일까?
바로 사용자의 행동의 변화를 의미한다.(클릭,스크롤,드래그 등등)
이 사용자 행동변화의 따라 UI들이 변화하는 로직을 개발하는것이다.
크로스 브라우저/디바이스
웹에 접속하는 프로그램은 다양하다(safari,chrome,internet explore)
또한 디바이스도 다양하다 (핸드폰,노트북)
이 각 브라우저와 디바이스에서 화면을 어떻게 노출시킬지 조정하는것을 크로스 브라우저/디바이스 라고한다.
데이터 시각화
백엔드에서 받은 데이터를 사용자가 보기에 어떻게 보여지는지를 정하고 개발하는것
백엔드에서 넘어오는 데이터는 시각화가 되어있지 않고 결국 텍스트 형태로 넘어온다.
텍스트형태로 넘어온 그래프의 수치들을 사용자가 보기 편리하게 그래프형식으로 표현하는것 이런것을 의미한다.
사용언어
- html / css / javascript
- 사용자가 보는 화면에 정보를 주입하고(html)
- 색상,폰트,위치등을 조정하여 사용자가 보기에 이쁘게,편리하게 만들어낸다. (css)
- 사용자에 이벤트발생에 따라 변화를 준다(java script)
결국 사용자가 웹에 접속해서 보는 모든 화면을 관리하고 만드는 것이다.
백엔드 개발자(beck end developer)
클리아이언트(user side) 와 서버 (server side)의 소통,상호작용을 하게 만들어주는 일을한다.
언어와 구조의 상이함으로 인해 발생한 간극을 소통하게 만들어주는 역할
사용언어 (모든언어를 사용하는것이 아닌 프로잭트에 적합한 한 언어만 사용)
- java
- node.js
- python
- ruby
- php
API(application programming interface)
애플리케이션이 어떤 프로그램이 제공하는 기능을 사용할 수 있게 만든 매개체다
- HTTP API란? HTTP를 사용해서 서로 정해둔 스펙으로 데이터를 주고 받으며 통신하는 것
- REST API란? HTTP API에 속한것인인데 4가지 제약 조건을 만족해야한다.
- 자원의 식별
- 메시지를 통한 리소스 조작
- 자기서술적 메서지
- 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어
요즘은 REST API를 대부분쓰는데 구성요소를 보면 이유를 알수 있을것 같다.
- 자원(Resource): URI 로 구성되어있다.
- Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다.
- 행위(Verb): HTTP Method
- HTTP 프로토콜의 Method를 사용한다.
- HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드를 제공한다.
- 표현(Representation of Resource)
- Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타내어 질 수 있다.
UI를 User /Interface ,API를 application programming /Interface 로 구분하면 편하다.
UI는 사용자가 웹 호면을 다루기 위한 도구이다.
API는 클라이언트가 서버를 다루기 위한 도구로 생각하면된다.
Data pipeline
데이터가 생성되는 순간부터 데이터가 흐르는(이동하는) 모든 과정 을 칭하며
데이터가 A 지점(소스)에서 B 지점(대상)으로 이동하는것을 의미한다.
- 데이터 파이프라인 : 데이터를 한 시스템에서 또다른 시스템으로 옮기는 작업을 뜻한다
- 5가지 요소extracting (추출) transform (변환) combining (결합) validating(검증) load (적재)
- ETL : 보통 큰 덩어리의 data를 특정 시간에 한 공간에 저장하는 작업을 한다
- extracting (추출) transform (변환) load (적재)
이것을 주로 다루는 데이터 엔지니어를 따로 두는 회사도 있다.
infrastructure
서비스 및 플랫폼을 개발하기 위해 필요한 모든 자원을 관리하는 기반
서비스를 운영하기 위한 IT 리소스(서버, DB, 네트워크, 스토리지 등)를 구축하고 운영하기 위한 모든 개념을 통칭
architecture(번역:건축학)
최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경등을 설명 및 설계하는 청사진 또는 설계도 입니다.
- 시스템 구성 및 동작 원리
- 시스템 구성요소에 대한 설계 및 구현을 지원하는 수준을 기술
- 구성 요소 간의 관계 및 외부환경과의 관계 묘사
- 요구사양 및 시스템 수명주기 고려
- 시스템의 전체적인 최적화를 목표
어플리케이션을 만들때 이 어플리케이션이 어떻게 작동하는지 구조를 짜는것이며 지켜야할 개발 원칙이 될수도 있다.
서비스의 안정성,효율성 등등을 고려하여서 개발의 계획과 원칙을 세우는것이라고 할 수 있다.
fullstack
위의 두가지 업무가 다 가능한 개발자를 지칭한다.
나는 어떤 개발자가 되고 싶은가?
'개발자 정진관 > 처음은 누구나 힘들다.' 카테고리의 다른 글
티스토리 블로그가 불편한점 (0) | 2022.05.04 |
---|---|
단축키...단축키....단축키!!!!!!! (0) | 2022.03.23 |
나의 첫 개발일기 (0) | 2022.03.10 |