전체 글

개인 공부 목적으로 작성된 블로그 입니다.
CS/네트워크

[Computer Networking A Top-Down Approach] 2.7 Socket Programming: Creating Network Application

이 포스팅은 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있을 수 있습니다. section 2.1에서 살펴 봤듯 network application은 client program와 server의 program으로 각각 서로 다른 end system에 거주하는 형태로 이루어져 있다.(서로 다른 호스트라는 관점에서 그러하다) 두 프로그램이 실행될 때, client process와 server process가 생성되어, 이러한 process가 socket을 통해 서로 읽고 쓰게 된다. network application에는 2가지 유형이 있는데 첫번째는 RFC와 같은 protocol 표준이 존재하는 "open" 된 구현 방식으로 HTTP로 통신하는 client application과 server ..

CS/데이터베이스

[Hadoop 완벽 가이드] Hadoop

이 포스팅은 공부목적으로 작성된 포스팅입니다. 왜곡된 정보가 포함되어 있을 수 있습니다. Hadoop https://hadoop.apache.org/

CS/네트워크

[Computer Networking A Top-Down Approach] 2.6 Video Streaming and Content Distribution Networks

해당 포스팅은 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있을 수 있습니다. Netflix와 YouTube, Amazon Prime과 같은 스트리밍 서비스가 전체 인터넷 트래픽중 80%를 차지한다고 한다. 이러한 스트리밍 버스가 어떻게 동작하는지 알아보자. 2.6.1 Internet Video 저장 스트리밍 비디오 서비스들은 사전에 녹화된 비디오이다. user가 server에 요청하면 video를 건네주는 방식이다. 현재의 많은 internet 회사는 스트리밍을 지원하고 있다. 비디오는 image의 일련의 순서이다.(1초에 24,30 장) 이미지 압축은 상당히 중요한 특징인데, video quality에 직결되기 때문이다. 오늘날 압축 알고리즘은 비디오를 더 높은 quality로 원하는 ..

CS/네트워크

[Computer Networking A Top-Down Approach] 2.4 DNS-The Internet's Directory Service

해당 포스팅은 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있을 수 있습니다. 인간이 이름으로 구분하듯이, Internet host도 hostname 을 가지고 있다. www.facebook.com, www.google.com, 이 그런 예시이다. hostname은 host 정보를 거이 제공하지 않는다. hostname은 router에 의해 구별되기 위해 IP address 라는 일련의 문자열 가지고 있다. IP address는 계층적인 구조를 가지고 있는데, 예를들어 121,7,106,83에서 각각의 구간은 $0~255$ 값을 가지고 Internet 주소에 대한 의미를 가지고 있다. 2.4.1 Services Provided by DNS host를 식별하기 위해 hostname또는 IP ..

CS/네트워크

[Computer Networking A Top-Down Approach] 2.3 Electronic Mail in the Internet

