만쥬의 개발일기
article thumbnail
[Network] - 패킷(Packet)의 정의와 구조
🖥️CS/🛜네트워크 2024. 2. 23. 14:53

패킷이란? Package + Bucket 패킷은 pack과 bucket을 합친 말로, 우체국에서는 화물을 적당한 크기로 나눠 행선지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 데이터 통신에 접목한 것이다. 쉽게 말해 컴퓨터 간 데이터를 주고받을 때 패킷은 네트워크를 통해 전송되는 일종의 데이터 조각이라고 생각할 수 있다. 그리고 컴퓨터 네트워크에서 이는 정해진 규칙으로서 작동한다. 데이터를 패킷으로 쪼개서 보내는 이유: 큰 데이터를 한번에 보내면, 많은 대역폭을 차지해 흐름을 원활하게 하지 못한다. 따라서 트래픽이 많아지게 된다. 큰 데이터를 보내는 방식 큰 데이터를 보낼때, 이는 작은 패킷들로 분할된다. 그리고 작은 패킷들로 분할된 데이터는 전달 시에 번호를 붙여서 전달이 된다. 수신자는 이 번호를 ..

article thumbnail
[Network] - dig 명령어를 활용한 DNS 조회 및 문제 진단
🖥️CS/🛜네트워크 2023. 12. 14. 17:53

dig란? dig는 Domain Information Groper의 약자로, DNS 정보를 조회하고 진단하기 위한 커맨드 라인 도구이다. dig의 영단어 뜻이 ‘파헤치다’ 인 것처럼 말 그대로 정보를 파헤치는 명령어다. 디그다도 그래서 디그다다 dig 명령어의 장점 nslookup 명령어로는 얻기 어려운 상세한 DNS 조회 결과를 얻을 수 있다. DNS 구성에 문제가 생겼을 때 원인을 찾는데 유용하다. 특정 IP의 도메인 이름을 찾거나, 특정 도메인 이름이 사용 중인 IP들을 찾을 수 있다. 우분투를 사용할 경우 다음 명령어로 설치가 가능하다. apt-get install dnsutils dig 사용법 dig 도메인 네임 [레코드명] [@네임서버명] [기타 옵션] 기본 사용 예시 dig 도메인네임 가장 ..

article thumbnail
[Network] - DNS vs DDNS , DNS Resolver
🖥️CS/🛜네트워크 2023. 12. 14. 17:08

네트워크 공부를 시작하려면 우선 DNS에 대한 개념은 필히 우선적으로 숙지해야한다. DNS(Domain Name System)란? DDNS에 앞서 우선 DNS를 먼저 이해해야 한다. 인터넷상에서 우리가 웹에 접속할 때에는 IP주소를 사용하는데, 이는 넓은 인터넷 세상 속에서 우리 집의 주소라고 생각하면 된다. 그리고 함께 사용하는 port번호가 우리 집의 어느 문으로 출입할 것인지를 나타낸다. (정문인지, 후문인지, 2층 출입구인지 등등) 이렇게 IP주소와 port번호를 사용한 통신을 흔히 말하는 TCP/IP 통신이라고 하는데, DNS는 숫자로 된 IP 주소를 도메인 네임 ex) http://naver.com 과 매칭하는 역할을 한다. 우리가 네이버같은 웹사이트에 접속할 때, IP 주소를 일일이 작성하지..

article thumbnail
[UML] - UML과 13가지 다이어그램

UML이란? UML이란 Unified Modeling Language의 약자로 1997년 OMG에서 표준으로 채택한 통합모델링언어 이다. 즉, 어떠한 모델을 만드는 표준언어로서, 모델이란 것은 제품을 미리 검증하고, 설계하는 과정에서 필요하다. 소프트웨어에서의 모델은 건축, 항공 등의 모델과는 조금 다른 면이 있는데, 해당 분야는 직접 만드는 것과 설계 사이에는 엄청난 비용의 차이가 있다. 하지만 UML 다이어그램을 그리고 모델을 만드는 일은 오히려 개발보다 비용이 많이 들 수도 있기 때문에, UML은 다음과 같을 때 사용한다. 시험해 볼 구체적인 것이 있을 때 코드로 시험하는 것보다 UML로 시험해 보는 쪽이 비용이 덜 들 때 그리고 이러한 목적으로 UML을 사용하는 유형에는 다음이 있다. 다른 사람들..

