Base64란 8비트 이진 데이터(실행 파일, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이라고 한다. 이 인코딩은 전자 메일을 통한 이진 데이터 전송 등에 많이 쓰이고 있다고 한다. https://ko.wikipedia.org/wiki/베이스64 베이스64 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 ko.wikipedia.org
Cache는 나중에 요청될 결과를 미리 저장해두었다가 빠르게 서비스하는 것을 의미. 속도는 write back이 빠르지만 캐시메모리에 저장하기 때문에 장애가 생기면 데이터가 유실될 가능성이 생긴다. 로그를 DB에 저장할 때 캐시에 모았다가 특정 주기마다 DB에 저장하는데, 굉장히 많이 써야할 경우 redis같은 캐시에 넣고 특정 주기마다 DB에 저장하는 경우와 같이 write back이 쓰인다. 아니면 극단적으로 무거운 write 작업이 있을 경우. Redis는 자료구조가 Atomic하기 때문에 Race Condition을 피할 수 있는 장점이 있다(반드시는 아님). Redis는 여러 개의 서버에서 데이터를 공유하고 싶을 때(Remote Data Store), 인증 토큰 등을 저장(Strings 또는 h..
OSI 7계층을 기반으로 스위칭 장비를 사용. L2는 OSI 레이어 2에 속하는 MAC 어드레스를 참조하여 스위칭하는 장비 L3는 OSI 레이어 3에 속하는 IP주소를 참조하여 스위칭하는 장비 L4는 OSI 레이어 3~4에 속하는 IP주소 및 TCP/UDP 포트 정보를 참조하여 스위칭하는 장비 L7는 OSI 레이어 3~7에 속하는 IP주소, TCP/UDP 포트정보 및 패킷 내용까지 참조하여 스위칭. 그중 L4는 레이어 4에서 패킷을 확인하고 세션을 관리하는 역할. TCP/UDP별로 패킷 정보를 분석해서 해당 패킷이 사용하는 종류별로 구분하여(HTTP, FTP, SMTP 등) 처리. 그리고 로드밸런싱을 제공한다. 로드밸런싱에 대해서는 여기를 참고할 것. 출처 : https://m.blog.naver.com..
포트번호는 16비트로 이루어져 있어서, 총 65,536개(2^16)의 포트번호가 존재할 수 있다. 0~1023번은 잘 알려진 포트(Well-known port), 1024~49151번은 등록된 포트(Registered port), 49152~65535번은 동적 포트(Dynamic Port). 포트 TCP UDP 설명 상태 20 TCP 파일 전송 프로토콜 (FTP, File Transfer Protocol) - 데이터 포트 공식 21 TCP 파일 전송 프로토콜 (FTP, File Transfer Protocol) - 제어 포트 공식 22 TCP 시큐어 셸 (SSH, Secure SHell) - ssh scp, sftp같은 프로토콜 및 포트 포워딩 공식 23 TCP 텔넷 프로토콜 (Telnet Protoco..
포트 매핑(Port Mapping)이라고도 한다. 컴퓨터 네트워크에서 패킷이 라우터나 방화벽과 같은 네트워크 게이트웨이를 가로지르는 동안 하나의 IP주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환(NAT)의 응용. 종류는 로컬 포트 포워딩, 원격 포트 포워딩, 동적 포트 포워딩이 있다. https://ko.wikipedia.org/wiki/%ED%8F%AC%ED%8A%B8_%ED%8F%AC%EC%9B%8C%EB%94%A9 포트 포워딩 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org
Packet Internet Grouper. 네트워크를 통해 상대에게 접근할 수 있는지를 확인하기 위한 프로그램. URL이나 IP를 지정하면 대상에게 echo를 요청하는 데이터를 전송하고 상대의 echo 응답을 기다리는 형태로 동작. ICMP 프로토콜(TCP/UDP와 동일 또는 하위 계층)을 사용. 특별히 포트라는 개념이 존재하지 않으며 대부분의 시스템이 처리할 수 있다는 특징이 있기 때문에 이용됨. https://namu.wiki/w/%ED%95%91 핑 - 나무위키 이명 네트워크 딜레이 수치가 낮으면 낮을수록 서버와 PC의 지연이 짧은 것이다. 단위는 밀리초(ms, 1/1000초)이다. 일반에서 사용자가 정보를 보내면 서버에서 받고 바로 사용자에게 되돌아간 시 namu.wiki
동시성은 결합을 없애는 전략. 무엇(what)과 언제(when)을 분리하는 전략인데, 이렇게 하면 애플리케이션 구조와 효율이 극적으로 나아짐. 예를 들어, 웹 애플리케이션이 표준으로 사용하는 서블릿 모델에서는 원칙적으로 각 서블릿 스레드는 다른 서블릿 스레드와 무관하게 자신만의 세상에서 돌아감. 동시성을 정확히 구현하도록 해야하는 이유는 구조적 이점, 응답 시간과 작업 처리량 개선 등의 요구사항이 있기 때문. 1. 동시성은 때로 성능을 높여준다. 2. 단일 스레드 시스템과 다중 스레드 시스템은 설계가 판이하게 다르다. 3. 동시성은 다소 부하를 유발한다.(코드도 더 짜야 한다.) 4. 동시성은 복잡하다. 5. 일반적으로 동시성 버그는 재현하기 어렵다. 6. 동시성을 구현하려면 흔히 근본적인 설계 전략을 ..
켄트 벡이 제시한 단순한 설계 규칙 네 가지(중요도 순) 1. 모든 테스트를 실행한다. 의도한 대로 돌아가는 시스템을 내놓아야 하는데, 의도한 대로 돌아가는지 검증하기 위해 테스트를 시행하고, 이 테스트를 항상 통과하는 시스템을 만들어야 한다. 2. 중복을 없앤다., 3. 프로그래머 의도를 표현한다., 4. 클래스와 메서드 수를 최소로 줄인다. 위의 2~4를 한마디로 표현하자면 리팩터링이다. 코드를 몇 줄 추가할 때마다 잠시 멈추고 새로 추가하려는 코드가 설계 품질을 낮추는지 테스트 케이스로 확인한다. 소프트웨어 프로젝트 비용 중 대다수가 장기적인 유지보수에 들어가는데, 유지보수 개발자가 시스템을 이해하기 쉽도록 하려면 아래의 규칙을 지키면 된다. 1. 좋은 이름을 선택할 것 2. 함수와 클래스 크기를 ..