목록Computer (25)
Today I Learned …

* 개인적인 공부 내용을 기록한 글입니다. 사담 이쪽 공부를 하다보면 소켓이라는 단어를 자주 듣게 된다. 소켓을 만들어서 뭘 연결해서 뭘 어떻게 해서.... 대체 그 소켓이 뭔데?? 라는 물음에서 이번 포스팅을 시작해본다. 소켓 (Socket) 1. 소켓이란? 프로세스가 네트워크 상으로 데이터를 내보내거나 네트워크로부터 데이터를 받으려면 일종의 창구가 필요하다. 그 역할을 하는 것이 소켓이다. 2. 소켓의 정의 [1] Protocol [2] IP Address [3] Port Number 3. 소켓의 형식 [1] 스트림 ① 양방향, 연결 지향형 소켓 ② 오류 수정, 전송 처리, 흐름 제어 등을 보장 ③ 각 메세지를 보내기 위해 별도의 연결을 맺음 → 오버헤드* 발생 ④ 소량의 데이터보다는 대량의 데이터를..
* 개인적인 공부 내용을 기록한 글입니다. SCP 써보고 넘어오니까... 신세계다. 아주 간단하고... 깔끔합니다. 지금까지 머한거지? 들어가기 전 1. 업로드할 파일이 있는 로컬 디렉토리에 위치한 상태에서 2. 서버와 연결해준 후 3. 파일 교환을 시작하면 된다. 업로드 시 ① 복잡하게 경로 적을 일이 현저히 줄어듦 ② 로컬에서 서버로 업로드 시, 전송된 파일은 서버의 홈 디렉토리 안에 저장됨 ③ 현재 작업 디렉토리에 없는 파일을 업로드 시에는 파일명 자리에 절대 경로 적어주면 됨 다운로드 시 ① 서버 접속 시 디렉토리 탐색이 가능하기 때문에, 다운로드할 파일이 있는 서버 디렉토리로 들어가주면 됨 ② 탐색 커맨드는 Bash 커맨드와 거의 똑같다. 일단 쓰다가 안되는 것만 따로 찾아서 쓰면 될 듯 SFT..

* 개인적인 공부 내용을 기록한 글입니다. SSH 기초 1. SSH란? Secure Shell = 보안 셸 원격지 호스트 컴퓨터에 접속하기 위해 사용하는 인터넷 프로토콜이다. 과거에 주로 사용되던 Telnet은 암호화가 이루어지지 않아 보안 상 취약했으므로, 기존의 기능에 암호화 기능을 추가하여 1995년에 나온 프로토콜이다. 현재는 원격 접속 보안을 위한 필수적인 요소로 자리잡고 있다. Port 번호는 22번이다. 2. SSH의 강점 사용자 인증부터 데이터 전송까지 모든 과정이 암호화되기 때문에 보안성이 매우 높다. ⇒ 만약 통신이 노출되더라도 이해할 수 없는 암호화된 문서로 보인다. 3. SSH의 주요 기능 [1] 보안 접속을 통한 Rsh, Rcp, Rlogin, Rexec, Telnet, Ftp 등..
* 개인적인 공부 내용을 기록한 글입니다. * 「 yagom - 스위프트 기본 문법 」 강의를 기반으로 하고 있습니다. * 강의 링크 : https://youtu.be/2n-fSlW-jts import UIKit import Swift //상수 //let 이름: 타입 = 값 //변수 //var 이름: 타입 = 값 //값의 타입이 명확하다면 타입 생략 가능 //let 이름 = 값 //var 이름 = 값 let constant: String = "차후에 변경 불가능 상수 let" var variable: String = "차후 변경 가능한 변수 var" variable = "변수는 다른 값 할당 가능" //constant = "상수는 변경 불가" 오류발생 //상수 선언 후에 나중에 값 할당 가능 //나중에 ..

