놀코에 오신 것을 환영합니다.

놀아보자 코드랑

Study 32

TCP 3-way HandShake, 4-way Handshaking

TCP 3-way HandShake란? TCP는 장치들 사이에 논리적인 접속을 성립하기 위해 3-way handshake를 사용한다. TCP 3 Way Handshake는 TCP/IP 프로토콜을 이용해서 통신하는 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. Client > Server : TCP SYN Server > Client : TCP SYN ACK Client > Server : TCP ACK 여기서 SYN:은 'synchronize sequence numbers', 그리고 ACK는 'acknowledgment'의 약자이다. 이러한 절차는 TCP 접속을 성공적으로 성립하기 위하여 반드시 필요! TCP의 3-way handshak..

대칭키 암호화 방식 vs 공개키 암호화 방식

개요 이번엔 대칭키 암호화 방식, 공개키 암호화 방식에 대해 알아보겠습니다. 대칭키 암호화란? 대칭키 암호와 종류 공개키 암호란? 공개키 암호화 방식이란? 대칭키 공개키 암호화 방식의 차이점 참조 순으로 알아보겠습니다. 대칭키 암호란? 대칭키 암호(symmetric-key algorithm)은 암호화 알고리즘의 한 종류로, 암호화와 복호화와 같은 암호 키를 사용하는 알고리즘을 의미한다. 대칭 키 암호화에서는 암호화 하는 측과 복호화 하는 측이 같은 암호키를 공유해야 한다. (이 차이점) 공개키 암호와 비교하여 계산 속도가 빠르다는 장점을 가지고 있다. 따라서 암호화 통신에서는 비밀 키 암호를 사용하여 대칭 키 암호화와 공통 키를 공유하고 그 키를 기반으로 실제 통신을 암호화 하는 구조를 사용한다. 대칭키..

초보 웹 개발자를 위한 학습 안내서

경력있는 신입 많은 회사가 개발자가 부족하다고 하는데, 신입 개발자는 취업이 어려운 게 현실입니다. 아무래도 예전보다 개발자에게 원하는 요구사항이 많아졌고, 경력 있는(?) 신입이나 특별한 교육이 필요 없는 개발자를 찾기 때문인 것 같습니다. 예전에라떼는 Git이나 GitHub 같은 버전 관리 시스템도 없고 JavaScript는 마우스 오버 시 버튼의 이미지 바꾸는 정도로만 사용했습니다. API는 Win32 API 같은 거 부를 때 쓰는 말이지 지금처럼 브라우저에서 동적으로 서버랑 통신하는 건 마법 같은 기술이었습니다. WEB 2.0 시대가 지나고 웹 기술이 폭발적으로 성장하면서 예전이랑은 비교할 수 없을 만큼 시스템이 복잡하고 고도화되었습니다. 빠르게 발전한 기술만큼 개발자가 공부해야 할 내용도 많아졌..

Study/기술면접 2021.08.11

IT/기술면접 - 브라우저로 웹사이트에 접속할 때 일어나는 일들 (DNS)

당신이 인터넷으로 웹 페이지에 접속 할 때 어떤 네트워크 작용이 일어나는지 설명하는 것. "어느정도로 자세히 설명해야하는가?" 에 대한 명확한 기준은 없지만, 대학 시절 배운 지식만으로도 충분히 자세히 설명할 수 있다. 이 세상의 대부분 웹 서버는 모두 IP 주소를 가지고 있다. 당신이 인터넷을 서핑하는 것도, 해당하는 IP주소로 접속하여 그 웹서버가 제공하는 데이터를 보는 것이다. 즉, 브라우저에 IP 주소를 직접 입력하면 이 포스팅에서 설명할 대부분 과정을 생략하고 웹 사이트에 접속할 수 있다. ▶네이버의 IP주소를 직접 입력하여 접속한 모습, nslookup 명령어로 DNS서버에서 IP주소를 찾았다. 이렇게 접속하면 속도도 뭔가 빠른것 같고(실제로 더 빠르긴 하지만 체감하기 어렵다.) 전과 다름없는..

Study/기술면접 2021.08.11

IT/기술면접 - 웹 아키택처와 WAS(Wep Application Server)

이번 포스팅에서는 웹 어플리케이션의 동작에서 핵심적인 역할을 하는 WAS에 대해 다룬다. 웹 서버(Web Server)와 혼동하는 사례가 잦아, 면접 전에 정리할 필요가 있는 개념이다. 먼저 이해를 돕기 위해 웹 아키택처에 대한 이야기를 꺼내려고 한다. ▶ 2-tier 아키택처의 구조도. 클라이언트가 서버의 DB에 직접 접속한다. 3-tier(혹은 N-tier) 아키택처가 등장하기 전, 웹 애플리케이션들은 주로 2-tier 아키택처를 활용했다. 클라이언트가 직접 서버에 접속하여, 서버의 자원을 활용하는 방식이었으므로 개발이 편리했다. 하지만 2-tier 아키택처에서의 웹 애플리케이션은 보안에 취약했고, 유지보수도 어려웠다. 그래서 등장한 것이 3-tier 아키택처이다. ▶ 3-tier 아키택처의 구조도 ..

