목록IT 상식 (13)
능글맞은 구렁이
프록시패턴프록시패턴이란 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 해당 접근을 필터링하거나 수정하는 등의 역할을 하는 계층이 있는 디자인 패턴이다. 이를 통해 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용된다. 프록시 서버에서의 캐싱캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 경우 캐시 안에 있는 데이터를 활용하는 것다라서 불필요하게 외부와 연결하지 않기 때문에 트래픽을 줄일 수 있다는 장점 프록시 서버프록시 서버란 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.대표적으로 nginx있는데 nginx는 비동기 이벤트 기반의 구조와 다수의 ..
네트워크네트워크란? 노드와 링크가 서로 연결되어 있으며 리소스를 고유하는 집합노드란? 서버, 라우터, 스위치 등 네트워크 장치링크란? 유선 또는 무선을 의미 처리량과 지연시간처리량이란 ? 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타낸다. 단위로는 bps(bits per second)를 쓴다. 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받는다. 트래픽이 많아졌다 = 흐르는 데이터가 많아졌다처리량이 많아졌다 = 처리되는 트래픽이 많아졌다 지연시간이란? 요청이 처리되는 시간을 말하며 어떤 메시지가 두 장치 사이를 왕복하는데 걸린 시간을 말한다.좋은 네트워..
옵저버 패턴이란? (옵저버 : 감시자, 관찰자라는 뜻의 영어 단어) 객체 지향 프로그래밍에서 널리 사용되는 디자인 패턴 중 하나이다. 이 패턴의 핵심 목적은 객체 간의 일대다(1:N) 의존 관계를 구축하여, 어떤 객체의 상태가 변경될 때 그 객체에 의존하는 다른 객체들이 변경을 자동으로 알림받고 갱신될 수 있도록 하는 것이다. 이를 통해 객체들 사이의 느슨한 결합을 유지할 수 있으며, 상태 변화를 효율적으로 관찰하고 반응할 수 있게 한다. 옵저버 패턴의 구성요소 Subject(주제) 관찰 대상 객체로, 여러 Observer 객체를 자신의 관찰자 목록에 등록, 삭제할 수 있는 메서드를 제공한다. Subject의 상태 변화가 있을 때, 등록된 Observer들에게 통지합니다. Observer(관찰자) Sub..
팩토리 패턴이란? 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴을 말한다. enum CoffeeType{ LATTE, ESPRESSO } abstract class Coffee{ protected String name; public String getName(){ return name; } } Class Latte extend Coffee{ public Latte(){ name ="latte"; } } Class Espresso extends Coffee(){ public Espress(){ name="Espesso"; } } Class CoffeF..
디자인 패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약'형태로 만들어 놓은 것을 의미한다. 싱글톤 패턴(Singleton Pettern)이란? 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용한다. 장점 : 인스턴스를 생성할 때 드는 비용이 줄어든다. 단점 : 의존성이 높아진다. Java의 예시 class Singleton{ private static class singleInstanceHolde{ pri..

