2018의 게시물 표시

[CSS] 박스모델(Box Model)구조

이미지
[CSS] 박스모델(Box Model)구조  박스 모델의 구조 일반 텍스트 문장이나 이미지 등으로 홈페이지를 만들 때는, 아래 그림과 같이 기본 하나의 박스는 4개의 영역으로 구성되어 있음 내용을 표시하는 영역 텍스트와 이미지 등의 컨텐츠 내용이 표시되는 영역 폭(width) 과 높이(height)로 크기를 지정할 수 있음 예) <!doctype html> <html lang="ko">   <head>     <meta charset="utf-8">     <title>CSS</title>     <style>       h5 {         margin: 10px;         border: 10px solid #dddddd;         padding: 10px;       }     </style>   </head>   <body>     <h5>Box Model</h5>   </body> </html> Box Model 출처 : https://www.codingfactory.net/10556 출처 : https://www.tabmode.com/homepage/boxmodel.html

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[Python] # -*- coding: utf-8 -*-를 쓰는 이유 파이썬2의 기본 인코딩은 ascii 이다 파이썬2는 한글을 쓸때 골치아프다.  파이썬 스크립트에서 한글을 사용하게 될 때 파이썬은 ascii 인코딩일 것으로 예상하고 해석하려고 하지만 한글을 ascii로 해석이 불가능하기 때문에 SyntaxError발생 영어만 사용하면 별로 신경 쓸게 없지만 한글은 euc-kr , utf-8 이 공존하기 때문이다. 그냥 골치아픈것도 아니고 unicode와 조합되어서도 골치아프다. unicode 관련 부분의 경우 최초부터 지원한게 아니라 파이썬 2.4부터 지원을 추가되어서 문자열을 의미하는 타입이 str 와 unicode 가 존재해서 더 골치가 아프다 파이썬3에서는 기본값이 UTF-8이기 때문에 기본값에서 벗어나거나 다른 tool( ex: IDE또는 텍스트 편집기)를 사용하는 경우에만 사용 즉, 파이썬에 관한 다른 인코딩을 사용하고자 할때만 사용하면 됨 파이썬의 기본 인코딩은 ascii 이다. 스크립트 파일이 ascii인코딩일거라고 가정하고 읽어서 파싱하려고하는데 ascii로 해석이 불가능한 한글이라는 단어가 존재하기 때문에 SyntaxError(문법 에러)가 발생 이를 해결하기 위해서는 아래와 같은 스크립트 파일 첫줄에 파일의 인코딩을 명시해주면 된다. #-*- coding: utf-8 -*-  파이썬2.x의 기본 인코딩은 ascii 이다. 파이썬 스크립트에서 한글을 사용하게 될 때 파이썬은 ascii 인코딩일 것으로 예상하고 해석하려고 하지만 한글을 ascii로 해석이 불가능 하기 때문에 SyntaxError가 발생 한다. 출처 : https://libsora.so/posts/python-hangul/

[운영체제] 메모리와 하드디스크 차이

이미지
[운영체제] 메모리와 하드디스크 차이 메모리 주기억장치 컴퓨터의 CPU 가 처리하는 데이터와 프로그램을 저장 저장방식 : 반도체 칩의 저장방식 메모리는 반도체 칩을 사용하기 때문에 고용량으로 구현하기가 쉽지 않음 용량이 작은 대신 빠른 속도로 데이터를 저장하고 빼낼수 있음 주소를 가지고 원하는 주소에 데이터를 저장하고 빼내는게 주 임무 하드디스크 보조기억 장치 메모리가 작업을 하는 내용을 저장하고 컴퓨터 전원을 끄면 내용이 사라지므로 내용을 꺼도 오래도록 저장하려는 외부 기억 장치 사용자가 사용하고자 하는 데이터와 프로그램을 저장 저장방식 : 디스크(원판)에 자성물질을 입혀 데이터를 저장 테이프와 같다고보면됨. 다만 테이프는 아날로그 신호를 저장하고 하드디스크는 0과 1이라는 디지털 정보를 저장 ex) 컴퓨터에 아래 한글과 파워포인트가 깔려있다고 생각해봄 + 한글 파일, 파워포인트 파일 하드디스크에는 이 모든 것들이 다 저장이 됨 ex) 한글파일을 수정하고자 아래한글 프로그램을 시작시켜 한글 파일을 열음 이 프로그램과 데이터는 CPU가 사용하므로 하드디스크에 있는 아래한글 파일을 메모리에 저장 출처 https://tip.daum.net/question/51218672

