Today I Learned

초창기 웹 렌더링 방식과 Ajax의 등장 모든 웹페이지는 정적인 페이지였다. 변화가 있을 때마다 서버로부터 새로운 HTML을 전송받아 다시 렌더링을 해야 했고, 이는 성능적 문제와 부정적인 사용자 경험의 이슈가 있었다. 그 후, 자바스크립트를 통해 비동기적으로 데이터를 주고 받는 Ajax가 등장했고, 전체 페이지를 리렌더링하지 않고 필요한 부분의 데이터만 불러와 웹 사이트 화면을 동적으로 변경할 수 있게 되었다. 기존에 서버에서만 이루어지던 다야한 로직 처리나 HTML 생성을 상당수 클라이언트(브라우저)에서 처리할 수 있게 되었다. 현재는 React, Angular, Vue 등의 다양한 프레임워크 사용으로 웹을 보다 쉽게 구축할 수 있게 되었다. CSR(Client Side Rendering) React..
Ajax란? Asyncrhronous JavaScript And Xml(비동기식 자바스크립트와 XML)의 약자로, 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 방식의 하나이다. 먼저 브라우저와 서버의 통신 방식을 살펴보면, 서버는 요청받은 페이지(HTML)를 반환하고, 이때 HTML에서 로드하는 CSS, JavaScript도 함께 반환된다. 클라이언트(브라우저) 요청에 따라 서버는 정적인 파일을 반환할 수도 있고 서버 사이드 프로그램이 만들어낸 파일이나 데이터를 반환할 수도 있다. 서버로부터 웹페이지가 반환되면 클라이언트는 이를 렌더링하여 화면에 표시하는 것이다. Ajax는 자바스크립트를 이용해 비동기적으로 서버와 브라우저가 데이터를 교환하여 통신할 수 있도록 해준다. 쉽게 말해, 기존의 웹 페..
HTTP 메소드란? HTTP 메소드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 말한다. 쉽게 말하면, 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법이다. HTTP 메소드는 9가지 종류로 구성되어 있다. GET : 리소스 취득. URL(URI) 형식으로 웹서버측 리소스(데이터)를 요청 HEAD : 메세지 헤더(문서 정보) 취득. GET과 비슷하나, 실제 문서를 요청하는 것이 아니라 문서 정보를 요청. 이에 따라 HTTP 응답 메세지에 본문(Body) 없이 HTTP 헤더 정보만을 보냄 POST : 내용 전송(파일 전송도 가능). 클라이언트에서 서버로 어떤 정보를 제출하면, 요청 데이터의 ..
브라우저란? 우리가 거의 매일 사용하고 있는 소프트웨어, 인터넷 익스플로러, 파어어폭스, 사파리, 크롬, 오페라, 등과 같은 소프트웨어가 브라우저이다. 브라우저는 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시한다. 여기서 말하는 자원은 보통 HTML 문서이지만, PDF나 이미지 또는 다른 형태일 수 있다. 자원의 주소는 URI(Uniform Resourse Identifier)에 의해 정해진다. 브라우저의 핵심 기능은 사용자가 참고하고자 하는 웹페이지를 서버에 요청하고, 서버의 응답을 받아 브라우저에 표시하는 것이다. 브라우저는 서버로부터 HTML, CSS, JavaScript, 이미지 파일 등을 응답받는다. 브라우저 기본 구조 브라우저의 기본 구조를 다시 살펴보자. 사용자 인터페이스(User ..
Git 브랜치 전략 Git 브랜치 전략은 프로젝트의 git 브랜치를 효과적으로 관리하기 위한 워크플로우를 의미한다. 직접 브랜치 전략을 수립해도 되지만, 이미 많은 모범 사례들이 존재한다. 그 모범사례 중 유명한 Git Flow에 대해 알아보자. Git Flow Git Flow는 Vincent Driessen이 2010년에 올린 'A successful Git branching model'이란 블로그 글이 인기를 끌며 대중화된 브랜치 전략이라고 한다. Git Flow는 크게 Main / Develop / Supporting 브랜치로 구분하여 브랜치를 관리한다. 이때 Supporting 브랜치는 다시 Feature / Release / Hotfix 브랜치로 나뉜다. Main 브랜치와 Develop 브랜치는..
git의 branch란? git은 데이터를 change set이나 변경사항(diff)으로 기록하지 않고, 일련의 스냅샷으로 기록한다. 커밋을 하면 git은 현 staging area에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메세지 같은 메타데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체를 저장한다. 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지 알 수 있다. 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고, 브랜치를 합친 merge 커밋의 경우 이전 커밋 포인터가 여러 개 있다. git의 브랜치는 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것이라고 생각하면 된다. 기본적으로 git은 main(과거엔 master) 브랜치를 만든다..
Jyophie
'Today I Learned' 카테고리의 글 목록 (4 Page)