728x90
FTP/ SFTP
FTP(File Transfer Protocol)
- 파일을 전송하는 통신 규약이다.
- 원격에 있는 서버에 파일을 주고 받을 때 사용하는 인터넷 통신 규약인데 내 컴퓨터에 있는 파일을 계정을 제공하는 서버로 파일을 서로 이동시키는 것을 말한다. 여기에 보안이 추가된 SFTP가 있다.
- 기본 포트는 21이지만 바꿔서 사용하는 경우도 있다. 예전에는 사용했지만 지금은 보안이 좋지 않아서 실무에서는 사용하지 않는다.
SFTP
- ssh의 파일 전송 버전이라고 생각하면 된다.
- 일반적인 FTP와 달리 PC와 서버간의 데이터 전송을 암호화하기 때문에 해킹이나 보안상의 문제점을 방지, 안전한 호스팅 서비스를 이용할 수 있다.
- 텔넷(Telecommunication network)
- 인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 때 지원되는 인터넷 표준 프로토콜
- SSH(Secure Shell)
- 원격 컴퓨터에 안전하게 액세스하기 위한 유닉스 기반의 명령 인터페이스 및 프로토콜 강력한 암호화 기능을 구현해 모든 데이터가 암호화되기에 높은 보안을 지원한다.
FTP 사용법
- FTP클라이언트를 열면 작성해야 할 몇 가지 다른 상자가 표시된다.
- 프로필 이름
- 귀하의 웹 사이트에 제공할 이름이다.
- 호스트 이름 또는 주소
- 홈페이지가 호스팅되는 서버의 이름이다. 호스팅 제공 업체에서 얻을 수 있다.
- 사용자 ID 및 비밀번호
- 호스팅 서비스에 가입 할 때 생성한 사용자 이름 및 비밀번호와 동일하다.
- FTP 서버에 연결하려면 서버 관리자가 설정한 사용자 이름과 비밀번호가 필요하다. 그러나 일부 서버는 ‘익명’을 사용자 이름으로 사용하는 클라이언트를 허용하는 특별한 규칙을 따른다.
- 클라이언트는 IP 주소 또는 호스트 이름으로 FTP 서버를 식별한다.
- FTP 전송 모드도 선택해야 한다. FTP는 두 가지 데이터 전송 모드인 일반 텍스트(ASCII)와 이진을 지원한다.
- FTP를 사용할 대 발생하는 일반적인 오류는 텍스트 모드에서 이진 파일을 전송하려고 시도하여 전송된 파일을 사용할 수 없게 만드는 것이다.
참조
https://inpa.tistory.com/entry/WEB-🗄️-FTP-SFTP-란
NAT(Network Address Translation)
- 네트워크 주소 변환(NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. 한 마디로 Network Address인 IP를 변환(Translation)하겠다는 뜻이다.
- NAT를 이용하는 이유는 대개 사설 네트워크(Private Network)에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.
- IP 주소에는 Public IP(공인 IP)와 Private IP(사설 IP)가 있다. IP를 굳이 두 종류로 나눈 이유를 간단히 말하지만 IPv4 주소의 낭비를 막고 공인 인터넷을 굳이 사용하지 않아도 되는 단말들에게 어느 망이든 중복 사용 가능한 IP를 주기 위함이다.
- Private IP를 사용하고 있는 컴퓨터가 사설 바깥쪽에 있는 Public IP에 해당되는 외부세계에 접속할 수 있게 된다. 이때 사용되는 기술이 바로 NAT이라고 보면 된다.
- 단, NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수도 있다.
참조
https://inpa.tistory.com/entry/WEB-🌐-NAT-란-무엇인가
포트(PORT)
- 직역하면 항구라는 뜻으로, 컴퓨터 관련 분야에서의 의미로는 운영 체제 통신에서 종단점을 뜻한다.
- 어떠한 데이터가 송수신을 할 때 Datalink 계층에서는 호스트의 NIC로 MAC Address를 판별하고 Network 계층에서는 IP Address로 목적지를 판별한다.
- 이렇게 MAC Address와 IP Address를 통해 목적지 호스트까지 도달한 후에는 어떤 Process(프로세스)에서 데이터를 받을 것인지를 알아야 하는데 이 때 쓰이는 것이 Port Number(포트 번호)다.
- 네트워크 상에서 통신을 할 때 IP를 토대로 해당 서버가 있는 컴퓨터에 접근한다. 그런데 대부분의 경우 하나의 컴퓨터에는 여러 개의 서버가 실행될 수 있다. 컴퓨터에 여러 개의 서버가 실행되고 있다면, 어느 서버에 접속해야 하는지 컴퓨터에게 알려줘야 한다.
포트 번호(Port Number)
- 포트 번호는 컴퓨터에서 실행되고 있는 서버를 구분 짓기 위한 16비트의 논리적 할당으로 0~65536번이 존재한다. IP내에서 프로세스 구분을 하기 위해서 사용한다.
- 이 중에서 0
1023번까지는 이미 어떤 통신이 해당 포트를 사용할 것인지 정해져 있다. 예를 들어 http 통신은 80번 포트를 사용하고, ssh 통신은 22번 포트를 사용한다. 이렇게 정해져 있는 01023번까지의 포트를 well-known port라고 한다. - 컴퓨터에 있는 웹서버는 기본적으로 80번 포트와 연결되어 있다. 만약 웹서버를 하나 더 사용하고 싶은 경우 80번 포트는 이미 기존 웹서버가 사용하고 있기 때문에 사용할 수 없다. 그런 경우 well-known port가 아닌 다른 포트들과 연결하여 사용한다. 보통 관습적으로 8080 포트에 연결하여 사용한다.
포트 포워딩(Port Forwarding)
- 외부에서 공유기 내의 특정한 장치로 접속하기 위해서는 IP Address를 알아야 하지만 공유기 내부의 IP는 사설 IP로 이루어져 있어 외부에서 IP만으로 특정 PC를 지정할 수 없다.
- 따라서 공유기의 공인 IP로 접속한 후 특정한 PC로 연결되도록 포트 넘버를 공유기에서 정의해주는 작업이 필요하다. 이러한 과정을 Port Forwarding이라 한다.
참조
https://inpa.tistory.com/entry/WEB-🌐-포트-란-무엇인가
[🌐 포트(PORT) 란 무엇인가?
포트 - Port 본래의 의미로 직역하면 '항구'라는 뜻으로, 컴퓨터 관련 분야에서의 의미로는 운영 체제 통신에서의 종단점을 뜻한다. 어떠한 데이터가 송수신을 할 때 Datalink 계층에서는 호스트의 N
inpa.tistory.com](https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-%ED%8F%AC%ED%8A%B8-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80)
Database
NoSQL은 SQL문을 사용하는지?
- 관계형 데이터 베이스는 SQL을 사용하여 데이터를 관리하는 반면, NoSQL 데이터베이스는 데이터 모델과 종류에 따라 서로 다른 쿼리 언어 또는 API를 사용한다.
- NoSQL 데이터베이스는 전통적인 SQL과 다르게, 정형화된 쿼리 언어 대신 각 데이터베이스 유형에 맞는 데이터 접근 방법을 제공하며, 대부분의 NoSQL 데이터베이스는 사용자의 요구 사항에 따라 커스터마이즈된 방식으로 데이터를 처리한다.
ACID
- 원자성(Atomicity)
- 원자성은 트랜잭션이 모두 성공하거나 모두 실패해야 한다는 것을 의미한다. 트랜잭션이 여러 연산으로 이루어진 경우 일부만 성공하고 나머지가 실패하는 경우는 허용되지 않는다.
- 롤백 : 만약 트랜잭션의 일부 작업이 실패하면, 이미 수행된 모든 작업을 원상태로 되돌려 데이터베이스의 상태를 트랜잭션이 시작되기 전과 동일하게 만든다.
- 일관성(Consistency)
- 일관성은 트랜잭션이 성공적으로 완료된 후에도 데이터베이스가 일관된 상태를 유지해야 함을 의미한다. 데이터베이스의 무결성 제약 조건이 항상 유지되어야 한다.
- 트랜잭션이 실행되기 전과 후의 데이터베이스 상태는 무결성 규칙을 모두 만족해야 하며, 잘못된 데이터가 저장되는 상황을 방지한다.
- 고립성(Isolation)
- 고립성은 여러 트랜잭션이 동시에 실행될 때 서로 간섭하지 않아야 한다는 것을 의미한다. 하나의 트랜잭션이 완료되기 전에 다른 트랜잭션이 그 데이터에 접근하는 것을 방지함으로써 고립성을 보장한다.
- 데이터베이스는 고립성을 보장하기 위해 동시성 제어 기법을 사용하며, 여러 트랜잭션이 동시에 수행될 때 그 결과가 마치 각 트랜잭션이 순차적으로 실행된 것과 같아야 한다.
- 지속성(Durability)
- 지속성은 트랜잭션이 성공적으로 완료된 후에는 그 결과가 영구적으로 데이터베이스에 반영되어야 함을 의미한다. 시스템 장애나 오류가 발생하더라도, 완료된 트랜잭션의 결과는 데이터베이스에 영구적으로 저장된다.
- 트랜잭션이 커밋된 이후의 데이터는 손실되지 않고, 장애 복구 과정에서도 보존된다. 이를 위해 데이터베이스는 트랜잭션 로그를 사용하거나, 완정적인 스토리지를 활용하여 데이터를 보장한다.
728x90
'Study > TIL(Today I Learned)' 카테고리의 다른 글
24.11.20 CS (0) | 2024.11.20 |
---|---|
24.11.19 CS (0) | 2024.11.19 |
24.11.17 CS (2) | 2024.11.17 |
24.11.16 CS (0) | 2024.11.16 |
24.11.15 Unity (2) | 2024.11.15 |