반응형

MySQL

안녕하세요, 미래의 멋진 개발자님들! 🚀

혹시 이런 경험 없으신가요?

"데이터? 그거 그냥 엑셀에 넣으면 되는 거 아냐?"
"개발자들은 맨날 숫자랑 코드만 보는데, 대체 뭘 어떻게 관리하는 걸까?"

맞아요, 우리 주변의 모든 웹사이트, 앱, 심지어 게임까지! 이 모든 것의 뒤에는 엄청나게 많은 데이터가 숨어 있고, 이 데이터를 똑똑하게 관리해주는 친구가 바로 데이터베이스(Database)입니다.

데이터베이스의 세계는 생각보다 넓어서, 데이터를 관리하는 방식에 따라 정말 다양한 종류가 존재해요.

우리가 흔히 들어본 Oracle, SQL Server 같은 거대 기업용 데이터베이스부터, 유연함이 특징인 MongoDB 같은 친구들도 있죠.

오늘은 그중에서도 아주 유명하고 강력한 데이터베이스 친구, MySQL에 대해 알아보는 시간을 가질 거예요.

"나는 비전공자인데...", "너무 어려울 것 같은데..."

걱정 마세요! 요즘 개발 트렌드에 맞춰, 비전공자분들도 고개를 끄덕이며 '아하!' 할 수 있도록 쉽고 재미있게 알려드릴게요.

자, 그럼 데이터의 보물창고로 함께 떠나볼까요?


📦 데이터베이스(DB), 대체 넌 누구냐?

상상해보세요! 여러분이 좋아하는 온라인 쇼핑몰에 접속했어요.

예쁜 옷들도 많고, 가전제품도 있고, 심지어 신선식품까지! 이 모든 상품 정보, 고객 정보, 주문 내역 등이 어디에 저장되어 있을까요? 만약 이걸 그냥 메모장이나 엑셀 파일 수백 개에 저장한다면... 맙소사! 새로운 상품을 추가하거나, 고객 정보를 찾거나, 주문 내역을 확인하는 건 거의 불가능에 가까울 거예요.

데이터베이스(DB)는 바로 이런 혼돈 속에서 빛을 발하는 존재예요.

쉽게 말해, 데이터를 체계적으로 저장하고, 필요할 때 빠르게 찾아 쓰고, 안전하게 관리해주는 똑똑한 창고라고 생각하시면 됩니다.

마치 도서관에서 책을 주제별, 저자별, 출판년도별로 깔끔하게 정리해 놓는 것처럼 말이죠! 덕분에 우리는 원하는 정보를 '짜잔!'하고 찾아낼 수 있고, 수많은 사람들이 동시에 접속해도 문제없이 서비스를 이용할 수 있답니다.


🔗 관계형 데이터베이스(RDBMS): 엑셀 시트들이 연결된 세상

 

데이터베이스는 여러 종류가 있지만, 그중에서도 가장 널리 사용되고 오늘 우리가 배울 MySQL이 속한 종류가 바로 관계형 데이터베이스(RDBMS: Relational Database Management System)입니다.

이름에서 뭔가 '관계'가 느껴지시죠?

RDBMS는 데이터를 마치 엑셀 시트(테이블)처럼 정리해요.

각 시트에는 행(Row/Record)과 열(Column/Field)이 있어서 데이터를 깔끔하게 담을 수 있죠.

  • 테이블(Table): 데이터를 저장하는 기본 단위. (예: 고객 정보, 상품 정보, 주문 내역 시트)
  • 행(Row/Record): 테이블에서 하나의 개체에 대한 정보. (예: 한 고객의 이름, 주소, 전화번호 등)
  • 열(Column/Field): 데이터의 특정 속성. (예: 이름, 주소, 상품명, 가격)

그리고 이 시트들(테이블)은 서로 관계를 맺을 수 있어요.

예를 들어, '주문 내역' 시트와 '상품 정보' 시트가 연결되어 있어서, 특정 주문 번호만 알아도 어떤 상품을 주문했는지 바로 알 수 있게 해주는 거죠. 이렇게 관계를 맺으면 데이터의 중복을 줄이고 훨씬 효율적으로 데이터를 관리할 수 있답니다!

이런 관계형 데이터베이스를 조작하기 위한 약속된 언어가 있는데, 이걸 바로 SQL(Structured Query Language)이라고 불러요.

다음 실습 글에서 이 SQL로 MySQL과 대화하는 법을 배울 거예요!


🐬 MySQL: 전 세계 웹 서비스를 움직이는 파워풀한 친구

 

드디어 오늘의 주인공, MySQL입니다!

