모의면접 스터디를 신청하게 된 계기 개발자로서 회사 생활을 시작한 지 1년 정도 지나면서 퇴근 후와 주말 시간을 이용해 개인 공부를 해오면서Java 언어에 대한 공부와 프레임워크가 익숙하다보니 오히려 더 그 부분만 공부를 하는 나를 발견하고"아 내가 지금 나한테 익숙한 부분에만 시간 투자를 하고 있구나"란 생각을 하게 되어내가 좋은 백엔드 개발자로서 나아가기 위해 어떤 부분의 기본기를 더 쌓아야 할까 생각해보기 시작했다. 그러다 보니 주제별로 정리해보면 1. 자바 , 스프링 2. 알고리즘 , 자료구조(코딩테스트) 3. CS 기본기 로 간추려졌다.1번은 처음 프로그래머에 대한 꿈을 꾸게 되고 계속 꾸준히 공부를 하고 있는 부분이였고2번인 알고리즘 , 자료구조는 하루에 2~3문제씩 백준 문제를 풀어가..
쿠키와 세션 정보 유지가 필요한 상황에서 HTTP 특징인 Stateless한 방식을 대처하기 위해 쿠키와 세션을 사용한다. 큰 차이점은 상태정보의 저장 위치이다. 쿠키와 세션 모두 클라이언트가 가지고 있지만 세션은 서버도 저장한다. 쿠키 클라이언트의 상태 정보를 클라이언트의 PC에 저장 후 필요시 정보를 참조하거나 재사용을 가능하게 한다. Key-Value 쌍의 작은 데이터 파일 이름 , 값 , 만료일(저장 기간 설정) , 경로 정보 등으로 구성되어 있다. 클라이언트에 총 300개의 쿠키를 저장할 수 있다. 하나의 도메인 당 20개의 쿠키를 가질 수 있다. 동작방식 클라이언트가 서버에 로그인 요청 서버는 클라이언트의 로그인 요청의 유효성을 확인하고 응답헤더에 set-cookie: user=홍길동을 추가하..
네트워크 레이어 , IP 프로토콜 IP 란 ? IP는 인터넷을 통해 데이터를 주고받을 때 사용되는 통신 규약으로서 네트워크라고 하면 단골로 등장하는 OSI 7계층 LAYER 3 에 위치하는 프로토콜이다. IP는 데이터를 패킷 단위로 나누어 전송하고 , 받는 쪽에서는 그 패킷들을 다시 조립하여 원래의 데이터로 변환하는 과정을 거친다. IP를 통해 전송되는 데이터는 인터넷 상의 다양한 기기들과 통신할 수 있다. IP 주소란? IP 주소는 인터넷에 연결된 각 기기를 구별하기 위해 사용되는 고유 번호이다. IP는 프로토콜 그 자체이고 IP 주소는 IP통신을 하기 위해 각 기기들을 구분하는 고유번호라고 이해하면 된다. IP 주소는 네트워크 내에서 특정 기기를 찾아 데이터를 전송할 수 있도록 도와주며 , 기기들이 ..
신뢰적 데이터 전송의 원리 슬라이딩 윈도우 슬라이딩 윈도우 프로토콜은 두 호스트 간 데이터 전송을 해주는 일반적인 통신 프로토콜이며 . 오류 제어와 흐름 제어를 지원하는 방식입니다. 송신자와 수신자가 각각 윈도우라는 버퍼를 가지고 있으며 , 윈도우의 크기에 따라 한 번에 보낼 수 있는 패킷의 개수가 결정된다. 즉 슬라이딩 윈도우는 윈도우의 크기를 동적으로 조절하면서 효율적인 패킷 전송을 가능하게 한다. 동작 과정 송신자는 윈도우의 크기만큼 패킷을 전송하고 , 각 패킷에 순서 번호를 부여한다. 수신자는 패킷을 받으면 순서 번호에 따라 자신의 윈도우에 저장하고 , 가장 작은 순서 번호를 가진 패킷부터 상위 계층으로 전달한다. 또한 송신자에게 ACK(acknowledgement) 메시지를 보내 받은 패킷을 확..
HTTPS HTTPS 란 ? HTTPS(Hypertext Transfer Porotocol Secure) 는 웹 브라우저와 웹 사이트 간에 데이터를 전송하는 데 사용되는 기본 프로토콜인 HTTP의 보안 버전입니다. HTTPS는 데이터 전송의 보안을 강화하기 위해 암호화 된다. 이는 사용자가 은행 계좌, 이메일 서비스, 의료 보험 공급자에 로그인 하는 등 중요한 데이터를 전송할 때 특히 중요하게 사용된다. 즉 HTTP 요청과 응답을 암호화 하기 위해 TLS또는 SSL 기반 HTTP라고 할 수 있다. SSL / TLS 란 ? 원래 웹에서의 데이터는 가로채면 누구나 읽을 수 있는 일반 텍스트 형대로 전송 되었다. 이러한 문제때문에 인터넷 통신의 개인정보 보호 , 인증 , 데이터 무결성을 보장하기 위해 Nets..
컴퓨터 네트워크와 네트워크 레이어 컴퓨터 네트워크란 무엇인가? 컴퓨터 네트워크란 Net + Work 의 합성어로써 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미합니다. 간단하게 해석하자면 "두 대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것" 을 말합니다.하지만 최근에는 컴퓨터 뿐만 아니라 스마트폰 , 노트북 등 인터넷에 연결되는 다양한 기기들이 서로 연결되어 정보를 주고받는 것 또한 포함 되고 있습니다. 네트워크란 연결하는 선이나 장치 같은 물리적인 측면부터 데이터를 주고받는 데에 필요한 메시지나 규약과 같은 물리적이지 않은 측면까지 모두 포함한 통신 과정 전체를 아우르는 개념입니다. 현대 컴퓨터 네트워크에서 데이터를 어떻게 전달하는가? 오래 전에는 컴퓨터 간 데이터 ..
웹 소켓(Socket) 통신에 대해 정리하는 이유현재 회사에서 Iot 사물로부터 데이터를 수신해와서 해당 데이터로 저희가 원하는 웹사이트를 만드는 업무를 주로 하고 있는데 해당 데이터를 송수신 하는 부분을 웹 소켓(Socket) 통신으로 진행하고 있어 소켓 통신에 대해 파악하기 위해 동작원리, 정의 , 통신 방법 등을 정리하기 위한 이유이다. 소켓(Socket) 의 정의소켓은 TCP/IP 기반 네트워크 통신중에 하나로 서버-클라이언트간 데이터를 주고받는 양방향 연결 지향성 통신을 말한다.주로 지속적으로 연결을 유지하면서 실시간으로 데이터를 주고 받아야 하는 경우에 사용 되어진다.소켓은 프로토콜, IP 주소 , 포트 넘버로 정의된다. - 프로토콜 프로토콜은 원래 외교상의 언어로써 의례나 국가간에 약속..