의존성이란? 의존성이란 종속성이라고도 하며 A가 B에 의존성이 있다는 것은 B의 변경사항에 대해 A또한 변해야 된다는 것을 의미한다. 메인 모듈이 직접 다른 하위 모듈에 대한 의존성을 주기보다는 중간에 의존성 주입자가 이 부분을 가로채 메인 모듈이 간접적으로 의존성을 주입하는 방식이다. 이를 통해 메인 모듈은 하위 모듈에 대한 의존성이 떨어지게 된다. 참고로 이를 '디커플링이 된다.' 라고도 한다. 의존성 주입의 장점 1. 모듈들을 쉽게 교체할 수 있는 구조가 되어 테스팅하기 쉽고 마이그레이션하기도 수월하다 2. 구현할때 추상화 레이어를 넣고 이를 기반으로 구현체를 넣어 주기 때문에 애플리케이션 의존성 방향이 일관되고, 애플리케이션을 쉽게 추론할 수 있다. 3. 모듈 간의 관계들이 조금 더 명확해진다. ..
ED25519과 RSA는 모두 공개키 암호화 알고리즘 중 대표적인 알고리즘이지만, 몇 가지 차이점이 존재한다. 키의 크키 RSA의 키의 크기는 보통 2048비트, 3072비트, 4096비트 등이 사용되는 반면, ED25519에서는 256비트의 키만 사용한다. 따라서, ED25519은 RSA에 비해 더 적은 연산량으로 더 높은 보안성을 제공한다. 안전성 RSA는 암호화에 사용되는 모듈러 연산이 소수 분해 문제를 기반으로 하기 때문에, 대규모 컴퓨터로도 소인수 분해를 수행하는 것이 가능하다는 약점이 있다. 따라서, RSA는 안전성에 대한 우려가 있다. ED25519은 타원곡선 암호화(ECDSA) 기반으로 하기 때문에, RSA에 비해 더 높은 안전성을 보장한다. 속도 ED25519은 고속으로 동작하도록 최적화..

TCP(Transmission Control Protocol) 두 호스트가 교환하는 데이터와 승인 메세지의 형식을 정의하여, 서버와 클라이언트간의 데이터를 신뢰성있게 전달하기 위해 만들어진 규약이다. 컴퓨터와 컴퓨터를 이어주는 네트워크는 네트워크 선로를 통해 전달되는데, 이 선로는 광케이블일수도, 구리선일수도, 인공위성 일수도 있다. 어떤 선로인지에 따라 데이터를 전달하는 속도와 손실되는 데이터의 양이 달라지는데, 이는 데이터를 전달하는 과정에서 그 순서가 의도하지 않게 뒤바뀌거나 손실이 되어 전달될 수 있음을 뜻한다. TCP는 데이터 패킷에 일련의 번호를 부여함으로써, 데이터 손실을 찾아내서 교정하고, 순서를 재조합하여 클라이언트에게 전달할 수 있게 해준다. TCP의 장점은 복잡해서 신뢰성이 높다는 점..
1. LAN LAN 그 외 - 네트워크 접속의 기본 - TCP/IP로 불리는 네트워크의 공통 언어(프로토콜)로 통신한다. - 유선 LAN과 무선 LAN이 있다. - 통신 사업자가 제공하는 WAN - 단말끼리의 Bluetooth - 위 두가지 모두 끊임없이 고속으로 처리하는 통신에는 적합하지 않다. 2. 온프레미스 VS 데이터 센터 온프레미스 이용 데이터 센터 이용 특징 - 기업이나 단체가 있는 층의 구석에 있는 랙 등에 설치 - 위치가 회사 내부에 있다. - 인터넷을 통해 데이터 센터의 서버에 접속 장점 - 자사에서 자유롭게 설정할 수 있다. - 서버 도입에 관한 기술을 익힐 수 있다. - 조건이 맞으면 바로 사용할 수 있다. - 유지 보수는 데이터 센터 사업자가 한다. - 직접 설치보다 비용이 낮아지는..

hosts 파일이란? hosts 파일은 IP 주소와 도메인을 매핑해주는 리스트이다. localhost 가 127.0.0.1 로 지정되는 것과 같은 논리이다. hosts 파일 작성 규칙 IP 도메인 (예 : 127.0.0.1 domain.test) ping 명령어를 이용하여 IP 주소 찾기 ping 도메인 hosts 파일 수정 파일위치 C:\Windows\System32\drivers\etc 파일 수정 메모장, 또는 노트패드등 문서편집기를 관리자권한으로 실행시켜준 뒤 파일 열기를 통해 열어 준뒤 수정 주의사항 이런 hosts 파일을 변경하는 것은 상당히 위험한 행위이다. 많은 해커들이 hosts 파일을 몰래 변경하여 사용자를 다른 서버로 이끌기 때문이다. 따라서 hosts 파일에 이상한 ip주소가 들어가 ..