[Docker] Docker란?

이미지
[Docker] Docker란? 도커는  컨테이너 기반의 오픈소스 가상화 플랫폼 입니다. 컨테이너라 하면 배에 실은 네모난 화물 수송용 박스를 생각할 수 있다. 각각의 컨테이너 안에는 옷, 신발, 전자제품, 술, 과일등 다양한 화물을 넣을수 있고 규격화되어 컨테이너선이나 트레일러등 다양한 운송수단으로 쉽게 옮길 수 있음 서버에서 이야기하는 컨테이너도 이와 비슷 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줌 backend 프로그램, DB서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화 할 수 있고 조립PC, AWS, Google cloud등 어디에서든 실행 할 수 있음 컨테이너를 가장 잘 사용하는 기업은 구글인데 2014년 발표에 따르면 구글은 모든 서비스들이 컨테이너로 동작하고 매주 20억개의 컨테이너를 구동한다고 함 새로운 컨테이너를 만드는데 걸리는 시간은 겨우 1~2초 로 가상머신과 비교도 할 수 없이 빠르다. 이미지 도커에서 가장 중요한 개념은 컨테이너와 함께 이미지 라는 개념임 이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것 ex) ubuntu이미지는 ubuntu를 실행하기 위한 모든 파일을 가지고 있음 ex) MySQL이미지는 debian을 기반으로 MySQL을 실행하는데 필요한 파일과 실행 명령어, 포트 정보등을 가지고 있음 말그대로 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다 컨테이너는 이미지를 실행한 상태라고 볼 수 있음 추가되거나 변하는 값은 컨테이너에 저장 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고, 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아 있음 레이어 저장 방식 도커이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고

[Machine Learning]Tensorflow란?

이미지
[Machine Learning]Tensorflow란? 인공지능은 Python(파이썬)에 특화되어 있다. 즉 파이썬은 딥러닝을 다루기에 좋은 언어 파이썬은 시행착오, 데이터 분석등과 같은것에 특화되어 있음 그렇다고 다른 언어(ex 자바)와 같은거로 못 만든다는거는 아니다 텐서(Tensor) Tensor = Multidimensional Arrays = Data 딥러닝에서 텐서는 곧 다차원 배열로 나타내는 데이터 ex) RGB이미지는 삼차원 배열로 나타나는 텐서 플로(Flow) 플로는 곧 데이터의 흐름을 의미 tensorflow에서 계산은 데이터 플로우 그래프(Dataflow graph)로 행해짐 그래프의  각각 간선은 시스템을 따라 흘러가는 데이터(Tenosr)를 의미 그래프는 각각 노드는 수식을 의미  그래프를 따라 데이터가 노드를 흘러가면서 계산을 수행 Tensorflow(텐서플로우) 딥러닝 오픈소스 패키지 실제 파이썬 개발자들도 텐서플로우를 이해하기 상당히 힘듬 텐서플로우는 파이썬에서 돌아가는 것이 아니라 파이썬으로 텐서플로우를 구동함 파이썬은 자바보다도 느린 언어라서 파이썬의 함수를 이용해서 머신러닝, 딥러닝같은 엄청난 자원을 쓰는 알고리즘을 돌리는 것은 바보같은 짓 일부 데이터 분석 프로그램을 작성할 때에도 자바로 구동할 때 느려서 C, C++로 동일한 부분을 짜서, 서비스로 구현하는 경우도 종종 있는데 파이썬으로 딥러닝을 구동하는것 자체가 바보같은 짓 Tensorflow는 껍데기가 파이썬이고, 자체적인 프로그램(아마도 C/C++로 만들어졌을거같음)을 파이썬이 호출하는 방식 Tensorflow와 경쟁상대인 다른 프레임워크들 PyTorch(파이토치) CNTK 아파치 MXnet 출처 :  http://inpages.tistory.com/57 출처 :  http://needjarvis.tistory.com/203

[Machine Learning] linear regression(선형 회귀)