MySQL은 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이에요.

'오픈소스'라는 건 누구나 무료로 사용할 수 있고, 전 세계 개발자들이 함께 만들고 발전시켜 나간다는 뜻이죠.

그래서 많은 기업들이 비용 부담 없이 강력한 데이터베이스 시스템을 구축할 때 MySQL을 선택한답니다.

MySQL의 매력은 여기서 끝이 아니에요!

  • 🚀 빠르고 안정적: 수많은 사용자가 동시에 접속하고 데이터를 요청해도 끄떡없이 빠르게 처리해줘요. 안정성도 뛰어나서 중요한 데이터를 안심하고 맡길 수 있죠.
  • 📈 뛰어난 확장성: 작은 개인 프로젝트부터 페이스북, 유튜브, 네이버 같은 초대형 서비스까지, 어떤 규모의 데이터도 유연하게 다룰 수 있어요.
  • 💻 다양한 운영체제 지원: 윈도우, 리눅스, 맥OS 등 어떤 컴퓨터 환경에서도 문제없이 잘 작동한답니다.
  • 🌍 거대한 커뮤니티: 전 세계적으로 엄청나게 많은 사용자와 개발자들이 있어서, 궁금한 점이 생기거나 문제가 발생했을 때 쉽게 도움을 받을 수 있어요.

이렇게 매력적인 MySQL이기에 우리가 매일 사용하는 수많은 웹 서비스와 앱의 뒤에서 묵묵히 데이터를 관리하고 있는 것이랍니다.


🛡️ 왜 우리는 MySQL을 배워야 할까요? (특히, 보안을 생각한다면!)

 

"나는 개발자가 될 것도 아니고, 데이터 만질 일도 없는데 MySQL을 왜 배워야 하지?" 라고 생각할 수도 있어요.

하지만 절대 그렇지 않답니다!

  1. 개발자의 필수 역량: 개발 분야에서 데이터베이스 지식은 이제 선택이 아닌 필수가 되었어요. 백엔드 개발은 물론이고, 프론트엔드 개발자도 데이터를 어떻게 다뤄야 하는지 알아야 협업이 가능하죠.
  2. 데이터 분석의 시작: 데이터를 이해하고 분석하는 능력은 모든 직군에서 중요해지고 있어요. MySQL을 알면 직접 데이터를 추출하고 인사이트를 얻는 능력을 키울 수 있습니다.
  3. 그리고 가장 중요하게, 보안!: 여러분, 웹 해킹의 상당수가 바로 데이터베이스를 노리는 공격이라는 사실을 아시나요? SQL 인젝션 같은 공격은 데이터베이스의 취약점을 파고들어 개인 정보를 유출하거나, 웹사이트를 마비시키기도 합니다.
    우리가 MySQL을 배우는 것은 단순히 데이터를 다루는 기술을 넘어, 데이터가 어떻게 저장되고 관리되는지 그 원리를 이해하는 것과 같아요. 이 원리를 알아야 어떤 부분이 위험한지 파악할 수 있고, 해커들이 어떤 방식으로 공격하는지 이해하며, 궁극적으로 안전한 서비스를 만드는 데 기여할 수 있습니다. 데이터를 모르면 보안도 어렵다는 말이 괜히 나오는 게 아니겠죠? 🧐

자, 어떠셨나요? MySQL이 생각보다 훨씬 흥미롭고 우리 주변에 가까이 있다는 것을 느끼셨기를 바랍니다!

다음 글에서는 오늘 배운 MySQL을 직접 설치하고, 콘솔에 접속해서 데이터베이스와 대화하는 첫걸음을 떼어볼 거예요.

"데이터? 그거 그냥 엑셀 아니었어?" 했던 분들도 MySQL 멋지게 데이터를 주무르는 자신의 모습을 발견하게 겁니다.

다음 시간에 만나요! 👋


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

LAN(Local Area Network)이란?

LAN근거리 통신망을 의미합니다.

이는 보통 같은 건물, 캠퍼스 또는 한정된 지역 내의 네트워크를 가리킬 때 사용됩니다.

예를 들어, 집이나 회사에서 컴퓨터들이 동일한 네트워크 내에서 서로 연결되어 있는 경우, 이들은 모두 하나의 LAN에 속합니다.

