나는 환경공학과를 졸업 후 퍼블리셔로 시작하여 프론트엔드를 목표로 공부하고 있다.
내가 다니고 있는 회사에서의 상사와 대표는 모두 대학시절 컴퓨터 공학과를 나왔으며, 지금까지 계속해서 개발쪽 공부를 하고 계신다.
이제 N년차 개발을 하고있지만, 트랜드가 변함에 따라 새로 생기는 기술에 대해서는 공부를하여 알게되지만, '뿌리가 없다' 라는 생각을 자주하곤 한다. 그래서 나는 이 책을 사서 읽게되었다.
우선 이 책의 저자는 기획자의 위치에서 책을 집필한 것으로 보여진다.
다시말해 책의 내용이 얕고 넓다는 뜻이다. 내가 맡고 있는 포지션의 내용은 읽으면서 패스를 해도 무관할 것 같다.
내가 이책에 대해 중점적으로 알고 싶던 내용은 front-end
와 back-end
의 용어와 웹개발을 바라보는 관점의 차이였다. 해당 블로그도 Front-end
를 목표로 두고 있는 사람들이 읽어주면 좋을거 같다.
이 책에선 렌더링을 '카카오톡'으로 설명을 해준다.(카카오톡으로 설명을 해주니 머리속에 잘 그려진다.)
물론, 간단히 설명하기에 개발자라면 심화과정이 필요해보인다.
- 나의 스마트폰 : "카카오톡 설치 파일을 보내줘"
- 네트워크 : 애플 컴퓨터야 "xxx.xxx.xxx.xxx 주소로 카카오톡 설치 파일 보내줘"
- 애플 컴퓨터 : 네트워크야 "파일 받아"
- 네트워크 : "xxx.xxx.xxx.xxx"야 "파일 받아"
정말 이책에선 예시가 기가 막히게 되어 있다. web
을 식당
으로 비유를 하였는데 정말 찰떡이다.
클라이언트 = Front-end
: 가게의 손님
: 서버에게 계속 무언가를 요청
: 서비스를 사용하는 사용자들이 소요한 컴퓨터(예: 스마트폰, 컴퓨터)
서버 = Back-end
: 가게의 주방장
: 고객이 볼 수 없는 곳에 있다.
: 고객에게 보이지 않는 곳(뒤에 있다 = Back)
C : Create(생성해줘) 요청 - POST
R : Read(불러오는) 요청 - GET
U : Update(바뀌는) 요청 - PUT(전체)/PATCH(일부)
D : Delete(지우는) 요청 - DELETE
클라이언트 : 소프트웨어는 서버에 요청을 보냅니다. '타임라인에 사진을 올리는' 요청
CRUD
C : Create(올리는) 요청 - 컴퓨터주소/timelinecreate
R : Read(불러오는) 요청 - 컴퓨터주소/timelineread
U : Update(바뀌는) 요청 - 컴퓨터주소/timelineupdate
D : Delete(지우는) 요청 - 컴퓨터주소/timelinedelete
위와 같이 보면 웹페이지내 수만가지 주소가 생성되게 된다. 때문에 이 것을 하나의 묶음으로 관리를 한다.
RESful API : 컴퓨터주소/timeline 하나의 주소에 CRUD를 넣어서 관리
C : Create(올리는) 요청 - 컴퓨터주소/timeline
R : Read(불러오는) 요청 - 컴퓨터주소/timeline
U : Update(바뀌는) 요청 - 컴퓨터주소/timeline
D : Delete(지우는) 요청 - 컴퓨터주소/timeline
서버 : 클라이언트에서 요청을 보내면, 서버는 다음과 같이 생각합니다.
'요청을 보낸 사용자가 가입된 사용자인가?'
'비밀번호가 틀렸다! 확인해보라고 말해줘야겠네.'
'비밀번호를 까먹었다고? 재설정이 필요한지 물어봐야겠다.'
결국 서버는 표현하는 것은 '잘 됐어', '잘 안 됐어' 2개로 나뉜다.
하지만 이와 같은 표현이 너무나 많기 때문에 이를 체계화 하는 코드를 만듬(HTTP 상태 코드)
알람 어플로 예시를 들어보자.
알람 어플을 다운 받았다. 알람 어플로 나는 매일 아침 기상시각을 맞춰서
사용한다.
이런 경우 알람시간 DB
는 '클라이언트' 즉 Front-end
개발자가 관리를 한다.
알람 어플을 다운받아 실행을 하면 하단 배너에 '광고 배너'가 등장한다.
이런 경우 어플을 사용하는 모든 사람들이게 노출이 되므로 해당 DB
는 '서버' 즉 Back-end
개발자가 관리를 한다.
이 부분은 사실 다른 사람들은 다 알고 있지만, 정말 비전공자인 나는 긴가민가 했던 내용들이다. 그렇기 때문에 이렇게 글로 작성하는 것도 창피하지만 알고 가자는 의미로 적어본다.
LAN : Local Area Network - 컴퓨터가 연결된 작은 지역(예: 학교 컴퓨터실 하나, 아파트 하나, 커피숍 등)
MAN : Metropolitan Area Network - 도시의 여러 LAN을 연결(예: 도시, 나라)
WAN : Wide Area Network - 나라와 나라를 연결(예: 지구)
window
운영체제로도 서버를 돌릴 수 있다. 하지만, 우린 그렇게 하지 않는다.
이유가 뭘까?
바로 무료 이기 때문이다.
그럼, '우분투'란 무엇일까?
WINDOW
의 운영체제의 버전은 '95', '98', 'XP', '10' 등이 있는 것처럼
리눅스
에도 버전이 있다. 이 중 대표적인 버전이 '우분투' 이다
무료 서비스의 가장 큰 단점은 A/S가 되지 않는다는 것이다.
그것의 문제를 해결하기 위해 리눅스에서 A/S가 되는 버전인 Red Hat
버전을 출시 하였다.
도너츠 가게를 창업한다고 한다. '브랜드명', '메뉴', '인테리어' 등 수많가지를 고려해야된다. 하지만 '던킨 도너츠'를 창업하게 되면 나는 쉽게 도너츠 가게를 창업할 수 있다.
프레임워크
도 이와 같이 개발을 편리하게 해주는 프로그램이라고 생각하면 된다.
도너츠 가게에 아이스크림을 추가하려고 한다. 그럼 아이스크림 기계를 구매하였다. 추가로 팝콘도 팔기위해 팝콘기계를 구매하였다.
라이브러리
는 프레임워크 내 다양한 기술들을 미리 만들어 놓고 사용하는 하나의 메소드(함수)라고 볼 수 있다.
다양한 라이브러리
가 모여 하나의 프레임 워크가 된다.
궁금한것을 찾아보다가 같은 환경공학과 출신이라해서 댓글남겨요!
저는 늦게 공부시작해서 현재 개발공부를 하고 있습니다!
좋은 글들이 많아서 자주 참고하러 올게요! ㅋㅋ