본문 바로가기

전체 글117

부스트캠프 2020 : 지원부터 합격까지 지금까지 안드로이드 앱을 쭉 개발해오다가 어느 날 문득 이런 생각이 들었다. 안드로이드도 결국 프론트엔드 영역이 아닐까? 대부분의 앱들은 별도의 서버에 데이터를 저장하고 가공된 정보를 받아와 앱에서는 띄워주는 역할만 한다. 물론 서버 없이 안드로이드만으로 구현한 앱도 있겠지만 대부분은 그렇지 않다고 생각한다. 이렇다보니 결국 개발 내용 대부분이 UI를 구현하고 서버에서 받은 데이터를 띄워주는 작업이었다. UI를 구현하는 과정에서 디자이너도 아닌데 계속 디자인을 고민하는 상황이 생기고, 적절한 위젯을 찾아 앱에 붙이고 데이터를 서버에서 받아와 띄워주는 작업의 반복에, 학교에서 배운 데이터베이스나 운영체제, 알고리즘 같은 지식들은 쓸 일도 없고, 서버 없이는 제대로 된 서비스는 만들지도 못한다는 생각들이 들.. 2020. 7. 23.
CSS Box Model이란? CSS Box Model이란? CSS 박스 모델은 HTML element가 웹 페이지에서 차지하는 공간을 정의한 모델이다. HTML element들은 각각 자신만의 영역을 갖고 있으며, 각 영역은 다시 여러개의 작은 영역으로 나뉜다. 각 element는 가운데 실제 element의 내용이 담긴 부분(content), element를 감싸는 경계(border), border와 content 사이의 영역(padding), border 바깥의 영역(margin)으로 구성된다. 각 영역들은 CSS의 property로 구현되어 있기 때문에 원하는 속성을 불러와 원하는 값을 넣어주면 된다. 이렇게 구현한 내용은 크롬에서 F12를 눌러 확인할 수 있다. 우리가 지정해준 CSS 속성들을 표시해줄 뿐 아니라 그림으로도 .. 2020. 7. 23.
Cascading Style Sheets (CSS) CSS란? CSS는 HTML 만으로 표현할 수 있는 디자인의 한계를 극복하기 위해 만들어진 언어이다. 물론 새로운 디자인을 위해서 HTML에 새로운 태그를 추가하는 방법도 있다. 하지만 디자인의 한계 외에도 태그로 구성된 HTML 문법으로는 극복할 수 없는 한계가 존재한다. HTML CSS JavaScript 예를 들어 위와 같이 3개의 목록을 가진 리스트가 있다고 하자. 지금은 사용되지 않는 font 태그를 이용하여 각각의 아이템의 글자를 검은색으로 설정하였다. 이 때, 모든 아이템의 글자색을 빨간색으로 바꾸려면, 아이템 하나하나의 속성을 바꿔주어야 한다. 위 리스트의 경우, 아이템이 3개 뿐이기 때문에 짧은 시간 안에 바꿀 수 있지만, 아이템이 1억개라면 단순한 작업임에도 엄청난 시간이 소모될 것이다.. 2020. 7. 21.
HyperText Markup Language (HTML) HTML이란? HTML은 웹 페이지를 작성하기 위한 언어이다. 따라서, 웹 페이지란 결국 HTML 문서라고 말할 수 있다. HTML 문서는 태그(Tag)라는 것들로 구성되는데, 기본적으로 태그 안의 것들을 설명하기 위한 꼬리표라고 볼 수 있다. 따라서 태그의 이름을 통해 어떤 용도인지를 알 수 있다. 또한, HTML 태그는 기본적으로 시작 태그와 종료 태그의 한 쌍으로 구성된다. 하지만 특수한 몇몇 태그의 경우 시작 태그만 사용하는 경우도 있다. 기본 구조 내용 첫번째 줄의 은 이 문서가 html 문서임을 나타낸다. 첫 줄을 제외하고 html 문서는 기본적으로 head 부분과 body 부분으로 구성된다. head 부분에는 인코딩 방식이나 문서 제목과 같은 문서에 관한 추가적인 정보를 작성하며, body .. 2020. 7. 20.
Electronic Mail (SMTP, POP3, IMAP / MIME) E-Mail Protocols 우리가 사용하는 이메일 또한 네트워크를 이용한 응용 프로그램이다. 따라서 메일을 주고 받을 때 사용하기 위한 여러 종류의 프로토콜들이 정의되어 있으며, 대표적으로는 TCP/IP 모델의 응용 계층에 속한 SMTP, POP3, IMAP 등이 있다. SMTP SMTP란 Simple Mail Transfer Protocol의 약자로, 간단한 메일 전송 프로토콜이라는 뜻이다. TCP 25번 포트를 통해 통신하며, 클라이언트에서 서버 또는 서버에서 서버로 메일을 전송할 때 사용한다. POP3 POP3란 Post Office Protocol 버전 3를 말한다. TCP 110번 포트를 사용하며, 서버에서 클라이언트로 수신된 메일을 전송할 때 사용한다. 이 때, 클라이언트로 전송한 메일은 .. 2020. 7. 17.
File Transfer Protocol (FTP) FTP란? FTP란 File Transfer Protocol의 약자로, 파일 전송 프로토콜을 말한다. HTTP와 마찬가지로 TCP/IP 모델의 응용 계층(Layer 4)에 속한 프로토콜이며, 네트워크를 통한 클라이언트와 서버 간 파일 전송을 위한 프로토콜이다. File Transfer FTP를 통해 파일을 전송할 때는 먼저 클라이언트가 서버의 21번 포트로 연결 요청을 보내고, 21번 포트를 통해 서버와 연결되면 다시 다른 포트로 연결하여 데이터를 주고 받게 된다. 이 때 서버에서 지정한 포트 번호로 클라이언트가 연결해 데이터를 보내면 Active Mode(능동 모드), 클라이언트가 자신의 포트 번호를 보내 서버에서 해당 포트로 데이터를 보내면 Passive Mode(수동 모드)이다. 각각의 과정을 좀 .. 2020. 7. 15.
HyperText Transfer Protocol (HTTP) HTTP란? HTTP란 HyperText Transfer Protocol의 약자이며, 그대로 해석하면 하이퍼텍스트 전송 규칙이다. 여기서 하이퍼텍스트란 html과 같이 정보를 효과적으로 전달하기 위한 문서를 말한다. 즉, HTTP란 html과 같은 문서를 전송할 때 따라야 하는 규칙들을 정의해놓은 것이다. HTTP는 TCP/IP 모델의 응용 계층(Layer 4)에 속한 프로토콜이며, 주로 서버와 클라이언트 사이에서 html 문서를 교환할 때 사용된다. 문서를 전송할 때는 TCP와 UDP를 통해 전송하며, 80번 포트를 사용한다. HTTP는 클라이언트에서 서버로 요청(request)을 보낼 때 따라야 할 형식, 서버에서 클라이언트로 응답(response)을 보낼 때 따라야 할 형식을 각각 정의하고 있다. .. 2020. 7. 15.
OSI Model & TCP/IP Model OSI Model이란? OSI(Open Systems Interconnection) 모델이란 ISO에서 computer networking 과정을 정의한 모델이다. OSI 모델은 networking 과정을 크게 7개로 나누어 분류하여 정의하며, 각각의 단계를 layer라고 한다. 이 layer에는 어떻게 데이터를 가공하여 전송할 지 정의된 protocol들이 속해있다. 각각의 protocol들은 하위 layer의 기능을 사용할 수 있으며, 이를 바탕으로 상위 layer에게 기능을 제공한다. 이제 7개의 layer들은 각각 무슨 역할을 하며, 어떤 protocol들이 속해있는지 알아보자. OSI Layers Layer 1 - Physical Layer (물리 계층) 물리 계층은 하드웨어를 통한 데이터의 물.. 2020. 6. 30.
Query Processing & Cost Measuring Query Processing이란? 데이터베이스에서 데이터를 가져오거나 데이터를 삽입할 때 사용하는 언어를 Query라고 한다. Query Processing이란 우리가 보낸 Query를 데이터베이스가 처리하는 과정을 말한다. Basic Step 기본적으로 query를 처리하는 과정은 다음과 같다. 1. 입력받은 query를 parser와 translator가 relational-algebra 형태로 변환한다. 2. optimizer가 데이터의 통계 정보를 바탕으로 query 실행 계획을 세운다. 3. evaluation engine이 세워진 계획을 바탕으로 query를 실행하여 결과를 반환한다. Query Cost Measuring query optimization이란 query를 실행 가능한 계획 중.. 2020. 6. 24.