LAN의 기본 특징

  1. 공유된 자원: LAN은 네트워크 내의 컴퓨터들이 자원(파일, 프린터 등)을 공유할 수 있도록 지원합니다.
  2. 속도와 범위: LAN은 속도가 빠르고, 물리적으로 제한된 범위(대개 100m 이내)에서 운영됩니다. 이는 근거리에서의 빠른 데이터 전송이 가능하게 만듭니다.
  3. IP 대역과 서브넷: 동일한 IP 대역 서브넷 마스크를 사용하는 네트워크 내의 기기들이 모두 LAN에 속합니다. 즉, IP 주소가 같거나 비슷한 범위에 속하는 컴퓨터들이 LAN 내에서 서로 통신할 수 있습니다.

LAN을 이해하기 위해서는 서브넷 마스크에 대한 이해가 필요합니다.

이는 네트워크의 구간을 나누는 기준으로, 각 컴퓨터가 같은 서브넷에 있을 때만 서로 통신할 수 있음을 의미합니다.

(서브넷, IP, MAC 주소에 대한 더 자세한 설명은 아래 링크에서 확인하실 수 있습니다.)

서브넷 마스크와 서브넷팅에 대한 설명 (https://jdcyber.tistory.com/51)

 

서브넷 마스크, 서브넷, 서브넷팅, 프리픽스 란? (쉬운 설명, 개념, 정리, 계산법)

서브넷 마스크 서브넷 마스크는 서브넷을 만들 때 사용되는 것으로 서브넷을 네트워크 아이디와 호스트 아이디로 분리하는 역할을 합니다. 서브넷 마스크(subnet mask)는 32비트의 숫자로 ‘0’의

jdcyber.tistory.com

IP 주소와 MAC 주소의 관계에 대한 설명 (https://jdcyber.tistory.com/27)

 

iP 주소란 무엇일까? (쉬운 설명, 개념, 정의, 호스트 아이디, 네트워크 아이디, 서브넷 마스크)

iP 주소란 무엇인가요? 정답은 컴퓨터마다 가지고 있는 주소 즉 이름입니다. 192.168.123.132 위와 같은 형태의 아이피 주소를 많이 보셨을겁니다. 위와 같이 A컴퓨터 너의 이름은 오늘부터 192.168.123.1

jdcyber.tistory.com

 

ARP (Address Resolution Protocol)란?

ARP주소 확인 프로토콜로, IP 주소MAC 주소로 변환하는 데 사용됩니다.

LAN 내에서는 컴퓨터들이 서로 MAC 주소를 사용해 물리적으로 데이터를 주고받습니다.

하지만 사람이 MAC 주소를 기억하기는 어렵기 때문에, 각 컴퓨터는 IP 주소를 사용하여 다른 컴퓨터와 통신하려고 합니다.

그렇다면 IP 주소MAC 주소는 어떻게 연결될까요?

바로 ARP가 그 역할을 합니다.

ARP의 작동 방식

  1. ARP 요청: 한 컴퓨터가 네트워크에서 다른 컴퓨터와 통신하려고 할 때, 먼저 ARP 요청을 보냅니다. 이 요청은 "이 IP 주소를 가진 컴퓨터의 MAC 주소를 알려주세요"라는 내용입니다.
  2. ARP 응답: 요청을 받은 컴퓨터는 자신의 MAC 주소를 포함한 ARP 응답을 보냅니다.
  3. ARP 테이블: 이를 통해 ARP 요청을 보낸 컴퓨터는 IP와 MAC 주소가 매칭된 정보를 ARP 테이블에 저장해 놓고, 이후 같은 IP로 통신할 때 ARP 요청을 반복하지 않아도 됩니다.

ARP의 중요성

  • 통신의 핵심: LAN 내에서 데이터는 항상 MAC 주소를 통해 전송됩니다. 따라서 ARP는 네트워크 상의 장치들이 서로 소통할 수 있도록 해주는 중요한 역할을 합니다.
  • 네트워크 관리: 네트워크 관리자들은 ARP 테이블을 통해 어떤 IP가 어떤 MAC 주소에 연결되어 있는지 확인할 수 있어, 네트워크 트러블슈팅이나 보안 관리에 유용하게 활용됩니다.

LAN과 ARP의 관계

 

LAN 내에서 각 컴퓨터는 동일한 서브넷을 공유하고, 이를 통해 서로 직접 통신할 수 있습니다.

이 통신 과정에서 ARP가 필수적인 역할을 합니다.

ARP는 IP 주소MAC 주소 간의 연결을 담당하여, 네트워크 상에서 MAC 주소를 기준으로 데이터를 정확히 전송할 수 있도록 해줍니다.

  1. LAN에서는 IP 주소가 아닌 MAC 주소로 데이터가 전달됩니다. 따라서 IP 주소MAC 주소로 변환되어야 하고, 이 과정에서 ARP가 사용됩니다.
  2. 네트워크 내에서 ARP를 사용하여 IP 주소MAC 주소를 매칭시킴으로써, 컴퓨터들은 서로 MAC 주소를 통해 데이터를 주고받을 수 있습니다.

 


LAN(Local Area Network)은 근거리 네트워크로, 동일한 IP 대역서브넷 마스크를 사용하는 컴퓨터들이 서로 통신할 수 있게 해주는 네트워크입니다.

이 네트워크 내에서 ARP(주소 확인 프로토콜)는 IP 주소MAC 주소로 변환하여, 컴퓨터들이 실제로 데이터를 주고받을 수 있게 하는 중요한 역할을 합니다.

이처럼, LANARP는 네트워크 통신의 기본이 되는 중요한 개념입니다.

이 두 개념이 제대로 이해되면, 네트워크 설계와 문제 해결 시 큰 도움이 될 것입니다.

(더 자세한 내용은 서브넷, IP 주소MAC 주소에 대한 다른 글에서 확인해 주세요.)

https://jdcyber.tistory.com/26

 

MAC 주소? iP 주소? 무슨 차이지? (쉬운 설명, 개념, 정의)

Mac 주소? IP 주소? iP 주소, MAC 주소.. 저희가 IT 업계로 들어오거나 인터넷 통신 혹은 게임을 할 때에도 간간히 들어봤던 이름일 겁니다. 여러분은 무엇인지 둘의 차이는 무엇인지 알고 계신가요?

jdcyber.tistory.com

 


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형
 
리눅스의 아이노드 (i-node)


아이노드(i-node)는 리눅스 파일 시스템에서 사용되는 데이터 구조입니다.

간단히 말하면, 파일에 대한 중요한 정보를 담고 있는 "주민등록증" 같은 역할을 합니다.

이 아이노드는 파일이 실제로 어디에 저장되어 있는지, 파일의 크기, 수정 시간 등 파일에 관한 다양한 정보를 관리합니다.

 
아이노드는 무엇을 관리할까요?

아이노드는 파일에 대한 중요한 정보를 포함하고 있습니다.

이 정보는 다음과 같습니다:

  • 파일 소유권과 접근 권한: 이 파일을 누가 소유하고, 어떤 권한을 가지고 있는지.
  • 파일 내용이 저장된 물리적 주소: 파일의 데이터가 실제로 어디에 위치하는지.
  • 파일의 링크 수: 파일을 참조하는 링크가 몇 개 있는지.
  • 파일의 크기: 파일이 차지하는 크기.
  • 파일 생성 시간, 최근 사용 시간, 최근 수정 시간: 파일이 언제 만들어졌고, 언제 마지막으로 사용되었는지, 수정되었는지에 대한 정보.
  • 아이노드의 최근 수정 시간: 아이노드 자체가 수정된 시간.

이 정보들은 파일 시스템에서 파일이 어떻게 저장되고 관리되는지에 대한 중요한 정보를 제공합니다.

아이노드는 어떻게 구성될까요?

아이노드는 64바이트 크기의 표로, 파일에 대한 모든 정보를 담고 있습니다.

그리고 이 아이노드들은 아이노드 블록에 저장되며, 전체 디스크의 약 1% 정도를 차지합니다.

파일이나 디렉토리가 생성되면, 해당 파일을 관리할 아이노드가 만들어지고, 이 아이노드는 아이노드 테이블에 등록되어 관리됩니다.

- 아이노드(inode): 파일이나 디렉토리의 중요한 정보를 담고 있는 64바이트 크기의 데이터 구조입니다.
- 아이노드 테이블(inode table): 시스템 내의 모든 파일과 디렉토리의 아이노드를 관리하는 표입니다.
- 아이노드 번호(inumber): 아이노드가 아이노드 테이블에서 고유하게 등록된 번호입니다.

아이노드 테이블의 역할

아이노드 테이블은 파일 시스템에서 파일이나 디렉토리들이 어디에 저장되고 있는지 추적하는 역할을 합니다. 파일이나 디렉토리가 생성되면, 아이노드 번호는 i-list라는 표에 등록되고, 이 번호를 통해 해당 파일에 대한 정보를 빠르게 찾을 수 있습니다.


이번 시간에는 아이노드에 대해 살펴보았습니다.

다음 시간에는 아이노드와 관련된 심볼릭 링크(소프트링크)와 하드링크에 대해 알아보겠습니다.

이를 통해 파일의 다양한 참조 방식에 대해서도 더 깊이 이해할 수 있을 것입니다.

https://jdcyber.tistory.com/86

 

리눅스 파일 링크 완벽 가이드: 하드링크와 소프트링크의 차이점

하드링크 (Hard Link) 하드링크는 원본 파일과 동일한 데이터를 가리키는 또 다른 이름입니다.원본 파일과 하드링크가 같은 아이노드 번호를 가집니다. 즉, 이 두 파일은 사실상 같은 파일입니다.

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형
 

하드링크 (Hard Link)

 

하드링크는 원본 파일과 동일한 데이터를 가리키는 또 다른 이름입니다.

원본 파일과 하드링크가 같은 아이노드 번호를 가집니다. 즉, 이 두 파일은 사실상 같은 파일입니다.

왜 하드링크를 배워야 할까요?

여러분은 파일을 여러 곳에서 사용해야할때 어떻게 합니까? 같은 파일을 여러 이름으로 저장하거나, 다른 위치에서 바로 접근할 수 있다면 더 효율적으로 관리할 수 있겠죠? 하드링크는 이런 문제를 해결해 줍니다.

시스템에서 파일 중복을 줄이고 디스크 공간을 절약할 수 있기 때문입니다.

예를 들어, 백업 시스템에서 동일한 파일을 여러 장소에 두고 관리해야 할 때, 하드링크를 사용하면 실제 파일을 복사하지 않고도 여러 위치에서 동일한 파일을 참조할 수 있습니다.

비유 법으로 배워봅시다
"이름 바꾸기"

하드링크는 마치 "이름을 바꾼 파일"과 같습니다.

예를 들어, 당신이 친구에게 '홍길동'이라는 이름을 줬다면, '홍길동'이라는 이름으로 불리는 사람이 바로 그 친구입니다.

이제 '길동이'라는 이름을 다시 붙였다고 생각해 보세요.

그 친구는 여전히 같은 사람이지만, 두 이름을 다 사용할 수 있게 된 것입니다. 이 경우 '홍길동'과 '길동이'는 사실 같은 사람(파일)입니다.

  • 같은 아이노드 번호: 하드링크 파일은 원본 파일과 정확히 동일한 데이터 블록을 가리킵니다. 즉, 파일의 실제 내용은 동일합니다.
  • 변경사항 동기화: 만약 '홍길동' 이름으로 파일을 수정하고, '길동이' 이름으로도 파일을 수정하면, 두 이름 모두 동일한 내용을 가리키고 있기 때문에 수정 사항이 동기화됩니다.
  • 파일 삭제: 원본 파일(홍길동)을 삭제해도, '길동이'는 여전히 존재하고, 그 파일의 내용은 변하지 않습니다. 사실 원본 파일이 삭제되었을 때는, 그 파일을 참조하는 다른 링크가 남아있기 때문에 파일이 삭제되지 않은 것처럼 보입니다.

파일 시스템에서 중요한 데이터 파일을 여러 곳에서 참조해야 할 때, 하드링크를 사용하면 데이터 중복을 줄이고 디스크 공간을 절약할 수 있습니다.

예를 들어, 서버의 데이터베이스 파일이 여러 디렉토리에서 필요할 때, 하드링크를 사용하여 하나의 원본 파일을 여러 이름으로 참조할 수 있습니다.

하드링크는 복사본을 만들지 않고도 파일을 여러 곳에서 사용할 수 있게 해 줍니다.

  1. 원본 파일 test.txt가 있다고 가정해 보겠습니다.
  2. 하드링크 test_link.txt를 만들면, 두 파일은 같은 아이노드를 가리킵니다.
  3. 두 파일 중 하나를 수정하면 다른 파일에도 수정 사항이 반영됩니다. 원본 파일을 삭제해도, 하드링크가 여전히 동일한 파일을 가리키고 있으므로 파일이 그대로 남아 있습니다.
 

소프트링크 (Soft Link, Symbolic Link)

소프트링크(심볼릭 링크)는 원본 파일을 가리키는 "통로" 역할을 합니다.

소프트링크는 원본 파일의 경로를 저장하는 별도의 파일로, 실제 데이터는 저장하지 않습니다.

이 링크는 원본 파일의 위치를 알려주는 주소와 같은 역할을 합니다.

왜 소프트링크를 배워야 할까요?

소프트링크는 시스템 관리에서 파일 경로를 효율적으로 관리하는 데 매우 유용합니다.

예를 들어, 자주 변경되는 설정 파일이나 라이브러리 파일에 대한 경로를 소프트링크로 관리하면, 시스템 업데이트나 변경이 있을 때 소프트링크만 수정하면 되기 때문에 관리가 용이해집니다.

또한, 시스템 설정이나 프로그램 파일들을 여러 곳에서 사용할 때, 소프트링크를 사용하여 경로를 간편하게 지정할 수 있습니다.

비유 법으로 배워봅시다
"주소를 적어 놓은 종이"

소프트링크는 마치 원본 집의 주소를 적어 놓은 종이와 같습니다.

예를 들어, 당신이 친구 집에 가고 싶을 때, 친구의 집 주소를 적어놓은 종이를 받고, 그 주소로 가면 친구를 만날 수 있죠.

이 주소 종이(소프트링크)는 원본 집(파일)의 위치를 가리키고 있습니다.

그러나 이 종이 자체는 집이 아니고, 그저 집의 위치를 알려주는 역할만 합니다.

만약 친구 집이 이사를 가면, 그 주소 종이는 더 이상 유효하지 않게 됩니다.

  • 다른 아이노드 번호: 소프트링크는 원본 파일과 다른 아이노드 번호를 가집니다. 소프트링크 파일은 원본 파일의 경로를 가리키는 문자열로 존재합니다.
  • 동기화 없음: 소프트링크에서 수정한 내용은 원본 파일에 영향을 주지 않습니다. 소프트링크 파일을 수정한다고 해서 원본 파일의 내용은 바뀌지 않습니다.
  • 원본 삭제 시 깨짐: 원본 파일이 삭제되면, 소프트링크는 더 이상 유효하지 않게 됩니다. 즉, 원본 파일이 사라지면, 소프트링크는 '깨진 링크'가 되어 더 이상 작동하지 않습니다.

소프트링크는 파일 경로를 효율적으로 관리하고, 시스템 환경에서 파일을 쉽게 참조할 수 있게 해줍니다. 예를 들어, 여러 버전의 소프트웨어가 설치되어 있을 때, 최신 버전의 소프트웨어를 소프트링크로 가리키면, 소프트웨어 경로를 쉽게 변경할 수 있습니다. 또한, 프로그램의 설정 파일이 여러 디렉토리에서 필요할 때, 소프트링크를 사용하여 중앙 집중식으로 관리할 수 있습니다.

  1. 원본 파일 test.txt가 있고, 소프트링크 test_link.txt를 만들었다고 합시다.
  2. 소프트링크 파일은 test.txt라는 파일의 위치만 알고 있을 뿐, 파일 자체를 가지고 있지 않습니다.
  3. test_link.txt를 열면, 자동으로 test.txt로 이동하여 내용을 볼 수 있습니다. 하지만 원본 파일을 삭제하면, test_link.txt를 열려고 할 때 오류가 발생할 것입니다. (깨진 링크)

핵심 차이점

구분 하드링크 소프트링크
아이노드 번호 원본 파일과 동일한 아이노드 번호를 가짐 원본 파일과 다른 아이노드 번호를 가짐
동기화 수정 사항이 원본 파일과 하드링크 파일에 동기화됨 수정 사항이 동기화되지 않음
파일 삭제 시 원본 파일 삭제 후에도 하드링크는 삭제되지 않음 원본 파일 삭제 시 소프트링크는 깨짐
파일 내용 원본 파일과 내용이 동일 원본 파일의 경로를 가리키는 통로(주소) 역할

 


혹시 아이노드에 대해 아직 모르신다면 아래 링크에서 확인해주세요!

https://jdcyber.tistory.com/87

 

리눅스 파일 시스템의 핵심, 아이노드(i-node)란 무엇인가?

리눅스의 아이노드 (i-node)아이노드(i-node)는 리눅스 파일 시스템에서 사용되는 데이터 구조입니다.간단히 말하면, 파일에 대한 중요한 정보를 담고 있는 "주민등록증" 같은 역할을 합니다.이 아

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형

 

요즘 스마트폰 사용자를 중심으로, 데이터를 무제한으로 테더링하여 사용하는 방법이 화제가 되고 있습니다. 이른바 "APN 우회"를 활용한 방식인데, 마치 폐쇄된 도로의 우회로를 찾아내는 것처럼, 제한된 환경 속에서 새로운 가능성을 열어주는 기법으로 주목받고 있습니다. 그렇다면, APN이란 무엇이며 이를 우회한다는 것은 어떤 의미일까요? 먼저 APN이 무엇인지 확인해봅시다.

 

1. APN이란 무엇인가? 

**APN(Access Point Name)**은 스마트폰이나 태블릿 같은 모바일 기기가 인터넷에 접속하기 위해 반드시 거쳐야 하는 "네트워크 관문"입니다. 통신사가 제공하는 모바일 데이터 서비스를 이용하려면, 기기가 어떤 방식으로 데이터를 전송하고 수신할지를 결정하는 APN 설정이 필요합니다.

이를 이해하기 위해 다음과 같은 비유를 생각해볼 수 있습니다:

비유: 공항의 게이트

APN은 마치 공항의 출입문(게이트)과 같습니다.

  1. 비행기가 공항을 통해 목적지로 날아가려면, 특정 게이트를 통해 승객과 화물을 싣고 출발해야 합니다.
  2. 이때, **게이트(APN)**는 비행기가 어떤 항공사 소속인지, 어떤 화물을 싣고 있는지, 어떤 노선을 통해 가는지를 결정하는 역할을 합니다.
  3. 통신사마다 각기 다른 게이트 설정이 있으며, 이 설정을 기반으로 특정 항공편만 출입하도록 허가하거나, 화물 종류에 따라 별도의 요금을 부과할 수도 있습니다.

APN TEC

APN은 네트워크의 "종단점"과 유사한 개념으로, 데이터를 전송하기 위한 통신 경로를 설정합니다. APN은 크게 두 가지 주요 정보를 포함합니다:

  1. PDN (Packet Data Network)의 주소:
    • 데이터를 전송할 네트워크의 주소를 나타냅니다.
    • 예를 들어, 인터넷에 연결하거나 MMS(멀티미디어 메시지)를 보내기 위한 경로를 정의합니다.
  2. 특정 설정 정보:
    • 인증 방식: 통신사가 사용자를 인증하기 위한 사용자 이름과 비밀번호.
    • 프로토콜 설정: IPv4, IPv6 또는 둘 다를 사용하는지.
    • 게이트웨이 정보: 네트워크의 어떤 노드를 통해 데이터를 보낼 것인지.

APN의 구성요소

APN은 다음과 같은 구성 요소로 이루어집니다:

  1. APN 이름:
    • 예: internet.kt.com 또는 lte.sktelecom.com.
    • 이는 기기가 연결하려는 통신사의 네트워크를 식별합니다.
  2. MCC (Mobile Country Code)와 MNC (Mobile Network Code):
    • 통신사의 국가와 네트워크를 식별하는 코드.
    • 예: 대한민국의 KT는 MCC가 450, MNC가 08입니다.
  3. APN 타입:
    • default: 기본 인터넷 데이터 연결.
    • mms: 멀티미디어 메시지 서비스.
    • supl: 위치 기반 서비스(GPS 지원) 데이터.
  4. Proxy 및 Port:
    • 데이터를 중계하거나 보안을 강화하기 위해 사용되는 설정.

APN이 중요한 이유

APN 설정을 통해 통신사는 다음과 같은 작업을 수행합니다:

  1. 데이터 요금 관리:
    • 예를 들어, 일반 데이터와 테더링 데이터를 별도로 관리하거나, 특정 데이터만 무료로 제공할 수 있습니다.
    • (비유: 같은 공항에서도 화물 운송과 여객 운송이 각각 다른 게이트를 이용하는 것처럼, 데이터 유형에 따라 다른 APN 경로를 설정함.)
  2. 서비스 최적화:
    • 예를 들어, 동영상 스트리밍 서비스는 고속 데이터 경로를, 텍스트 전송은 저속 경로를 사용하는 방식으로 최적화합니다.
  3. 보안 강화:
    • 데이터가 허가된 경로로만 전송되도록 하여 해킹이나 불법 접속을 방지합니다.
 

2. APN 우회란?

APN 우회란 통신사가 설정한 기본 APN의 제한을 피하고, 대안 경로를 통해 데이터를 사용하는 방법을 의미합니다. 일반적으로 통신사는 테더링 데이터를 제한하기 위해 별도의 APN을 할당하지만, 사용자가 APN 설정을 변경하거나 커스텀 APN을 활용하면 이러한 제한을 우회할 수 있습니다.

이는 마치 고속도로에서 통행료를 내지 않기 위해 작은 시골길을 찾아가는 것과 비슷합니다. 우회로를 찾으면 더 많은 자유를 누릴 수 있지만, 이는 통신사의 정책에 반하는 행위로 간주될 수 있습니다.

통신사 정책과 APN

통신사들은 APN 설정을 기반으로 데이터 사용량을 제한하거나, 특정 서비스에 대해 요금을 부과합니다. 예를 들어:

  • 테더링(핫스팟) 데이터를 일반 데이터와 별도로 제한하려면, 테더링에 별도의 APN을 할당합니다.
  • 데이터 무제한 요금제라도 일부 동영상 스트리밍 서비스는 속도를 제한하는 방식으로 APN을 설정합니다.

APN 우회는 기본적으로 통신사의 제한을 피하고 데이터를 무제한 또는 별도 요금 부과 없이 사용하는 방법입니다. 이를 위해 APN 설정을 조작하거나, 통신사에서 제공하지 않은 커스텀 APN을 추가로 설정하는 방식이 사용됩니다.

 

APN 우회 기본 원리

  1. 통신사의 APN 구조 이해:
    • 통신사는 데이터를 일반 데이터, 테더링 데이터, MMS 데이터 등으로 분리 관리하기 위해 여러 APN을 사용합니다.
    • 예를 들어, 테더링은 별도의 APN 경로로 트래픽을 처리하고, 이 경로에 데이터 제한을 두거나 속도를 제한할 수 있습니다.
    • APN 우회는 일반 데이터 APN을 사용하여 테더링 데이터를 처리하거나, 다른 APN을 사용해 제한을 피하려는 시도입니다.
  2. 우회 방식:
    • 기본 APN 수정: 기존의 통신사 APN을 수정해 데이터를 무제한으로 사용하는 방식.
    • 커스텀 APN 추가: 새로운 APN 프로파일을 추가하여 통신사 정책을 우회.
    • VPN과 조합: 데이터를 APN에서 암호화된 VPN으로 라우팅하여 통신사가 트래픽의 성격을 파악하지 못하도록 함.

한마디로 통신사들이 무제한 데이터를 모바일에서 사용하는 네트워크로 apn을 설정해놨기에 테더링 핫스팟으로 뿌려지는 인터넷에는 무제한 데이터가 할당되지 않아서 인터넷을 사용할 수 없습니다.

통신사가 이를 막아둔 것이죠.

 

이러한 정책은 무분별하게 악용햐여 스마트폰을 공유기처럼 사용하는 사용자를 제제할 수 있지만 같은 통신사의 요금제를 이용하는 개인 사용자는 조금 억울할 수 있습니다.

아래는 apn 우회를 방법론 적으로만 설명하고있습니다. 


APN 우회 방법 (안드로이드와 아이폰)

1. 안드로이드에서 APN 우회 설정

안드로이드는 APN 설정을 직접 수정할 수 있는 기능을 제공하며, 방법은 다음과 같습니다:

  1. APN 설정 메뉴 접근:
    • 설정 → 네트워크 및 인터넷 → 모바일 네트워크 → APN (접속 이름) 메뉴로 이동.
  2. 새 APN 추가 또는 기존 APN 수정:
    • 새 APN 추가: 우회에 사용할 새로운 APN을 추가.
    • 기존 APN 수정: 통신사에서 제공한 기본 APN 정보를 일부 수정.
  3. APN 설정 정보 입력:
    • 일반적으로 데이터 우회를 위해 사용하는 정보:
      • 이름: 임의로 설정 가능 (예: Custom APN)
      • APN: internet 또는 default
      • 인증 방식: 기본 설정(없음) 또는 PAP/CHAP
      • MMSC, MMS 프록시: 비워두기
      • APN 타입: default,supl 또는 internet
  4. APN 저장 후 활성화:
    • 새로 추가하거나 수정한 APN을 선택해 활성화.
  5. 테더링 데이터 우회:
    • 테더링 사용 시에도 동일한 APN이 적용되도록 설정하거나, VPN을 병행해 트래픽을 숨기는 방식 사용.

2. 아이폰에서 APN 우회 설정

아이폰은 기본 설정에서 APN을 수정할 수 없는 경우가 많으므로, 프로파일(Profile) 파일을 설치하는 방식으로 접근해야 합니다.

  1. 프로파일 생성:
    • APN 설정을 포함한 구성 프로파일을 생성하기 위해 Apple Configurator 또는 프로파일 생성 사이트를 사용.
    • 필요한 APN 정보:
      • APN: internet
      • 사용자 이름/비밀번호: 비워두기 또는 통신사 기본값.
      • APN 타입: default 또는 internet.
  2. 프로파일 설치:
    • 생성된 프로파일 파일(.mobileconfig)을 이메일이나 iCloud Drive를 통해 아이폰으로 전송.
    • 아이폰에서 프로파일을 열고 설치.
  3. 설치 후 활성화:
    • 설정 → 일반 → 프로파일에서 새로 설치한 프로파일을 확인.
    • 데이터 트래픽이 새로운 APN 경로를 통해 작동하는지 테스트.

하지만 현재 apn 우회에 대한 방법은 거의 다 막혀있는 상태입니다.

현재는 프록시서버를 거쳐 모바일 데이터를 표준 데이터로 사용하는 방법은 있는 상태입니다.

해당 기술에 대한 이론과 방법론은 다음 글에서 작성하도록 하겠습니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형

+ Recent posts