분류 전체보기 (179) 썸네일형 리스트형 TCP, UDP 차이 TCP 연결지향 - TCP 3 way handshake (가상 연결) SYN: 클라 → 서버 SYN + ACK : 서버 → 클라 ACK : 클라 → 서버 데이터 전달 보증 순서 보장 신뢰할 수 있는 프로토콜 현재는 대부분 TCP 사용 UDP 기능이 거의 없음 연결지향 (TCP 3 way handshake X) 순서 보장 X 데이터 전달 및 순서 보장되지 않지만, 단순하고 빠름 IP와 거의 같다 (+Port, checksum 정도) 애플리케이션에서 추가 작업 필요 HTTP/1.1: 가장 많이 사용!!! HTTP2 : 성능 개선 HTTP3 : TCP 대신 UDP 사용, 성능 개선 결론적으로, 2와 3은 성능개선이기 때문에 1.1버전을 학습하면 된다. 현재 구글은 3으로 넘어가고 있고, 네이버는 2인 것을 쉽.. [인프런x코드캠프] 훈훈한 Javascript_9日 디데이 카운터를 완성시키고 두번 째 예제를 다룬다. 이번에는 to-do-list를 만든다. 사용자의 위치를 가져와 위치의 지역명, 지역의 날씨, input을 통해 할일 목록을 list up 해주는 기능을 가진 웹 이다. 본격적으로 들어가기 전에 어떻게 JS에서 HTML에 접근하는 지 알수있었다. DOM(Document Object Modal)을 통해서 HTML의 값에 접근할 수 있다. DOM은 브라우저가 HTML문서를 파싱하는 과정에서 생겨나는 객체이다. 이 객체는 트리구조를 가지고 있고, 이를 통해 HTML에 접근 가능하다. 뜻도 정확히 모르고 기능 구현만을 위해서 썼다면, 이제는 차근차근히 뜻과 함께 좀 더 깊은 이해를 통해서 예제를 받아들여야 한다. 두번 째 예제인 투두리스트도 열심히 만들어야겠다. [인프런x코드캠프] 훈훈한 Javascript_8_디데이 카운터 완성 오늘 수업을 통해서 D-Day-Counter 를 완성했다. 함수에 인자를 활용하고 localStorage를 통해 브라우저를 종료해도, 또는 컴퓨터를 꺼도 계속 실행되는 D-Day-Counter가 완성됐다. 함수 내부에서 인자를 받은 함수를 사용할 때 : 화살표 함수 사용 (익명 함수) ex) const intervalId = setInterval(counterMaker(targetDateInput), 1000); X const intervalId = setInterval(() => counterMaker(targetDateInput), 1000); O Web Storage 1. Session Storage : key-value 형태 저장 , 로컬 환경에 데이터 저장 세션 단위로 구분되며 활용 세션: 사용.. [인프런x코드캠프] 훈훈한 Javascript_7日 오늘은 D-day Counter가 어느정도 Counter의 역할을 할 수 있게 학습했다. 현재는 시간을 입력하는 남은 시간이 표시만 된다. 그리고 아래 함수들을 통해서 반복적으로 실행되게 만들어주어 Counter의 형태를 갖추게 만들어줬다. setTimeout(~, 지연시간[ms]) : 함수의 실행을 지연시켜주는 함수 setInterval(반복실행 할 함수의 이름,지연 시간) 초기화 버튼을 누르면 실행되고 있는 Counter를 초기화 시켜주는 기능도 구현했다. 1. 실행되고 있는 interval을 intervalArr이라는 배열에 intervalId를 담아준다. 2. 초기화 버튼을 누르면 intervalArr의 길이만큼 clearInterval(intervalId)함수를 실행 시켜주어 멈춰준다. for .. [인프런x코드캠프] 훈훈한 Javascript_6日 오늘은 반복문과 js파일에서 html의 값들을 변경하는 내용을 배웠다. 기본적인 for문, while문은 java와 동일해서 넘어갔다. for-in , for-of에 대해서도 학습했다. for-in : java의 향상된 for문과 비슷 => 객체에만 사용 가능 ex) for( let key in documentObj ) {} : documentObj에 있는 key 값들이 key라는 변수에 담겨진다. for-of : 배열에만 사용 가능 ex) for( let tag of documentArr) {} : documentArr에 있는 요소들이 tag라는 변수에 담겨진다. js파일에서 getElementId, textContent, innerHTML을 통해서 html의 값들을 조작할 수 있다. getElelme.. [인프런x코드캠프] 훈훈한 Javascript_5日 오늘은 조건문, 논리연산자 그리고 스크립트 태그의 위치에 대해서 학습했다. if문 (조건문)을 활용하는 방법은 Java와 크게 다르지 않았다. 아니 똑같았다. 다만 조건문에 '==='이 사용되는 정도만 달랐다. 지금 예제로 만들고 있는 D-day Counter 입력값에 유효하지 않은 날짜가 들어왔을 때는 NaN이 출력됐다. 그래서 조건문에 isNaN() 함수를 통해서 유효한 입력값인지 아닌지 검사했다. isNaN() : NaN인지 확인하는 함수 스크립트 태그의 위치 형태로 사용하면 된다. 지금까지 head 태그 안에 script 태그를 사용했다. 문제점 기본적으로 script 태그를 만나면 html탐색을 중단하고 js 파일을 해석한다. 그러나, html 태그가 만들어지지 않은 상태에서 js 파일에 doc.. Spring에서 순수 Java코드로 의존관계 주입해보기 (OCP,DIP 문제를 어떻게 해결하지?) 원리를 모르고 기능만 사용해서 결과물 내기에만 급급했었다. 이제는 결과물을 내는 것도 중요하지만, 어떻게 작동하는지에 대해서 이해가 필요하다고 생각든다. Spring의 기능을 사용하지 않고 순수 Java코드로 DI컨테이너를 구현해봤다. 앞으로는 Spring으로 전환하여 각각의 어노테이션들이 어떤 의미를 내포하고 있는지 알아볼 계획이다. 먼저, 다형성을 활용해서 코드를 작성했다. public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy discountPolicy = new.. [인프런x코드캠프] 훈훈한 Javascript_4日 오늘은 비교연산자에 대해서 학습했다. java와 꽤 많이 달라서 흥미로웠다. js의 비교연산자는 '==' 과 '==='이 있다. '==' 은 느슨한 비교, '==='은 엄격한 비교다. '=='은 우리가 예측하기 어렵다. ex) 1 == "1" => true 0 == "0" => true 0 == [] => true "0" == [] => false '==='은 완벽하게 같아야 true를 반환한다. 겉으로 보기에는 같지만 false를 반환하는 예시가 있다. ex) const arr = [1, 2, 3] arr === [1, 2, 3] => false arr === [1, 2, 3] => false가 나오는 이유를 알기 위해서는 원시 타입(Primitive type)과, 참조 타입(Reference type.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 23 다음