이글은 공부목적으로 작성된 블로그입니다. 왜곡된 내용이 포함되어 있을 수 있습니다. e-mail(Electronic mail)은 가장 유명한 응용서비스중 하나이다. 메일은 비동기 방식 의사소통 매체이다.(사람들이 시간을 맞출 필요 없이 원할때 메세지를 보내고 받을 수 있다.) 기존 우편메일 보다 e-mail은 더 장점이 많은데 메세지에 하이퍼링크, HTML text, photo등을 넣을 수 있다. 이번 목차에 Internet e-amil의 application-layer protocols를 알아보고, Internet에 대한 이해를 해보자 위 사진은 Internet mail system에 대한 이해를 돕기 위한 사진이다. user agent, mail servers, SMTP(Simple Mail Tran..

Java/스프링 부트

[Webflux] Reactor 시작하기

공부 목적으로 작성된 글입니다 왜곡된 내용이 포함되어 있을 수 있습니다. Reactor reactor는 Spring Framework 주도하에 개발된 리액티브 스트림즈의 구현체로 Spring WebFlux 기발의 리액티브 애플리케이션을 제작하기 위한 핵심 역활을 담당한다. https://projectreactor.io/ Reactor는 다음과 같은 특징을 가지고 있다. Reactice Streams: 리액티브 스트림즈을 구현한 라이브러리이다. Non-Blocking: 비동기 방식을 지원한다. 가장 큰 특징중 하나이다. (공부 목적이기도 하다) Java's functional API: Publister와 Subscriber의 상호작을 JAVA의 함수형 프로그래밍을 통해 이루어진다. Flux[$N$]: Re..

CS/네트워크

[Computer Networking A Top-Down Approach] 2.2 The Web and HTTP

개인 공부 목적을 작성된 글 입니다. 왜곡된 사실이 포함되어 있을 수 있습니다. 사람들은 먼거리에 위치한 host에게 파일을 보내거나 받을 수 있다. 이러한 application는 유용하지만 정작 Internet은 알려지지 않았다. Internet이 본격적으로 알려진 것은 World Wide Web이 등장하고 나서 부터이다. Web는 대중들에게 노출된 최초의 Internet Application이다. Web을 통해 Internet이 그저 많은 data network에서 필수적인 data network가 되었다. Web은 소요에 의해 움직인다. 즉 User가 본인이 원하는 것을 원하는 시점에 얻을 수 있다. 이방식은 전통적인 broadcast 방식(TV, radio)와 대비되었다. 또한 개인이 새로운 정보..

Java

[이펙티브 자바] 아이템 39, 40, 41

이 블로그는 개인의 공부 목적으로 작성된 블로그입니다. 왜곡된 정보가 포함되어 있을 수 있습니다 39 명명 패턴보다 에너테이션을 사용해라 명명 패턴: 전통적으로 도구, 프레임워크에서 특별히 다뤄야하는 경우 특벙 이름으로 이를 구별하는 것 getter, setter과 같은 것들이 명명 패턴이라고 할 수 있겠다. 이러한 명명 태펀을 사용하는경우 몇가지 단점이 존재하는데, 오타가 나면 안된다. 올바른 프로그램 요소에만 사용되리라 보증 할 방법이 없다.(해당 이름을 쓴다고 무조건 사용되는 것이 아니기 때문에, 클래스에 test를 붙인다고 해서 자동으로 테스트가 되는 것이 아니다.) 프로그램 요소를 매개변수로 전달할 마땅한 방법이 없다.(명명 패턴을 이름으로 표현하는 것이기 떄문에) 이러한 명명 패턴이 문제가 되..

Java/스프링 부트

[Spring boot] @ConfigurationProperties 에서 "Failed to bind properties"

이 글은 공부목적으로 작성된 글 입니다. 왜곡된 정보가 포함되어 있을 수 있습니다 문제상황 yml에 작성된 환경변수를 사용하기 위한 properties 클래스 생성중 해당 값을 바인딩할 수 없다는 에러가 발생하였다. 기존에 문제가 없는 것을 확인하고 푸시까지한 코드여서 상당히 당황스러웠다,.. @ConfigurationProperties(prefix = "google") @Getter @RequiredArgsConstructor public class GoogleOAuthProperties { private final String clientId; private final String clientSecret; } Properties클래스로 OAuth2 Client 정보를 가지고 있다. Client 정보는..

Java/스프링 부트

[Spring boot] @Transactional readOnly에 대한 고찰 -1

이글을 공부 목적으로 작성된 글입니다. 왜곡된 정보가 포함되어 있을 수 있습니다. 계기 처음 스프링 부트를 공부할떄, @Transactional에 대해서 아주 심플하게 이해했다. "db에 접근하기 위해서 @Transactional을 사용해야한다. 데이터에 변경이 @Transactional 써야한다. 만약 데이터를 단순히 조회하기 위해서는 readonly=true, 데이터를 변경하는 경우는 readonly=true를 써야한다," 특히나 repository에서는 사용하지 않고, service에서만 @Transactional를 사용하는 것을 보고 service에서만 사용하는 것이구나 라고, 경험적으로 생각했었다. 처음 스프링부트로 계발을 해보면 @Transactional를 깜박하는 실수를 많이 하곤 했다. 그..

bluesparrow
Bluesparrow