전체 글213 서버와 클라이언트 서비스를 제공하는 프로그램을 서버(Server), 서비스를 받는 프로그램을 클라이언트(Client)라고 하는데 기본적으로 클라이언트는 서비스를 받기 위해 서버한테 연결을 요청(Request)하고 서버는 클라이언트가 요청한 데이터를 처리한 결과(Response)를 클라이언트에게 보내준다. 인터넷에 연결되어 있는 컴퓨터들이 데이터를 주고받는 방법을 알아보자 1. 클라이언트가 구글이라는 홈페이지에 접속하려 한다면 DNS(Domain Name System)를 통해 해당 IP를 얻은 다음 구글 서버 컴퓨터에 접속하게 되는데 그중에서도 Web Server에 접속하려 하려고 한다. 2. 구글 서버 컴퓨터에는 각 서버마다 정해진 포트번호가 있는데 Web Server 포트번호에 해당하는 20번으로 접속을 한다. 3. 해.. 2019. 9. 7. 스레드풀 스레드 풀 안에서 작업을 처리할 수 있도록 미리 스레드를 만들어 놓는데 스레드 풀 1에서는 작업 100개를 각각의 스레드가 나눠서 처리하게 된다. 그러나 스레드 풀 2를 보면 작업이 2개밖에 없을 경우 스레드를 여러 개 만들어 놓으면 작업을 처리하지 않는 스레드들은 메모리 공간을 낭비하는 비효율적인 스레드 풀이된다. https://limkydev.tistory.com/55 2019. 9. 6. 멀티스레드 동시성(Concurrency)vs병렬성(Parallelism) 동시성 - 싱글코어에서 멀티스레드가 번갈아가며 실행하는 성질 병렬성 - 멀티코어에서 각 개별 스레드가 동시에 여러 작업을 처리하는 것 스레드 스케줄링 - 스레드의 개수가 코어수보다 많을 경우 어떤순서에 의해 스레드를 동시성으로 처리하는가를 결정 이 그림을 보면 하나의 커피머신이 있는데 커피를 받기 위한 사람들의 줄이 2줄로 되어 있습니다. 그래서 서로 번갈아가면서 커피를 타게 되는 것이죠. 이러한 것을 동시성 처리라고 정의하고 있습니다. 반면에 병렬 처리의 경우는 2개의 커피 머신이 있고 각 커피 머신마다 하나의 줄을 가지고 있어서 각각의 줄마다 커피를 받을 수 있는 것을 병렬 처리라고 할 수 있습니다. 2019. 9. 6. 딥페이크(Deepfake)란? 딥러닝과 페이크의 합성어로 스스로 학습하는 딥러닝 기술을 통해 영상 합성, 조작을 하는 것을 의미한다. 딥 페이크는 특정 인물의 얼굴이나 신체 부위 등을 인공지능 기술을 통해서 합성된 가짜 편집물을 만들 수 있고 해외에서는 유명 연예인의 얼굴을 도용해서 포르노에 합성하는 페이크 포르노가 유행하면서 수많은 연예인들이 곤욕을 치르고 있습니다. 딥 페이크 원리 딥페이크는 기본적으로 머신 러닝을 사용합니다. CUDA 지원을 하는 GPU를 가진 컴퓨터를 준비해 합성에 사용할 사진의 다양한 각도, 표정의 사진 데이터를 입력해 교육을 먼저 시킵니다. 그리고 사진을 대입할 영상을 고릅니다. 교육을 받은 컴퓨터가 이를 재구성하면 영상이 만들어지는데 말은 간단해 보이지만 현재는 수십 시간을 기다려야 완성할 수 있다고 합니.. 2019. 9. 5. 객체(Object)의 개념 객체 지향 프로그래밍이란? 자동차를 만들 때 각종 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 완성된 제품(자동차)을 만들 듯이, 소프트웨어를 개발할 때도 만들고자 하는 완성품인 객체를 모델링해 여러 부품들을 조립해서 완성된 하나의 프로그램(Object)을 만드는 기법을 객체 지향 프로그래밍이라 한다. 객체란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말함. 예를 들자면 자동차는 색상, 모델명이라는 속성과 달린다, 멈춘다라는 동작이 있다. 자바에서는 이 속성과 동작들을 각각 필드(field)와 메서드(method)라고 부른다. 객체와 클래스 자동차를 만들기 위해서는 설계도를 바탕으로 자동차가 만들어지는데 자바에서는 설계도=클래.. 2019. 9. 3. Wrapper 클래스 개념 자바는 기본 타입(int, char, float, double..)과 참조 타입(기본형을 제외한 모든 자료형-배열, 클래스.. 등등)으로 나누어진다. 참조 타입인 포장(wrapper) 객체는 기본 타입의 값을 갖는 객체로 기본 타입의 값을 내부에 두고 포장한다. 예를 들어서 Integer obj = new Integer(100) 이런 식으로 int type의 값을 갖는 포장 객체를 만들 수 있다. *단 포장 객체에서 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없다. int(10)의 값을 -> Integer(10) 기본(원시) 타입의 값을 포장 객체로 만드는 과정을 박싱(Boxing) Integer(10) -> 포장 객체에서 int의 값 10을 얻어오는 과정을 언박싱(Unboxing)이라 한다. 2019. 9. 2. 이전 1 ··· 32 33 34 35 36 다음