All Articles

책 리뷰 : 비전공자를 위한 이해 할 수 있는 IT지식

개발바닥에서 향로님과 호돌맨님 두분께서 전부 강추하셔서 구매를 하게 된 책.
이참에 우리팀에 일하고 있는 PO님에게도 알려주면 좋을 것 같아 내 기준으로 PO가 알면 좋을 내용들만 정리하고 살을 좀 더 덧붙였다.

6장 - Web

HTML - Hyper Text Markup Language

CERN(유럽 입자 물리 연구소)의 연구원이었던 팀 버너스리에 의해 탄생. 종이 문서로 공유되던 문서 내용을 네트워크로 다같이 공유하면 좋지 않을까로 시작하여 HTML로 변모하였다. 기본적으로 책이나 논문에 기록되는 문서양식을 태그로 가져와 작성하는 방식이다.

CSS - Cascading Style Sheet

단조로운 HTML 양식에 좀 더 디자인적인 요소를 추가할 순 없을까 하다가 탄생한 마크업 언어. HTML이 책의 목차와 내용이라고 친다면, CSS는 색상, 폰트, 책표지 디자인, 레이아웃 등을 표현해준다고 이해하면 쉽다.

HTML + CSS 작업을 일컫어 마크업 또는 퍼블리싱 이라고 한다.

Javacsript

브랜든 아이크 라는 개발자가 최초의 웹 브라우저를 상용화시킨 넷스케이프에서 근무할 당시 단 10일만에 설계하여 개발한 언어. 기본적인 용도는 우리가 보고있는 웹 페이지에서 마우스 또는 키보드 동작이나 명령을 통해 페이지에 변화를 일으키기 위함이다. 예를 들어 네이버 검색창에 검색어를 입력하면 나타나는 연관검색어, 몇초마다 바뀌는 뉴스 기사 클립등을 들수 있다.

보편적으로 HTML + CSS + Javascript 를 하는 작업을 통틀어 프론트엔드 라고 한다. 
정확히는 클라이언트(브라우저, 어플리케이션) 에서 일어나는 모든 것을 의미한다.

Web browser(웹 브라우저)

우리가 보고있는 모든 웹페이지는 브라우저 어플리케이션을 통해 동작한다. 다양한 브라우저에 의존하고 있기 때문에 각 브라우저의 특징을 이해해야한다. 그렇다고 모든 브라우저를 확인해야 할 필요는 없다. 서비스의 규모와 팀 인력, 사용자들의 사용환경 및 브라우저별 점유율을 고려하여 대응한다.

반응형 CSS

우리가 보는 페이지는 각 기기별 디스플레이 사이즈마다 다르게 보인다. 이를 대응하기 위해 통상적으로 반응형 CSS를 도입하여 적용하고 있다. 모든 기기별로 대응해야하는 비효율을 어느정도 해소 할 수 있다. 하지만, 기본적으로 HTML 구조 위에 CSS로 컨트롤 하는것이기 때문에 구조적인 한계 또한 존재한다. 따라서, 팀의 상황이나 프로젝트의 규모에 따라 어느 정도까지 각 기기별 디스플레이를 대응하고 구성할지 유연하게 대처해야한다.

7장 - 데이터베이스(Database)

SQL(Structured Query Language)

단순 비교로 엑셀의 행렬을 빗대보면 이해하기 쉽다. 각 행의 첫열에 항상 제목, 열 마다 내용이 들어가는 것과 비슷한 구조. 각 열에는 제목에 제시한 내용과 동일한 속성의 데이터가 들어가는 것이 원칙이다.

DB 를 Join 한다?

극단적으로 간단하게 비유하자면 엑셀에서 VLookup이나 HLookup을 사용하는것을 상상해보자. 다른 테이블에 있는 데이터를 일정 규칙에 맞추어 추가로 덧대는 것이다.

경우에 따른 이미지의 위치?

자주 변경되어야 하는 이미지는 데이터베이스에 저장되어야 하고, 자주 수정되지 않으나 빈번하게 트래픽이 발생하는 이미지는 어플리케이션 내부에 저장하여 사용한다.

8장 - 프레임워크와 라이브러리

프레임워크(Framework)

특정 목적의 어플리케이션을 만들기 위해 필요한 기능들을 제공해주는 일종의 툴킷. 도너츠가게를 창업하기 위해 던킨도너츠 프랜차이즈 신청하는 것과 비슷하다.

라이브러리(Library)

프레임워크와 비슷한 맥락이나 좀 더 작고 유연한 구조를 가진 툴킷. 예를 들면 도너츠가게에서 커피를 팔기위해 특정브랜드의 커피머신을 사용하는 것과 비슷하다. 각 프랜차이즈마다 반드시 동일하게 커피머신을 사용하지 않는 것도 비슷한 맥락으로 이해할 수 있다.

개인적으로 이제 막 개발을 시작한 분이라면 무조건 처음부터 끝까지 다 숙지해야한다고 생각한다. 그리고 유튜브에서 향로님이 말했듯이 비개발자가 여기 나온 내용들을 모두 숙지할 필요는 없다고 생각한다. 그냥 대화가 안통한다면 그건 그저 그 개발자가 비개발자랑 대화하기 싫다는 의미로 밖에 들리지 않는다는 사실을 명심하자.