article thumbnail
[백엔드 기술 면접 대비] - 3.Nginx를 사용한 리버스 프록시는 왜 필요할까?
🖥️CS/📒백엔드 2023. 11. 21. 18:00

리버스 프록시란? 클라이언트 요청을 대신 받아 내부 서버로 전달해주는 것을 리버스 프록시(Reverse Proxy) 라고 한다. 그렇다면 프록시란? 프록시란 대리라는 의미로, 정보를 대신 전달해주는 주체라고 생각하면 되는데, 만약 이 프록시 없이 웹 서버를 운영한다고 가정해보자. localhost:3000 라고 하는 웹서버를 열어서 운영했을 때, 사용자가 갑자기 많아지거나, 웹서버가 그대로 노출되어 있기 때문에 보안적으로 위험성이 증가한다. nginx를 사용하면 로드 밸런싱으로 부하를 줄여줄 수 있고, 분산 처리 또한 가능하며 웹서버의 SSL 인증도 적용할 수 있다. (SSL이란?) 따라서 아래와 같이 사용자 -> nginx -> 웹서버로 구성해서 사용자의 요청을 nginx가 대신 웹서버로 전달해주도록 ..

article thumbnail
[백엔드 기술 면접 대비] - 2. SSL이란?
🖥️CS/📒백엔드 2023. 11. 21. 17:54

SSL이란? SSL(Secure Sockets Layer)은 암호화 기반 인터넷 보안 프로토콜이다. 인터넷 통신의 개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 출범했고, SSL은 현재 사용 중인 TLS 암호화의 전신이다. TLS와의 차이 또한 의문이 생길 수 있는데, SSL은 TLS(Transport Layer Security)이라는 또 다른 프로토콜의 바로 이전 버전이다. 1999년 IETF(Internet Engineering Task Force)는 SSL에 대한 업데이트를 제안했고, IETF가 이 업데이트를 개발하고 Netscape는 더 이상 참여하지 않게 되면서, 이름이 TLS로 바뀌었다. SSL의 최종 버전(3.0)과 TLS 첫 버전의 차이는 크지 않으며, 이름이 바뀐 것은 소유권 변경..

article thumbnail
[백엔드 기술 면접 대비] - 1. Entity, DAO, DTO, VO란?
🖥️CS/📒백엔드 2023. 11. 7. 14:51

오늘은 데이터 컨트롤의 기초라고 볼 수있는, 데이터 객체들에 대해 한 번 짚고 넘어간다. Entity란? Entity는 도메인 모델 객체로서, 실제 테이블과 매핑되어 변경 될 시 다른 여러 Class에 영향을 미치게 된다. Entity는 다음 특징들이 있다. DB의 테이블과 1대 1로 대응된다. DB의 테이블이 가지지 않은 칼럼을 필드로 가져선 안된다. 다른 클래스를 상속받거나 인터페이스의 구현체여서는 안된다. Setter 사용을 지양한다. 여기서 Setter 사용을 지양하는 이유는 , Setter의 사용이 Entity의 일관성을 해칠 수 있기 때문이라고 한다. 따라서 Setter 대신 다른 방법으로 필드에 값을 넣어 주는 것이 좋다. 또한 Entity를 생성할 때는 Builder 패턴을 사용하는 것이 ..

article thumbnail
[DATABASE] - 정규화(Normalization) 완벽 이해하기

KEY에 대한 이해가 부족하다면 KEY를 정리한 포스팅을 먼저 보고 오자. 2023.07.19 - [📚CS/📘데이터베이스] - [DATABASE] - Key 완벽 이해하기 (기본키, 후보키, 외래키 등) [DATABASE] - Key 완벽 이해하기 (기본키, 후보키, 외래키 등) key는 데이터베이스의 가장 중요한 개념이다. key는 데이터베이스(혹은 릴레이션) 내에서 특정 레코드(tuple)를 고유하게 식별하기 위해 사용되는 필드 또는 속성(attribute)을 의미하고, 그 종류로는 kangmanjoo.tistory.com 정규화(Normalization)란? 정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로서 무..