전체 글 썸네일형 리스트형 DNS 프로토콜 1. 개요 네트워크 프로토콜을 사용하여 통신을 할 때에는 Host를 식벽하기 위한 목적으로 IP 주소를 사용한다. 하지만 우린 보통 웹브라우저를 사용할때 웹 URL를 입력하지 IP주소를 기억하고 입력하지는 않는다. 이러한 웹 URL 과 IP주소사이의 맵핑을 해주는 것이 바로 DNS 프로토콜이다. 2. DNS 과정 1) 우선 Local DNS 테이블에 해당 주소에 맵핑이 있는지 확인한다. 이렇게 하는 이유는 DNS 를 거치지 않고 로컬에서 변환되기 떄문에 속도가 빠르다는 장점이 있기 때문 1-1) 과거의 경우, host 라는 파일에 DNS 맵핑을 모두 저장하는 방식을 사용했으나, DNS 정보가 많을 경우 파일의 크기가 너무 커져서 잘 선호되지 않는다. 현재는 DNS 캐시 테이블을 활용한다.(cmd 창에서 .. 더보기 redirect vs forward 1) redirect web container가 클라이언트(웹브라우저)에게 다른 페이지로 이동하라고 함(Http status 3XX) 클라이언트는 새로운 요청을 그 페이지로 다시 보냄. 그러므로 url 상 새로운 주소가 보여질 것이다. 2) Forward 같은 Http요청(HttpServletRequest) 을 그 페이지를 담당하는 서블렛(컨트롤러)에게 그대로 전달 그러므로 url 상에 변화가 없다. Forward 는 단순 조회나 단순 페이지 이동을 할 때 쓰고, Redirect는 회원가입이나 로그인해서 사용자 권한이 달라지거나 DB내용에 변화를 줄 경우 이를 갱신하기 위해서 redirect를 한다. 더보기 JAVA 8 - (1) 람다 함수 1. 람다 함수 VS 기존 JAVA 익명 함수 , 익명 클래스 기존 Java에서도 익명함수, 익명 클래스는 있었다. 다음과 같이 표현되었다. Comparator 인터페이스를 상속받는 클래스를 상속 받기 위해 위와 같은 익명클래스를 사용하고 했다. 하지만 보다시피 코드가 너무 길고, 복잡하고, 실제로 나같은경우에도 실수를 너무 많이 했던 부분이다. 람다 함수를 이용하면 같은 코드를 훨씬 더 간결하게 쓸 수 있다. 그러면 람다함수는 어떻게 작동하는 것이고 어떤 문법을 가지고 있는지 알아보자 2. Functional Interface(함수형 인터페이스) 우선 람다함수를 알기 전에 Functional Inteface에 대해서 알고 있어야한다. Functional Interface는 Interface 중에서 단 .. 더보기 StringBuilder vs StringBuffer Java의 String은 Immutable하므로, 문자열을 변경할경우 계속해서 새롭게 객체를 할당해야하므로 메모리 효율성부문에서 좋지 않다.(Garbage 객체가 계속해서 생길것이다.) 이를 보완한 것이 StringBuilder와 StringBuffer이다. 이에 대해서 알아보자 1. Mutable(가변성) String과 다르게 StringBuilder, StringBuilder 모두 mutable하다. 즉 가변성이 있다. append, delete, insert 등을 이용하여 문자열을 바꾸더라도 객체를 따로 생성하지 않고 기존 객체를 이용한다. 그러므로, 문자열 추가, 수정,삭제를 빈번하게 사용해야 할 경우 String이 아닌 StringBuilder, StringBuffer를 사용해야한다. 2. St.. 더보기 Java String 우리는 문자열을 나타내는데 자바 스트링 객체를 많이 쓰지만, 사실 잘 알고 쓰는 사람은 별로 없는거 같다. 1) 스트링 리터럴? 스트링 객체? JAVA 에는 문자열을 선언하는 두가지 방법이 있고 우린 혼용하지만 내부적인 구현은 완전히 다르다. String s1 = new String("Boo"); String s2 = "Boo"; 첫번쨰는 new 연산자를 이용하여 Heap 영역에 할당하는 것이고, 두번째는 String Constant Pool 이라는 특별한 상수 영역에 할당하는 것이다. 즉 s1 과 같은 방식으로 만들면 heap 계쏙해서 각각의 인스턴스를 생성하기 떄문에 다른 주소의 객체이나 s2와 같은 리터럴 방식으로 초기화 하면 String Constant Pool을 먼저 그 문자열이 있는지 체크하고.. 더보기 싸피 1학기 끝 6월 30일부로 싸피 3기 1학기. 그리고 삼성 면접, 그리고 내 상반기 면접 일정이 모두 끝났다. 1월 1일부터 정말 숨가쁘게 달려왔는데 중간에 코로나 사태도 발생하고 정신없었던 6달이였던거 같다. 면접 결과가 어떻게 나올지는 모르겠지만 앞으로의 싸피2학기와 내 하반기 취업준비 계속해서 열심히해보자 ! 화이팅 더보기 HTTP METHODS GET : 서버의 특정 리소스의 정보 요청 HEAD : GET와 동일하지만 HEADER 만 있고, BODY가 비어있음. 리소스가 있는지 없는지 체크만 하고 싶을때, 정보가 수정됬는지 확인하고 싶을 때 사용한다. PUT : 서버의 특성 위치의 리소스 정보 전체 수정 PATCH : PUT가 동일하지만 PATCH는 부분만 수정한다. DELETE : 해당 리소스 삭제 요청 POST : 해당 리소스로 DATA를 전송해서 데이터를 생성 OPTIONS : 해당 리소스에 가능한 HTTP Method 출력 TRACE : 가장 최근에 들어온 Method 그대로 실행 이들을 한번 특성으로 나눠보겠다. Idempotent (멱등성) 멱등성의 사전적의미는 몇번이고 같은 연산을 반복해도 같은 값이 나온 다는 것이다. 즉 수식으로.. 더보기 TCP 신뢰성 보장 IEEE 의 TCP 문서인 RFC 793 (https://tools.ietf.org/html/rfc793)에서는 다음과 같이 TCP를 정의한다. (The Transmission Control Protocol (TCP) is intended for use as a highly reliable host-to-host protocol between hosts in packet-switched computer communication networks, and in interconnected systems of such networks.) 즉, 신뢰성 있는 통신을 보장한다. TCP segment는 네트워크를 통과하면서 여러가지 이유로 정상적으로 전달 되지 않을수 있다.[queue가 꽉차서 drop이 됨(Loss).. 더보기 이전 1 ··· 7 8 9 10 11 12 13 14 다음