전체 글 썸네일형 리스트형 DNS(Domain Name Server)의 정체와 통신 방법 1. DNS의 정체와 종류 DNS는 도메인 네임 서버의 줄임말, 도메인 이름과 이에 해당하는 IP주소 저장해 놓은 데이터베이스 서버이다. 내 로컬 네트워크를 뛰어넘어 인터넷에 존재하는 DNS는 수없이 많다. 따라서, 내가 외부의 어떤 도메인의 IP를 주소를 문의할 때는 내 지역과 가장 가까운 DNS를 찾아가는 것이다. 2. DNS 찾기는 "효율성"이 모토이다. - 먼저 DNS 캐쉬가 있는지 찾은 후 도~~~저히 없다면 이젠 정말 외부 DNS에서 ip주소를 찾아내야 하는 것이다. 1) 웹브라우저는 리졸버(프로그램)를 호출한다. 2) 리졸버는 소켓의 gethostbyname() 이라는 함수를 호출해서 ip 주소를 요청하는 함수를 호출한다. 3) gethostbyname()은 운영체제 안의 프로토콜 스택에서 .. 더보기 웹브라우저 창에 www.google.com을 입력하면 일어나는 일 - 브라우저가 ip 주소 찾는 방법 우리가 거의 매일 쓰다시피하는 웹브라우저는 본질적으로 응용프로그램이다. 이 응용프로그램은 주소창에 일명, URL(www.google.com)을 입력하면, 1) URL에 해당하는 서버 IP 찾기 2) 그 서버를 찾아가서 HTML 데이터를 달라고 요청 3) 그 서버가 준 HTML 데이터 등을을 웹브라우저 화면에 보여주는(렌더링) 주기 1) URL에 해당하는 서버 찾아가기. URL에 해당하는 서버를 찾아가려면 서버의 IP 주소를 알아야 한다. 서버의 URL -- IP 매칭되는 데이터는 DNS 라는 서버에 저장되어있다. 따라서, DNS라는 서버에 해당 URL의 IP주소를 요청(Request)하고 응답(Response) 받으면 된다. 하지만, 같은 주소를 매번 DNS 서버에 물어보는 것은 비생산적이다. 따라서 내.. 더보기 Material App vs. Scaffold 차이점 Material App은 flutter에서 제공하는 material design이라는 이름의 디자인을 제공하는 앱이다. Material App 자체가 하나의 앱을 제공하는 위젯이며, home에 어떤 위젯을 넣느냐에 따라 앱의 컨텐츠가 결정된다. Scaffold는 보통 material app의 home 에 해당하는 위젯이다. Scaffold는 상위 material 위젯이 없이 단독으로 사용될 수 없다. Material App은 앱의 전체적인 디자인 테마를 설정할 수 있으나, Scaffold는 그런 속성 자체가 없다. Material App이 두 개 이상 존재해도 되는가? 가능은 하다. 하지만 별 유용성이 없다. 마치, 하나의 앱에 두개 이상의 컨셉의 모바일 페이지가 존재하는 효과가 나기 때문에 하나의 앱에.. 더보기 Google 면접이 준 힐링 어제 구글 최종면접을 봤다. 4번의 면접은 다소 빡세게 느껴졌지만, 면접을 준비하고 치르면서 그동안 내가 살아온 이 한국 문화의 가치관, 나의 가치관에 물음표를 던질 수 있었고 실패라는 것에 대해, 인생이란 것에 대해 진지하게 생각해보는 계기가 되었다. 이상하게도 이 면접과정을 통해 내 마음 속 깊이 자리잡고 있던 삶에 대한 회의감과 자조, 죄책감과 자신에 대한 비난이 사라지게 되었다. 합격 여부는 중요하지 않다. 결과론적이고 성공집착적인 나에게, 과정의 중요성, 순수한 목적의 중요성을 다시 일깨워준 이 시간이 감사할 따름이다. 구글은 "정답"보다는 문제를 대하는 자세, 사고방식, 풀어나가려는 의지를 보는 것 같다. 분명 1차 면접 초반에 영어를 버벅대어 망했다고 생각했는데, 감사하게도 유럽 CIO 면접.. 더보기 당신이 타입스크립뜨를 써야하는 이유유유유유 당신이 타입스크립트를 왜 써야하는지 말해주겠다. 타입스크립트는 자바스크립트 + HTML 짬뽕언어인 JSX라는 놈을 쓰는 "리액트" 프레임워크를 사용하는 웹 프론트엔드 개발자에게 굉장히굉장히굉~장히 필요한 어시스턴트이다. 자바와 자바스크립트 차이점 자, Java 또는 C ...그리도 많이 듣고 귀에 피가 흘리도록 주구장창 들었던 이 컴파일 언어와 웹 브라우저가 알아먹는 언어인 자바스크립트와의 차이점은 어느 시점에 컴퓨터가 알아먹는 언어로 바꿔주느냐 이다. 앞서 말한 자바 커피언어 씨부럴 언어들은 먼저 다~~~ 컴퓨터가 이해하기 쉬운 언어로 바꿔놓은 뒤에 모두 컴파일 다~ 해놓고 나서!!! 컴퓨터한테 던져준다. 그래서 컴파일 과정에서 미리미리 오류를 확인할 수 있다! 컴파일(해독) 언어의 좋은 점? + 문법.. 더보기 직장내 갑질, 괴롭힘 타파!를 위한 오디오 녹음, 음성인식 사이트 개발 https://iamworkking.com/ iamworkking 맘편하게 일하기 iamworkking.com 핸드폰으로는 실시간 녹음하기가 어렵다. 밧데리가 닳거나 하는 문제 때문에. 데스크톱 pc에서 웹브라우저를 띄워놓거나 최소화 시켜서 실시간 장시간 오디오를 녹음하고 음성인식 중 폭언으로 미리 등록해둔 단어가 나오면, 화면에 그런 말하면 안되요~ 라는 경고 알림창도 뜨도록 개발했다. 앞으로 AI 인공지능을 활용한 좀더 세분화된 기능을 추가할 예정. 직장내 갑질..참다 참다 언젠가 신고할 날이 올 수 있기에 미리미리 항상 녹취해놔서 증거자료로 쓰실 분들을 위해 만들어봤다. 오디오는 웹브라우저에서 제공하는 기능 그리고 파일은 로컬에 사용자가 저장하므로 오디오파일이 외부 서버에 저장되는 일은 없다. 안심.. 더보기 1. 리액트 앱 설치 오늘의 최종목표 npx create-react-app (위치) : 리액트 앱을 만들어라~ node module을 다운로드 받고 리액트 웹사이트 기본구조를 만들어준다! 1. 기본 환경 셋팅 1) Node.js 설치 (이미 설치되어 있는지 확인하는 방법 : 터미널에서 node -v 를 입력해서 버전명이 나오면 기존에 설치) 왜 설치해야 해? React 관련 모듈/라이브러리/패키지들이 모두 node에서 제공하는 모듈이기 때문이다. 가령, React 관련 라이브러리는 npm install...로 시작한다. 다운로드 페이지 : https://nodejs.org/ko 설치방법: Node.js 홈페이지에 가서 다운로드 버튼클릭. (윈도우 버젼이 x64면, 홈페이지에 x64 버전이 알아서 나옴...) Node.js N.. 더보기 1. 리액트 앱 설치 오늘의 최종목표 리액트 앱을 만들어라~ node module을 다운로드 받고 리액트 웹사이트 기본구조를 만들어라! 주요 명령어 : npx create-react-app (node모듈 저장 위치) 현재 폴더 안에 설치하려면, npx create-react-app ./ 1. 기본 환경 셋팅 1) Node.js 설치 (이미 설치되어 있는지 확인하는 방법 : 터미널에서 node -v 를 입력해서 버전명이 나오면 기존에 설치) 왜 설치해야 해? React 관련 모듈/라이브러리/패키지들이 모두 node에서 제공하는 모듈이기 때문이다. 가령, React 관련 라이브러리는 npm install...로 시작한다. 다운로드 페이지 : https://nodejs.org/ko 설치방법: Node.js 홈페이지에 가서 다운로드.. 더보기 이전 1 2 3 다음