Study/기술면접 2021.08.11

IT/기술면접 - Servlet, CS, 네트워크, Spring

1. Servlet에 대해 답변해 보세요. Servlet: 자바 플랫폼에서 웹 앱을 개발할 때 사용하는 핵심기술. 컨트롤러와 뷰의 역할 분담이 가능해진다. 자바 API를 모두 사용할 수 있으며 다양한 서버 환경에서 실행 가능하다. 스레드를 기반으로 한다. Servlet Container: Servlet을 서버에서 실행하기 위한 서버 프로그램(서버는 서블릿 자체를 직접 실행할 수 없기 때문). JVM을 내장하고 있다. 2. 서블릿의 라이프 사이클에 대해 설명하세요. init(): 컨테이너는 서블릿 인스턴스를 생성한 다음 init() 메소드를 호출한다. 이 메소드는 service()메소드 전에 실행되어야 한다. 클라이언트의 요청을 처리하기 전에 서블릿을 초기화할 기회를 주는것이다. 초기화할 코드가 있다면 i..

Study/기술면접 2021.08.11

웹의 동작 원리

웹의 동작 원리 웹의 동작 원리 다음은 여러분이 웹 브라우저를 통해 웹 사이트에 접속하여 원하는 웹 페이지를 가져오는 과정을 도식화한 그림입니다. ①② 사용자가 웹 브라우저를 통해 찾고 싶은 웹 페이지의 URL 주소를 입력함. ③ 사용자가 입력한 URL 주소 중에서 도메인 네임(domain name) 부분을 DNS 서버에서 검색함. ④ DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달함. ⑤⑥ 웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성함. 이렇게 생성된 HTTP 요청 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송됨. ⑦ 이렇게 도착한 HTTP 요청 메시지는..

인터넷 주소 체계

인터넷 주소 체계 프로토콜(protocol) 프로토콜(protocol)이란 컴퓨터끼리 정보를 주고받기 위한 일종의 규칙이나 약속을 의미합니다. 우리가 보통 다른 사람과 대화하려고 할 때는 사용할 언어나 장치 등을 서로 일치시켜야만 원할한 대화를 할 수 있습니다. 이와 마찬가지로 컴퓨터끼리도 정보를 교환할 때 데이터의 형식이나 통신 순서 등을 미리 일치시켜야만 통신이 가능합니다. 이렇게 컴퓨터 사이의 통신에서 정보를 교환하기 위해 미리 만들어 둔 네트워크 통신 규약을 프로토콜이라고 부릅니다. 대표적인 프로토콜에는 인터넷에서 사용되는 TCP(Transmission Control Protocol)와 IP(Internet Protocol), 웹에서 사용되는 HTTP(HyperText Transfer Protoc..

인터넷 구성요소

인터넷의 구성 요소 인터넷 시스템(Internet System) 여러분이 매일 사용하는 인터넷을 구성하고 있는 시스템을 인터넷 시스템(Internet System)이라고 합니다. 이러한 인터넷 시스템은 다음과 같이 수많은 서버(server)와 클라이언트(client)들로 구성되어 있습니다. 서버(server)란 인터넷 서비스를 제공하는 프로그램이나 컴퓨터를 의미합니다. 웹 시스템에서는 여러분이 컴퓨터나 스마트 폰 등 다양한 기기를 사용하여 방문하는 웹 사이트의 정보를 담고 있는 프로그램이나 컴퓨터를 웹 서버(web server)라고 부릅니다. 클라이언트(client)란 서버가 제공하는 인터넷 서비스를 이용하는 사용자나 사용자가 사용하는 기기를 의미합니다. 웹 시스템에서는 여러분이 여러 웹 사이트를 방문하..

웹(Web)이란?

웹이란? 웹(Web)의 개념 월드 와이드 웹(World Wide Web)이란 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간을 의미합니다. 간단히 줄여서 WWW나 W3라고도 부르며, 간단히 웹(Web)이라고 가장 많이 불립니다. 인터넷과 같은 의미로 많이 사용되고 있지만, 정확히 말해 웹은 인터넷상의 인기 있는 하나의 서비스일 뿐입니다. 하지만 현재에는 인터넷과 웹이라는 단어가 서로 혼용되어 사용될 만큼 인터넷의 가장 큰 부분을 차지하고 있습니다. 웹의 특징 웹은 인터넷 상에서 텍스트나 그림, 소리, 영상 등과 같은 멀티미디어 정보를 하이퍼텍스트 방식으로 연결하여 제공합니다. 하이퍼텍스트(hypertext)란 문서 내부에 또 다른 문서로 연결되는 참조를 집어 넣음으로써 웹 상에 존재하는 여..