이미지
[Machine Learning] linear regression(선형 회귀) linear : 선형(직선) regression : 회귀 지도학습 중 예측 문제에 사용하는 알고리즘 예측 문제 : 기존 데이터를 기반으로 생성된 모델(여기서는 회귀모델)을 이용하여 새로운 데이터가 들어왔을 때 어떤 '값'이 될지 예측하는 문제 선형 회귀분석은 기본적으로 설명변수와 반응변수가 연속형 변수일 때 사용 가능 연속형 변수의 예 : 키, 몸무게, 온도, 나이 등 범주형 변수의 예 : 학년, 혈액형, 성별 등 만약 설명변수가 범주형 변수인 경우 이를 더미 변수(Dummy Variable)로 변환하여 회귀분석을 적용해야 함 더미 변수 : 범주형 변수를 연속형 변수로 변환한 것, 즉 연속형 변수스럽게 만든것 선형 회귀분석 주어진 데이터를 대표하는 하나의 직선을 찾는 것 y=ax+b인 회귀식에서 x가 1개인 것을 보면 알 수 있듯이 단순 선형 회귀분석에선 input이 되는 설명변수는 1개 회귀선을 찾는 기준중 대표적인 최소제곱법 선형 회귀분석은 최소제곱법(최소자승법)을 기준으로 회귀선을 찾음 최소제곱법을 설명하기 위해서는 잔차라는 개념을 알아야 함 잔차 : 관측값의 y와 예측값의 y간의 차이 최소제곱법은 잔차의 제곱의 합이 최소가 되도록 하는 직선을 회귀선으로 한다는 것 회귀식을 바꿔가면서 잔차의 제곱의 합이 최소가 되게 하는 직선을 찾는 것이 선형 회귀분석이고 그 직선을 회귀선이라고 부르고 그 선의 함수를 회귀식이라고 부름 선형 회귀분석을 한다는 것은? 분석가가 데이터, x변수, y변수를 지정하고 통계 툴이 최소제곱버을 이용해 회귀식 y=ax+b에서 a와 b를 구하는 과정 회귀식에서 a를 회귀계수, b를 y절편이라고 부름 다중 선형 회귀분석 단순 선형 회귀분석이 설명변수 x가 1개, 반응변수 y가 1개인 선형 회귀분석이라면 다중 선형 회귀분석은 설명변수

[컴퓨터네트워크] TCP/IP의 개념 및 프로토콜 구조

이미지
[컴퓨터네트워크] TCP/IP의 개념 및 프로토콜 구조 원격지에 떨어진 컴퓨터를 제어하기 위한 로그인, 다량의 파일 전송, 이메일 기능에 대한 요구가 생겼다. 이러한 요구를 만족시키기 위해서 전송 제어 프로토콜인 TCP(Transimission Control Proocol)이 생겼다. TCP 프로토콜의 가장 중요한 기능은 네트워크상에서 원하는 컴퓨터에 데이터를 안정하게 전송하는 것이다. 하지만 원하는 컴퓨터에 데이터를 정확하게 전송하기 위해서는 원하는 컴퓨터를 제대로 찾아 내는것이 중요하다. 그래서 네트워크 상에 있는 컴퓨터들 사이에서 서로의 위치를 확인할 수 있게 하기 위한 주소가 필요하다. 즉, IP 어드레싱(Internet Protocol Addressing)은 이렇게 상대 컴퓨터를 찾아 내기 위한 방법이다. IP(비연결형)으로 주소를 찾고 TCP(연결형)으로 프로그램(80번포트)로 접속 TCP/IP를 간단하게 정리하면  IP 는 "주소" 인터넷 주소 지정과 라우팅 단편화와 재조립 TCP는 "필터" 전송할 데이터가 필터를 거쳐 원하는 주소에 도달함 즉, 데이터가 안정적으로 목적지에 도착하기 위해 TCP/IP라는 통신 규약을 사용 컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신해야 함 어떻게 상대를 찾고 어떻게 상대에게 이야기를 시작하고 어떤 언어로 이야기하며  어떻게 이야기를 종료할까와 같은 규칙을 결정할 필요가 있음 이와같이 서로 다른 하드웨어와 운영체제 등이 서로 통신을 하기 위해 모든 요소에 규칙이 필요함. 이러한 규칙을 TCP/IP 라고 함 TCP는 연결 설정을 위해 SYN을 사용하고, 연결 해제를 위해서 FIN을 사용한다. TCP 세그먼트에서 검사합(Checksum)의 포함은 필수 전이중(full duplex) 연결 서비스를 제공한다. 3-way 핸드셰이크(handshake)를 사용하여 연결을 설정한

[HTML] table만드는 방법