* 개인적인 공부 내용을 기록한 글입니다. SSH 공개키 인증을 사용하여 로그인하는 방법 0. 들어가기 전 [1] 클라이언트 측에는 OpenSSH 클라이언트가, 서버 측에는 OpenSSH 서버가 설치되어있어야 합니다. [2] 간단한 과정이기 때문에 구글링해서 확인 후 설치해주세요. 0-1. 전체 과정 요약 [1] 클라이언트 측에서 키를 두 개 생성한다. [2] 생성한 키 중 하나를 서버에 복사해준다. ⇒ 사실상 끝 1. 클라이언트 측에서 키 생성 ① $ ssh-keygen ⇒ 비대칭 Key Pair를 생성한다. ② 경로, Passphrase 설정 ⇒ 둘 다 설정 안해도 무방 (Enter 두 번 입력) ③ /.ssh 디렉토리로 들어가기 ⇒ 아래와 같이 키가 두 개 생성된 것을 볼 수 있다. (known_h..
* 초심자의 수난을 기록합니다. SCP를 통한 파일 전송 시 : Permission Denied, 디렉토리나 파일 없음 문제 시 제일 먼저 확인해볼 것 Gooogle : 권한 변경 해보세요. Me : 했는데 안돼요...ㅜ Gooogle : 경로 설정에 문제있는 거 아니에요? Me : 경로 이거 맞게 한 거 같은데...? 안되는데요ㅜㅜ 이것저것 다해봤는데도 나는 안된다!!! SCP랑 안맞나봐 WinSCP나 Putty 쓸까봐.......... 난 왜 이것도 못할까 뭐가 문젤까........... 별 생각이 다들고 우울해지지만..... 잠시 접어두고 이런 어이없는 삽질일 수도 있으니 잠시 확인해보자.... 지금 나는 Local / Remote 중 어디에 있나요? Local = 클라이언트 (ex. Windows..
* 초심자의 수난을 기록합니다. SSH 접속 시 공개키 로그인이 안되고 자꾸 비밀번호를 묻는 경우 하............... 진짜 역대 삽질이다. 먼저 기본적으로 체크해봐야할 사항이다. [1] 클라이언트쪽에서 공개키 생성 ① $ cd ~/.ssh ② $ ls ⇒ id_rsa 와 id_rsa.pub 파일 둘 다 있는 지 확인 [2] 서버에 공개키 알려주기 ① $ ssh [사용자명]@[Ip주소] ② $ ls -a ⇒ .ssh 디렉토리 있는 지 확인 (없으면 만들어줘야함) ③ $ echo [id_rsa.pub 메모장으로 열어서 전문을 복사 붙여넣기] >> ~/.ssh/authorized_keys ④ $ cat ~/.ssh/authorized_keys ⇒ 잘 복사됐나 확인 [3] SSH 재접속 시도 ① $ ..

* 개인적인 공부 내용을 기록한 글입니다. VSCode에서 SFTP Extension 사용하기 1. SFTP란? 보안성이 강화된 파일 전송 프로토콜이다. 이름도 기능도 FTP와 유사하나, SSH을 기반으로 만들어진 확장 프로토콜이다. 따라서 Port 번호는 22번을 이용한다. 2. VSCode에서 SFTP Extension의 역할 가상 환경에 올린 리눅스로 개발을 하다보면 명확히 불편한 점이 있다. Host PC와 Guest PC 간의 소스 코드 공유가 녹록치 않다는 점이다. 물론 Git을 이용할 수도 있지만, 일일이 Push & Pull로 작업 상황을 맞춰주는게 생각보다 귀찮다. 그냥 한쪽에서 수정을 하면, 반대쪽의 파일도 바로 수정한 내용으로 업데이트되게끔 할 순 없을까? 바로 이런 경우에 SFTP ..
* 개인적인 공부 내용을 기록한 글입니다. 프로토콜 (Protocol) 1. 프로토콜이란? [1] 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계 [2] 어떤 액션/이벤트/서비스 상황을 수행하기 위해 여러 과정 원칙을 정의한 것 1-1. 프로토콜의 필요성 네트워크에는 다양한 규격의 디바이스가 존재하며, 개체 간 주고 받는 데이터 또한 다양하다. 이렇게 서로 다른 환경의 컴퓨터끼리 통신하려면 어떻게 작업해야 할까? ⇒ 각 케이스 별로 데이터를 전달/연결할 방식을 미리 정의해두고 이를 따르도록 강제하면 된다. ⇒ 즉, 프로토콜을 따른다는 것의 의미는 = 컴퓨터가 미리 선언된 원칙대로 작동하게 한다는 것이다. 1-2. 프로토콜 이해 걷기 위해서는 걷는 프로토콜을, 뛰기 위해서는 뛰는..

* 개인적인 공부 내용을 기록한 글입니다. * 「IT 엔지니어를 위한 네트워크 입문」을 참고합니다. OSI 7계층과 TCP/IP 4계층 0. OSI 7계층과 TCP/IP 4계층 복잡한 네트워크를 단계별로 나누어 이해하기 쉽도록 도와주는 일종의 표준 규약이다. 네트워크의 연결은 각기 다른 역할을 담당하는 기능 및 장비들에 의해 어떠한 절차와 복잡한 규약을 바탕으로 한 논리 구조 위에서 이루어진다. 이 기능과 절차를 1983년도에 표준화하여 정리한 것이 OSI 7계층이다. 한편, 현대 네크워크는 대부분 IP를 기반으로 한 TCP 통신으로 이루어져 있다. 이에 TCP/IP 통신 방식이 통신 표준으로 채택되면서, 인터넷 프로토콜 스위트라고도 불리는 TCP/IP 4계층이 만들어졌다. 0-1. 계층을 나누는 이유 ..
* 개인적인 공부 내용을 기록한 글입니다. Git 기초 0. Git 영역 정리 [1] Working Directory (Local) ↓ Add ↓ [2] Index (= Staging Area) ↓ Commit ↓ [3] Repository ↓ Push ↓ [4] Remote Repository 1. Git Upload 순서 [1] Init : 저장소 생성 [2] Add : 파일을 인덱스에 올리기 (= Staging Area) [3] Commit : 로컬 저장소에 올리기 [4] Push : 원격 저장소에 올리기 1-1. Git Init [1] 로컬 저장소로 사용할 폴더로 이동 ⇒ $ cd '로컬 저장소로 사용할 폴더의 경로' [2] 새로운 저장소 생성 ⇒ $ git init 1-2. Git Add [1]..
* 개인적인 공부 내용을 기록한 글입니다. 해싱 (Hashing) 1. 해싱의 쓰임새 유저의 PW는 해싱하여 DB에 저장한다. [1] 암호화 하지 않으면 DB가 해킹 당했을 경우, 유저의 PW가 그대로 노출된다. [2] 외부 해킹이 아니더라도, 내부 개발자나 인력의 유저들의 PW를 볼 수 있게 된다. [3] PW 암호에는 일반적으로 단방향 해시 함수가 쓰인다. 2. 해싱 (Hashing) vs 암호화 (Encryption) 일상에서는 어느 정도 통용되지만, 암호학적으로는 차이가 있다. 가장 큰 차이는 '방향성' 이다. [1] 해싱 : 단방향. 복호화가 불가능하다. [2] 암호화 : 양방향. 역으로 복호화가 가능하다. 3. 단방향 해시 함수 (One-Way Hash Function) 어떤 수학적 연산 (또..