ufris
Front end와 Back end, 네트워크 간략 개요 본문
Front end
프론트 엔드는 하루가 다르게 변하기 때문에 내가 알고 있는 하나를 계속 고수해 나가는건 위험합니다
그렇기 때문에 기본에 충실하고 그때 그때 변하는 흐름에 따라 지식을 쌓고 버리고를 해야합니다
Front end에서 html, css3, javascript가 가장 기본이자 기초입니다
html은 웹은 뼈대를 만드는 작업이고 css3는 뼈대에 살을 붙여 디자인을 하는 역할을 합니다
보통의 웹사이트처럼 간단한 화면만 필요하다면 Vue.js을 사용하고 바뀔 내용이 많다면 React.js를 사용합니다
위에서 말씀 드렸듯이 React, Vue같은 라이브러리는 유행과 흐름에 따라 빠르게 변하기 때문에 2~3년 안에 과거의 기술이 될 수 있습니다
그렇기 때문에 기본적인 html, css3, javasript 같은 기초를 배우고 필요에 따라 추가적인 라이브러리를 배우시는 것을 추천 드립니다
우선은 여기 까지 진행을 했다면 사용자의 도구에 따라 유연한 방식으로 컨텐츠를 보여줄 수 있게 하는 Bootstrap, Foundation, Backbone, AngularJS, EmberJS와 같은 프레임워크를 배우는 것이 필요합니다
또한 jQuery, LESS와 같은 라이브러리를 사용할 수 있다면 더욱 유용하고 효율적인 코드를 작성할 수 있게 됩니다
나중에는 Ajax 사용 경험을 요구하는 경우가 많은데 백그라운드에서 서버 데이터를 가져와 페이지를 동적으로 만드는 JavaScript를 활용하는 데 있어서 Ajax는 보편적으로 사용되는 기술이기 때문입니다.
추천 강좌로는
이고잉님의 오픈튜토리얼, 인프런이 있습니다
Back end
서버측에서 자바, 파이썬, 루비 등의 언어나 스프링, 장고, 루비 온 레일스 같은 프로그래밍 언어를 사용해 작업을 하는 것을 말합니다
작업을 통해 나온 결과를 Front end(사용자)로 보내줍니다
요즘 머신러닝, 딥러닝으로 파이썬이 대세이긴 하지만 웹 개발에는 루비 온 레일스라는 극강의 프레임워크가 루비 쪽에 있기 때문에, 딱 둘 중에 뭐다 우세를 정하기 어렵습니다.
변하지 않는 내용을 정적 페이지라 하고 그때그때 변하는 자료를 클라이언트마다 다르게 만들어 주는 것을 동적 페이지라고 합니다
즉 고정된 페이지는 정적 페이지지만 클라이언트마다 변하는 페이지같은 경우 동적 페이지라고 합니다
데이터를 검색, 저장 또는 변경하고 이를 Front end로 보내 사용자에게 다시 제공하기 위해서는 MySQL, Oracle 및 SQL Server를 사용합니다. MySQL이 오라클에 인수되었기 때문에 무료 DB를 사용하시려면 MariaDB나 MySQL를 사용하시면 됩니다
백엔드의 경우 동시에 여러명의 요청을 각각 제대로 보내줘야하는 동시성 처리 문제가 있습니다
네트워크
IP란 internet protocol 주소의 약자입니다
255.255.255.255까지 표현할 수 있는 IPv4는 4바이트 주소를 사용하는데 세계적으로는 IPv4 주소를 다 썼기 때문에 IPv6인 16바이트 주소를 사용하기 시작합니다
한국에서는 아직 IPv4를 다 쓰지 않아서 그런지 IPv6에 대한 효용성을 잘 못느끼는 것 같습니다
해당 IP 주소를 외워서 타이핑 치고 들어오기가 번잡하고 효율적이지 못하기 때문에 www.naver.com과 같은 도메인 주소를 사용합니다
그 도메인 주소가 가지고 있는 ip주소를 알아내서 접속하는데 이것을 DNS 조회를 통해 가능하게 합니다
도메인 주소도 희소성이 있고 유한한 자원이기 해당 도메인 주소를 사용하려면 1년에 몇 만원 비용을 내야합니다
포트
IP주소에 여러가지의 포트가 존재하고 각 통신 목적에 맞는 포트 번호를 할당하는 것이 관례입니다
웹을 일반적으로 접근할 경우 1번 포트로 암호화된 통신의 경우 2번 포트를 사용한다고 가정했을 때 웹서비스 통신에 오고가는 데이터 규약을 HTTP라고 하는데 이걸 암호화하지 않을 경우 1번 포트로, 암호화할 경우 2번 포트로 접근합니다
사실상
http://www.naver.com은 http://www.naver.com:1
https://www.naver.com은 https://www.naver.com:2
라고 보시면 됩니다
이러한 암호화된 웹서비스를 사용하려면 TLS 인증서를 발급받아서 올려놓아야 하는데 요새는 무료로 제공하는 서비스도 있습니다
인터넷 네트워크 기초 서적을 한 권 살펴보고, HTTP/1.1 프로토콜의 기초를 파악하는걸 추천드립니다