DI(Dependency Injection) DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합 도가 낮아지고 유연성이 높아진다. 이 예시는 MessageSercie 는 SimpleMessageService의 인터페이스 구현제이고 실제메서드를 반환하는로직은 SimpleMessageService 입니다 DI 에서 핵심 포인트는 의존성을 주입합니다. MessagePrinter 클래스를보면 생성자를 통한 의존성 주입을하여 MessageSercie 구현체 역시 를 MessagePrinter 에 주입을합니다. 그렇게 되면 결합..
인터넷에서 정보의 흐름을 방해하는것은? 네트워크는 패킷 헤더의 정보만 올바르게 표현되어있다면 어떤 내용을 담고 있는지는 상관없이 패킷을 전달하게 됩니다. 즉 그 패킷에 내용은 상관없이 전송을하게됩니다. 이것을 망중립성 이라고 합니다. 하지만 국가, 기관 , 여러 관계, 기업 등등에서 불특정 클라이언트들이 자신의 인터넷 서비스에 접근하는 경우를 막는 경우가 있습니다. 검열 을 통해서 말이죠. 검열을 시행하는방법 차단 - 특정 사용자가 웹사이트에 접근하지못하도록 로컬 ISP가 차단 방식을 사용해 접근 제한함 필터링 - 접근하려는 콘텐츠에 특성에 따라 접근을 제한하는 방식 - 다방면으로 활용가능(특정 단어나 , 영상, 이미지를 제한함) 스토틀링- 서비스 저하 /차등 제공 어떤 웹사이트의 점속을 의도적으로 어렵..
인터넷에서 사람과 정보는 어떻게 관계를 맺을까? 도메인 이름 체계(DNS) DNS는 공개적이고 분권화된 데이터베이스 입니다. DNS를 사용하면 숫자가 아닌 문자 형식의 고유한 이름을 IP 주소, 위치 , 기타 데이터 와 연결할수있습니다. www.naver.com , www.google.com 이 DNS라고합니다. 도메인의 이름은 최소 두 부분 으로 구성되어 있습니다. . (점) 으로 구분 되어 앞에오는 점이 최상위 도메인이라고합니다. 도메인은 어떻게 IP 주소로 변환될까? 예를들어 크롬에서 도메인을 입력하면 브라우저는 로컬DNS 변환기에 해당 도메인 이름의 IP주소를 문의하고 로컬DNS 변환기가 주소를 모르는 경우에는 최상위 계층 서버 . 즉 루트 서버에 다시 요청을 보냅니다. 만약 루트서버도 모른다면 ..
3주차 인터넷 보안 프로토콜 (IPSec) 패킷은 인터넷 목적지에 도달할때까지 여러 라우터를 거치면서 패킷을 읽고 수정할수있다. 추가적으로 악용을하는 사람들은 패킷을 복제 , 수정이 가능하다. 이 기능을 악용하면 누군가 패킷태그에 가짜 발신 IP 주소를 써서 해당 데이터 패킷을 다른 컴퓨터가 보내는 것 처럼 만들수있다. 이것이 IP 스푸핑 이라고 합니다. ( 즉 다른사람이 보낸척을 하면서 발신지에 혼란을 줄수도있다.) 지금까지 배운 점 간단히 정리해보기 1.데이터는 인터넷상에서 패킷의 형태로 이동 2.패킷 헤더에는 발신지 및 목적지 주소 정보들이 담겨있음. 3.라우터는 패킷을 전달하는 역할을한다. 인터넷의 지도 인터넷은 하나의 거대한 단일 네트워크가 아닌건 다들 알고 있을것입니다. ISP, 통신사, 학교..
B2805 나무자르기- 이진검색 이진 검색 이란? 뭘까요 선형 탐색을하게 되면 너무 많은 시간 복잡도를 사용하게 됩니다. 따라서 데이터를 둘로 나눠 찾고자하는값을을 탐색해가며 범위를 좁혀나가는것입니다. https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 설명 "B2805 나무 자르기"는 주어진 나무들을 일정 높이로 잘라서 필요한 총 나무 길이를 얻는 최대 절단 높이를 찾는 문제입니다.이 문제는 이진 탐색..
그리디 알고리즘의 정의 그리디 알고리즘은 각 단계에서 최선의 선택을 하는 방식으로 문제를 해결하는 알고리즘입니다. 📌 가장 대표적인 예시로 동전이 500원 , 100원 , 50원 ,10원이 충분히 있을때 동전을 최소한으로 사용해서 거스름돈을 주어야한다묜? 예) 650원 기준 → 500원: 1개 , 100원 :1개 , 50원 : 1개 예) 730원 기준 → 500 + 100_2 + 10_3 그리디 알고리즘은 각 단계에서 최선의 선택을하는 방식으로 문제를해결해야하는데 바꿔서 말하면 각단계에서 최선의 선택을 모두 합쳤을때 전체의 최선의 선택과 다르다면 풀이는 성립하지않습니다. 📌 만약 동전이 500원 400원100원이있다고하면 예) 800원 기준은 500_1 + 100_3 과 400*2 는 같은 800원이지만..