본문 바로가기

Study/용어익히기

(10)
브라우저 작동원리 #1. 웹사이트 접속 - 주소창에 naver.com을 치면.... 1. DNS (IP주소 반환) 웹브라우저는 DNS에게 해당 호스트의 IP주소 요청. 숫자 형태의 IP주소를 받는다. 2. 3 Way Handshake - 브라우저와 서버 사이에서 데이터를 주고 받기 위해 3 Way Handshake 한다. - Handshake 과정이 끝난 후 브라우저는 서버에게 자료 요청 #2. HTTP Request + HTTP Response 1. HTTP Request - 브라우저가 서버에게 데이터 달라고 요청 2. HTTP Response - 브라우저의 요청에 서버가 응답해서, 데이터를 준다. #3. Data Parsing - 브라우저는 서버로 부터 받은 데이터를 해석 1. Construction 1) HTML P..
헷갈리는 IT용어 이해하기__9. 전체적으로 개발 과정은 어떻게 돌아가는가? # 클라/ 서버 우리는 다양한 기기를 사용한다. 스마트폰, 태블릿, 데스크톱, 노트북 등등. 이 기기의 공톰점은 '컴퓨터'라는 점이다. 컴퓨터는 CPU, 메모리, 보조기억장치 와 같은 부품을 가지고있다. 그런 부품들을 우리가 직접 제어하면서 컴퓨터를 사용하진 안흔다. 어떤 프로그램들이 그 역할을 대신 해주는데, 그것이 바로 '운영체제'다. 대표적으로 윈도우, Mac OS, iOS, 안드로이드 등이 있다. 이 운영체제 위에 올라가는 프로그램을 개발하는 사람을 클라이언트 개발자라고 한다. 서버사이드에는 서버 컴퓨터가 있다. 서버에서 많이 사용하는 운영체제는 리눅스이며, 기본적으로 안정적이고 무료이기 때문에 많이 쓴다. 그 위에 서버 프로그램을 돌린다. 이 서버 프로그램을 만들어서 서버 컴퓨터에 돌리는 사람을..
헷갈리는 IT용어 이해하기__8. 협업 (feat. git, xd ... ) # 개발자간의 협업 관리 - git - 개발 과정은 복잡하다. 이 복잡한 과정의 히스토리와 각각의 작업 영역을 겹치지 않게 하기위해 깃을 고안되었다. 깃은 다음과 같은 행위들을 거치며 개발 소스들을 관리한다. 1) 커밋 (commit) - 무슨 개발을 했는지 적어주는 메모, 이 커밋들의 내역를 커밋로그(Commit log)라고한다. - 개발 내역 분석및 추적 2) 브랜치(Branch) - '분기','가지'라는뜻으로, 새로운 가지를 뻗는 것을 의미. - 분석 기능과 동시에 진행해야하는 다른 코드들은 브랜치로 따로 관리한다. 각각 서로 다른 곳에서 개발하는 것. - 하나의 프로젝트를 진행할 때 동시에 여러 기능들이 충돌 없이 작업할 수 있다. 3) 머지(Merge) - 각각 브랜치에서 작업한 코드들을 합치는..
헷갈리는 IT용어 이해하기__7. 프레임워크, 라이브러리 #프레임워크? 애플리케이션을 혹은 웹을 더 쉽고 빠르게 개발하기 위해, 고안된 방법이다. IOS, Mac OS, WatchOS 등의 애플의 애플리케이션을 개발하기 위해서는 Swift 혹은 Object-C라는 언어를 사용해야한다. 여기에 애플에서 제공해주는 프레임워크인 코코아(UIkt, Appkit)를 사용하면 애플리케이션을 더 쉽고, 빠르게 만들 수있다. 안드로이드 또한 자바혹은 코틀린 이라는 언어를 사용한다. 그리고 안드로이드 프레임워크를 사용하면 안드로이드에 올라가는 애플리케이션을 더 쉽게 만들 수 있다. 문제는 웹이다. 웬은 특정회사의 소유가 아니다. 그래서 웹 프레임워크 및 라이브러리는 여러 사람이 만든다. 2020 기준, 가장 유명한 웹 프론트엔드 프레임워크는 다음과 같다. Angular.js ..
헷갈리는 IT 용어 이해하기__6. 데이터베이스 #데이터 예를 들어 생각해보자. 쇼핑몰에서는 '회원명', '아이디', '주문 상품 명', '상품 가격' 등이 데이터다. 가만히 살펴보면 이 데이터는 모두 서로 관계가 있는 텍스트. 이렇게 관계가 이어진 텍스트는 관리가 어렵다. 만약 '홍길동'이라는 사람의 '생일'을 수정해야한다면? 그 많은 텍스트 중 이름이 '홍길동'이라는 사람을 찾아서, 그의 '생일'을 수정해야하는데, 만약에 동명이인이있다면, 그에 따른 코드도 따로 짜서 관리해야하고.. 여간 복잡한게 아니다. 이렇게 복잡하게 관리될 데이터는 기본적으로 단 1%의 결점도 없어야 한다. 이러한 점을 데이터의 무결성이라고 한다. 그래서 이렇게 복잡한 데이터를 완벽하게 관리하는 것은 힘들다. 이런 머리아픈 문제를 해결하기 위해 고안된 방법 중 하나가 '관계형..
헷갈리는 IT 용어 이해하기__5. 웹 이해하기 #웹의 구성요소 웹은 기본적으로 3가지로 구성되어있다. HTML, CSS, javascript 1) HTML(Hyper Text Markup Language) '유럽 입자 물리 연구소(CERN)'에서 일하던 '팀 버너스리'에 가 만듦. 운영체제나 프로그램에 상관 없이 일정한 형식이 동일하게 보이도록 하는 새로운 개념이 필요성을 느끼고, 제안한 문서. 브라우저만 있면 운영체제 상관없이모두 웹 사이트에서 동일한 정보를 볼 수있다! 참고로, HTML은 프로그래밍 언어가 아니다. HTML은 컴퓨터에게 특정 일을 시킬 수 있는 언어가 아닌, 브라우저가 볼 수 있는 문서를 적는 언어다. 2) CSS HTML문서에 디자인을 입힐 수 있는 코드. HTML문서에 컬러도 넣고, 예쁘게 만들어주는 기능을 한다. HTML과 ..
헷갈리는 IT 용어 이해하기__4. API/JSON #API 소프트웨어가 다른 소프트웨어의 기능을 쓰기 위해 중간에 필요한 체계입니다. 쉽게 말해, 요청을 구분할 수있도록 하는 '체계', API는 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계이다. API는 서버개발자가 개발하고, 클라이언트는 그API를 사용합니다. #클라이언트 관점에서 생각 클라이언트는 API에 요청한다. 클라이언트는 보통 CURD에 입각해서 요청한다. #CRUD 클라이언트에서 데이터를 다룰 때 기준이 되는 요청이다. ex) 클라에서 수행해야하는 요청이 타임라인에 사진을 올리는 요청이고, 이것을 CRUD에 입각해서 풀어낸다면.. Creat : 타임라인에 사진을 '올리는'요청 Read : 타임라인에 사진을 '불러오는'요청 Update : '바꾸..
헷갈리는 IT 용어 이해하기__3. CI/CD # 도입 배경 - 요즘같이 빠르게 진화하고 변화하는 시대에 어떻게 하면 시장과 고객의 요구에 빠르게 반응해서 제품을 출시, 업데이트 할것인가는 큰 과제이다. 바로 이것을 위해 세계적으로 많은 기업들이 CI/CD를 도입했다. # 간단히 어플리케이션 개발부터 배포까지 이 모든 단계들을 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 잇도록 만드는 것을 말한다. # CI란? - Continuous Intrgration (지속적인 통합) 의 약자. - 버그수정이나 새로 만드는 기능들이 메인 리파지토리에 주기적으로 빌드되고, 테스트 되어서 머지 되는 것을 의미한다. - 1991년 Grady Booch에 의해 사용되어지다가, 후일 Extreme Programming 개발방법론에 채택되었다. ..