[HTML] table만드는 방법 < style type = "text/css" > .tg { border-collapse : collapse ; /*셀들간의 공백을 가질지 안 가질지를 결정*/ border-spacing : 0 ; /*separate 일때문 유효함*/ } .tg td { font-family : Arial , sans-serif ; /*Arial글꼴을 먼저 찾고 없으면 웹브라우저에서 설정한 명조 계열 글꼴을 찾음 영어는 Arial이 있고 한글은 없으면 한글은 웹브라우저에서 설정한 명조 계열 글꼴*/ font-size : 14px ; /*글자 크기를 지정 14px이처럼 구체적지정말고 smaller larger등등도 가능*/ padding : 10px 5px ; /*테이블 내의 여백*/ border-style : solid ; /*말그대로 테이블 외각 border style*/ border-width : 1px ; /*선 두께*/ overflow : hidden ; /*내용이 요소의 크기를 넘어갔을 때 어떻게 처리 할 것인지?*/ word-break : normal ; /*띄어쓰기가 없는 긴 단어를 어떻게 처리 할 것인지?*/ border-color : black ; } .tg th { font-family : Arial , sans-serif ; font-size : 14px ; font-weight : normal ; padding : 10px 5px ; border-style : solid ; border-width : 1px ; overflow : hidden ; word-break : normal ; border-color : black ; } .tg .tg-baqh { text-align : center ; vertical-align : top } .tg .

[how to] local에 있는 html문서 웹에 띄우는 방법

[how to] local에 있는 html문서 웹에 띄우는 방법  file:///Users/kimyoungdong/workplace/HTMLpractice/practice.html 위와 같이 file:///~~ 이렇게 path를 지정해주면 됨 localhost:8888/~~ 이렇게 하는거는 웹 서버를 띄울때 사용

[Python] 클래스란?

이미지
[Python] 클래스란? 클래스를 쓰는 이유는? 위와 같이 똑같은 일을 하는 add1, add2라는 함수가 만들어졌고 각각의 함수에서 계산된 결과값을 유지하면서 저장하기 위한 전역변수 result1, result2가 필요하게 되었다. 상당히 비 효율적 코드  Calculator 클래스로 만들어진 cal1, cal2라는 별개의 객체가 각각의 역할을 수행 각 객체의 결과 값 역시 다른 클래스의 결과값과 상관없이 독립적으로 결과값 유지 클래스를 상당히 간단해 짐 클래스에서 가장 헷갈리는 부분 파이썬 클래스에서 가장 헷갈리는 부분 setdata라는 메서드는 매개변수로 3개를 필요로 하는데 왜 a.setdata(4,2)처럼 2개만 입력해도 실행이 될까....? 파이썬 메서드의 첫번째 매개변수명은 관례적으로 self라는 이름을 사용 호출 시 호출한 객체 자신이 전달되기 때문에 self라는 이름을 사용 물론 self말고 다른 이름을 사용해도 상관은 없다. 파이썬에서 위와 같은 코드를 자주 보게 된다.  여기서 중요한 것은 바로 self이다 a.setdata(4,2)처럼 호출했을 때 자동으로 들어오는 객체 a라고 했다. 즉,  self.first의 의미는 -> a.first 두 문장을 풀어 쓰면 위와 같게 된다. ※ 메서드의 첫번째 매개변수를 self를 명시적으로 구현해야 하는 것은 파이썬만의 독특한 특징이다. 예를들어 자바같은 언어는 첫번째 매개변수인 self가 필요없다. 생성자 위와 같은 클래스에서 __init__   메서드만 따로 떼어 내서 살펴보자 __init__ 메서드는 setdata메서드와 이름만 다르고 모든게 동일하다 단, 메서드 이름을 __init__ 으로 했기 때문에 생성자로 인식되어 객체가 생성되는 시점에 자동으로 호출되는 차이가 있다.

[How to] 터미널에서 PATH를 실수로 바꿨을 때

[How to] 터미널에서 PATH를 실수로 바꿨을 때 터미널에서 PATH설정을 하다보면 실수로 잘못 설정을해서 ls와 같은 기본 명령어도 인식을 못 할때가 있다. export PATH=/bin:/usr/bin 위의 명령어를 입력하면 깔끔하게 해결

[How to] Visual Studio Code 패스(PATH) 설정하기

