사용자가 눈으로 보고 읽고 누르면서 작동시키는 텍스트, 색, 배치(레이아웃), 버튼 등을 가리킨다. HTML, CSS, JavaScript 등의 프로그래밍 언어를 주로 사용한다.
데이터를 보관하는 서버와 데이터베이스를 가리킨다. MySQL(마이시퀄)처럼 데이터베이스에 특정 정보를 찾아달라고 요구하는 데이터베이스 언어(query language), 그리고 Amazon S3처럼 인터넷 서버를 빌려 데이터와 웹페이지를 저장하고 이를 외부에 제공할 수 있게 하는 호스팅(hosting) 기술이 사용된다.
프론트엔드가 백엔드에서 데이터를 가져오고, 백엔드가 프론트엔드로 데이터를 보내는 데 필요한 연산을 해서 데이터가 있어야 할 곳에 제대로 도달할 수 있게 양쪽을 연결하고 소통하는 프로그래밍을 가리킨다. 애플리케이션이 프로그램된 방식에 따라 백엔드 또는 프론트엔드에 코딩해 넣을 수 있다.
예를 들어, 아마존 같은 쇼핑 사이트에서 원하는 상품을 가격순으로 정렬하려면 애플리케이션 계층이 검색 내용을 읽고, 원하는 상품 정보를 보내달라고 데이터베이스(백엔드)에 요청(쿼리)을 보낸 후, 돌아온 데이터를 가격순으로 정렬해서, 그 순서대로 페이지(프론트엔드)에 표시할 수 있게 하는 식이다. 애플리케이션 계층에는 Phython, PHP, Ruby, Scala 등의 언어가 사용된다.
백엔드에서 프론트엔드까지 앱이나 웹사이트를 만드는 프로그래밍 전체를 가리킨다. 개발하는 대상의 특성에 따라서 다른 종류의 기술이나 언어를 사용하는데, 고층 건물과 단층 주택을 지을 때 전혀 다른 건축 자재와 건설 방식이 필요한 것처럼 각 기술과 언어의 장단점이 다르기 때문이다. 그래서 웹브라우저에는 HTML과 CSS를 쓰지만 모바일의 경우 iOS 개발에 Swift, 안드로이드 개발에 Java를 쓰는 것이다.
LinkedIn > Learning > Technology for Product Managers 강좌를 바탕으로 정리한 내용입니다.