CS

· CS/Network
💡 이 글은 인프런 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초를 바탕으로 작성된 포스터입니다. 한번에 끝내는 DNS DNS란? Domain Name System 의 약자로 도메인 네임을 IP주소로 변환해주는 시스템을 의미합니다. DNS는 트리구조의 분산 구조형 데이터 베이스로, 위와 같은 계층적 구조를 가지고 있습니다. [ ] 분산 구조형 데이터베이스 DNS는 분산 구조형 데이터베이스 구조를 가집니다. 데이터를 영역별로 구분하고 분산을 관리합니다. 도메인 네임서버 및 도메인 데이터는 해당 관리 주체에 의해 독립적으로 관리됩니다. [ ] 트리 구조의 도메인 네임 체계 도메인 네임은 트리 구조를 가집니다. 생성된 도메인 네임은 언제나 유일 하도록 네임 체계를 구성합니다. DNS가 이루어지는 ..
· CS/Network
TCP, UDP 개요 Tcp 및 Udp에서 서버에 접근하려고 한다면 서버의 포트가 열려있어야 합니다. 또한, 클라이언트는 해당 서버의 IP 및 포트번호를 알고 있어야 접근할 수 있습니다. TCP 연결 과정(3-way handshaking) 클라이언트가 서버에 접근할 때 3-way handshaking을 사용합니다. 클라이언트가 seq num(랜덤값)을 서버로 보냅니다.(SYN) 서버에서는 클라이언트가 보낸 seq num을 받고, 자신의 seq num(랜덤값)과 받은 seq num의 값+1을 각각 SYN 과 ACK에 담아 보냅니다. (SYN+ACK) 해당 SYN + ACK을 받은 클라이언트는 서버가 보낸 seq num+1의 값을 서버로 Ack 합니다.(ACK) 이때, 클라이언트는 SYN + ACK을 받은 ..
· CS/Network
IPv4 주소체계 IP 주소 : Host에 대한 식별자. NetId(24bit) + HostId(8bit)로 구성된다. 8bit씩 끊어 표기한다. IPv4 : 주소 길이 32 bit (=2^32) IPv6 : 주소 길이 128 bit Subnet Mask(=Net Mask)는 NetId 길이를 나타낸다. (255.255.255.0 은 NetId의 길이가 24bit임을 의미한다.) CIDR(Classless Inter-Domain Routing)표기법에서 분모 부분은 Networkd Id에 해당하는 비트의 크기이다. CIDR을 사용하면 IPv4의 총 갯수가 늘어나진 않지만, 주소를 효율적으로 할당 할 수 있다. 기존의 class 블록을 사용한 주소공간의 비효율성을 CIDR로 해결하였다. Net Id : 네..
· CS/Network
NIC, L2 Frame, LAN 카드 그리고 MAC 주소 NIC(Network Interface Card)이란 컴퓨터를 네트워크에 연결하여 통신하기 위해 사용하는 장치로 흔히 LAN 카드 혹은 Network Interface라고도 부른다. L2단에서의 데이터 단위를 Frame이라고한다. LAN은 네트워크의 규모를 의미하는데, WAN>MAN>LAN 순으로 LAN이 가장 작은 규모이다. NIC은 H/W이며 MAC주소를 갖는다. L2 스위치에 대해서.. L2 Access switch end-point와 직접 연결되는 스위치 MAC 주소를 근거로 스위칭한다. end-point와 연결이 되었으면 Link-up, 연결이 비정상적이면 Link-down이라고 한다. L2 Distribution swtich L2 Ac..
· CS/Network
웹 서비스는 누가 만들었을까? Text file : 링크를 통한 참조가 불편함 따라서 티모시 버너스 리는 문자열(Link)을 통해 확장이 가능한 문서(HTML)을 고안함(HyperText를 Markup) 이를 인터넷에 연결해 전달할 수 있는 방법(HTTP 프로토콜)을 고안함(HyperText를 Transfer) HTML이 서로 연결된 것이 얼키고 설킨 것이 마치 거미줄 처럼 보인다(Web) 이 개념들을 묶어 웹 서비스라고 부르게 됐다 프로그램을 이루는 구조는 (인터페이스 제어 Data) 로 이루어 지는데 티모시 버너스 리는 이 구조를 설계해서 만드신 셈 (TCP/IP 통신규약을 만드신 빈턴 G. 서프와 함께 인터넷의 아버지라고 불린다) Markup : 문서가 화면에 어떻게 표시될지 (폰트, 글씨 크기, ..
· CS/Network
소켓 커널의 요소를 usermode application process가 접근할 수 있도록 파일 형식으로 추상화한 인터페이스 MAC주소, IP주소, Port 번호가 식별하는것 MAC주소 hw(L2)단에서 사용하는 식별자로 NIC(Network Interface Card)의 식별자이다. 대표적인 NIC로는 LAN카드가 있는데, LAN카드가 2개라면 MAC주소가 2개가 된다. 변경이 가능하다. IP 주소 Host(인터넷에 연결된 컴퓨터)를 식별하기 위한 식별자다. 하나의 컴퓨터는 ip주소를 n개 가질 수 있다. 하나의 NIC에 여러개의 IP주소를 바인딩 할 수 있다. Network layer(L3)에서 사용한다. Port 번호 transport layer(L4)에서 사용한다. process 식별자이다. 개발..
· CS/Server
1. OAuth 란? OAuth는 외부서비스의 인증 및 권한부여를 관리하는 범용적인 프로토콜이다. 권한: OAuth는 인증뿐 아니라 권한 관리도 한다. 프로토콜: 일종의 규격이다. SNS로그인을 제공하는 Facebook, Google등은 OAuth 규격에 맞춰 인증 및 권한을 대행 관리 한다. 외부서비스: 우리가 만드는 서비스를 의미한다. 주의할점! SNS로그인 기능을 넣더라도 세션/쿠키 혹은 토큰을 사용한 인증을 거쳐야 한다. 2. OAuth 1.0 -> OAuth 2.0 2007년 OAuth 1.0이 발표되었고 많은 사람들의 관심을 받았다. 하지만 커저가는 네트워크 시장에서 한계가 나타나기 시작했고 2012년 OAuth 2.0이 등장하게 되었다. OAuth 2.0에서 크게 바뀐 점은 다음과 같다. 모..
· CS/Server
기존 JWT방식은 Access Token이 탈취당하게 되면 토큰을 조작하여 다른 사용자인 것처럼 할 순 없지만, 탈취당한 토큰의 주인 행세는 할 수 있었다. 이러한 점을 보완하기 위해 JWT의 강화버전인 Access Token & Refresh Token이 등장하였다. 사용자가 로그인 성공 시 Access Token, Refresh Token을 발급한다. Access Token은 탈취방지를 위해 유효기간을 짧게 설정하고, Refresh Token은 길게 설정한다. 이때, Refresh Token은 일반적으로 회원 DB에 같이 저장한다. 두 개의 토큰을 받은 사용자는 Refresh Token은 안전한 저장소에 저장하고, Access Token을 헤더에 실어 요청을 보낸다. Access Token이 유효하다..
· CS/Server
웹사이트에서 로그인을 하면 다른 페이지에 들어가도 로그인이 유지된다. 또, 내정보 와 같은 로그인을 해야만 접속할 수 있는 페이지도 존재한다. 이것을 가능하게 하는 것이 서버 인증이다. 오늘은 서버인증에서 세션/쿠키와 JWT에 대해서 알아보도록 하겠다. 1. Cookie 로그인 성공 시 서버에서 쿠키에 사용자 정보를 넣어준다. 클라이언트는 브라우저 저장소에 쿠키를 저장하고, 다음 요청마다 쿠키를 서버에 같이 보내준다. 서버에서 쿠키를 통해 인증 유무와 유저정보를 알 수 있다. 문제점 쿠키에 유저정보가 그대로 들어가기 때문에 유저 정보가 그대로 노출됨. 사용자가 임의로 쿠키 값을 변경할 수 있음. 이러한 문제점으로 인해 쿠키/세션이 도입된다. 2. Cookie/Session 로그인 성공 시 고유한 ID값(..
· CS/Database
on, where 차이 SQL에서 on과 where의 차이는 뭘까? on과 where의 차이는 순서이다. SQL에서는 on의 조건에 맞는 엔티티만을 join한다. join이후의 where조건절을 넣어서 한번더 필터링을 진행한다. 1. 내부조인 일반적으로 그냥 join은 inner join이다. inner join에서 on과 where절은 아무런 차이가 없다. 2. 외부조인 내부조인이 아니라 외부조인일 경우엔 어떻게 될까? 내부조인과 달리 외부조인에서는 on과 where는 차이가 있다. 위에서 말했듯이, on은 join전에 데이터를 필터링하고, where은 join후에 데이터를 필터링한다. 외부조인에서 on은 조건에 맞게 데이터를 필터링한다. 이후, 외부조인이기때문에 모든 엔티티가 출력되고, on조건에 맞..
코드 미식가
'CS' 카테고리의 글 목록