이미지
[How to] Visual Studio Code 패스(PATH) 설정하기  1. Visual Studio Code에서 일시적으로 PATH 설정 VSC를 열고나서 command + option + p를 클릭하고 나서 위와 같이  Shell command: instll 'code' command in PATH클릭(mac기준) 그러나 이렇게 일시적으로 실행하게되면 재 부팅후 다시 실행해야한다는 번거로움이 존재 2. 시스템에서 영구적으로 PATH 설정(미완성) https://apple.stackexchange.com/questions/294176/how-to-install-visual-studio-codes-code-command-permanently이거 따라서 downloads에서 빼서 Applications으로 이동시킨후에 진행중 다시 수정 Application으로 옮기면 1번의 방법으로도 영구적으로 가능한거 같기도하고.....(?) vim ~/.bash_profile bash_profile에 들어가서 export PATH="\$PATH:/Users/kimyoungdong/Applications/Visual Studio Code 2.app/Contents/Resources/app/bin:$PATH" 위와 같이 PATH를 설정해 줄것(Visual Studio Code2.app을 적당한 곳에 놓고 진행) VS Code 문서에 있는 영구적으로 추가 방법 위의 내용을 그대로 복사해서 사용하면 $PATH 부분의 변수값이 출력되어 원하지 않은 결과가 삽입될 수도 있음 그래서 $PATH 앞에 \를 추가 출처 :  http://blog.foundy.io/visual-studio-code-maeg-teomineoleseo-code-myeongryeongeo-path-seoljeonghagi/

[용어 정리] IaaS, PaaS, SaaS란?

이미지
[용어 정리] IaaS, PaaS, SaaS란? IaaS host ex) Compute Engine 하부의 인프라 부분만 제공. 즉, OS부터 상위의 모든 플랫폼이나 어플리케이션을 사용자가 직접 올릴 수 있음 PaaS build ex) App Engine 개발자가 어플리케이션을 개발, 서비스 하기 위해서 사용가능한 서비스와 기능들이 제공되는 클라우드 서비스 이미 구축 후 제공되는 인프라가 존재하기에 개발자는 상위의 플랫폼에서 빠르게 어플리케이션을 개발 및 서비스 가능 SaaS consume ex) mail service 어플리케이션의 소비 관점에서 제공되는 IT의 서비스 방식 서비스 사용자에게 추가적인 개발이나 데이터에 대한 추가적인 부담이 없음 출처 https://blogs.msdn.microsoft.com/eva/?p=1383

[Google] Kubernetes(쿠버네티스)란?

이미지
[Google] Kubernetes(쿠버네티스) 컨테이너 사전적 의미로는 어떤 물체를 격리하는 공간 클라우드에서는 애플리케이션과 애플리케이션을 구동하는 환경을 격리한 공간을 뜻함 컨테이너 기술은 약 10여년전에 리눅스에 내장된 기술로 현재 차세대 트랜드 기술로 주목받고 있음 가상머신 과 컨테이너 의 차이점 가상머신 서버 에서는 Hypervisor로 하드웨어를 가상화하고, 그 위에 Guest OS가 설치된 가상 머신들을 구동시킴 Hypervisor : 호스트 컴퓨터 1대에서 다수의 운영체제를 동시에 실행할 수 있도록 해주는 가상 플랫폼 기술 컨테이너 서버 는 운영체제 레벨에서 CPU, RAM, Disk, Network 등의 자원을 격리하여 컨테이너에 할당하기 때문에 게스트 OS가 따로 필요 없음 가상머신(VM) 컨테이너 기술 효율성 기업환경에서는 안정적인 운영을 위해, 1개의 가상머신에 1개의 서비스를 구동하는 것을 권장 이의 경우 성능적 오버헤드가 발생 OS 커널을 공유하기 때문에 자원을 필요한 만큼 효율적으로 사용 가능 신속성 VM을 배포해야 할때 크기가 최소 GB단위의 크기 컨테이너를 배포할 때 Guest OS가 없어 MB단위의 크기로 빠르게 배포가능 비용 가상화 서버의 경우 가상머신 개수만큼 Guest OS의 라이센스 비용이 발생 Host OS 1대의 라이센스 비용만 발생 안정성 정확히 할당된 자원 내에서 가상머신이 운영되기 때문에, 컨테이너에 비해 안정적 OS 커널을 공유하기 때문에, 하나의 컨테이너가 무리하게 자원을 사용하게 될 수 있습니다. 자원 할당량을 사전에 지정시켜줄 수 있지만, 만약 이런 상황이 발생하면 컨테이너에 장애가 발생합니다. 이런 컨테이너의 문제는 뒤에 등장할 쿠버네티스로 해결할 수 있습니다.