분류 전체보기
[CSS] CSS 정리 (2)
[CSS] CSS 정리 (2)
2022.01.20웹 문서에서 내용을 배치할 때 각각의 요소들을 박스 형태로 구성한다. margin padding border 등 여러 가지 박스 요소들을 사용해 문서를 적절하게 배치하고 꾸밀 수 있다. 이제 CSS의 박스 모델에 대해 알아보자. 박스 모델 1. 블록 레벨 요소 블록 레벨 요소는 태그를 사용했을 때 혼자 한 줄을 차지하는 것을 말한다. 위에서는 , , 태그가 블록 레벨 요소이다. 2. 인라인 레벨 요소 인라인 레벨 요소는 한 줄을 차지하지 않고, 콘텐츠만큼의 영역을 차지한다. 위에서는 태그가 인라인 레벨 요소이다. 블록 레벨 요소와 인라인 레벨 요소를 비교 확실하게 이해하자. 이제 박스 모델을 사용해서 화면을 구성할 때 필요한 개념에 대해 알아보자. 패딩 / 테두리 / 마진은 상하좌우로 나뉘어 있어 네 방..
[CSS] CSS 정리 (1)
[CSS] CSS 정리 (1)
2022.01.19HTML (Hyper Text Markup Language)는 웹 사이트의 내용을 담당하고, CSS (Cascading Style Sheets)는 웹 사이트의 디자인을 담당한다. CSS는 웹 문서의 스타일이다. (Cascading : 위에서 아래의. 계단식의 정도로 해석하면 된다.) 웹 페이지를 항상 컴퓨터에서만 열람할 수는 없다. 모바일, 태블릿 등 여러 가지 환경에서 웹 페이지를 열어볼 수 있는데 여기서 HTML만을 사용해서 웹 페이지를 구성하게 되면 다양한 환경에 대한 화면을 따로따로 만들어야 하지만, CSS를 도입하면 하나의 웹 페이지의 뼈대에 CSS만 다르게 적용하는 것으로 효율적으로 다양한 환경의 화면을 구상할 수 있다. (이를 반응형 웹 디자인 이라고 한다) 위를 통해 알 수 있듯 CSS는 ..
[HTML] HTML 정리 (2)
[HTML] HTML 정리 (2)
2022.01.19: 사용자가 웹사이트로 정보를 보낼 수 있는 요소를 폼이라고 부른다. 보낸 정보는 서버에서 처리한다. 여러 가지 폼 요소 form에 사용할 수 있는 속성을 알아보자. 1. method : 내용을 서버 쪽으로 어떻게 넘겨줄 것인지 지정한다. - post : 속성값으로 post를 가질 수 있다. 주소 표시줄에 사용자가 입력한 내용이 드러나고, 데이터에 제한이 있다. - get : 속성값으로 get을 가질 수 있다. 데이터에 제한이 없고 입력한 내용도 드러나지 않는다. 2. name : 자바스크립트로 폼을 제어할 때 사용할 폼의 이름을 지정한다. 3. action : form 태그 안의 내용을 처리할 서버 프로그램을 지정한다. - autocomplete : 자동완성 기능을 제공하고, 기본값은 on 이다. 4...
[HTML] HTML 정리 (1)
[HTML] HTML 정리 (1)
2022.01.18HTML : 제목 본문 이미지 표 등 웹 요소를 알려주는 역할을 함. (Hyper Text Markup Language) 현재의 HTML은 HTML5 라고 할 수 있다. Hyper : 하이퍼링크 Markup : 태그 브라우저는 HTML 태그들을 해석해서 화면을 만들어낸다. CSS : HTML로 만든 내용을 꾸미거나 배치하는 역할을 한다. (태블릿 PC 모바일 호환에 사용) JavaScript : 동적 효과를 줄 때 사용한다. (라이브러리/프레임워크를 사용하지 않고 JavaScript만 쓰면 Vanila JavaScript) 프레임워크를 사용할 때는 개발의 주도권이 프레임워크에 있다. 라이브러리를 사용할 때는 라이브러리에서 필요한 기능만 사용해도 되기 때문에 주도권이 개발자에게 있다. 프레임워크와 라이브러..
[Android] 채팅 어플 만들기
[Android] 채팅 어플 만들기
2022.01.02소켓 통신을 이용한 채팅 어플을 만들어보자. 더보기 import android.database.sqlite.SQLiteDatabase; import android.icu.util.Output; import android.os.Handler; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import andro..
정리
정리
2021.12.131. (Traditional) ML 과 DL의 차이점 딥러닝에서는 backpropagation으로 Cost를 최소화한다. (층을 겹쳐서 쌓으니 scale이 커짐) DL 에서는 Feature 추출도 기계가 함. (인간의 개입을 최소화) 위의 이유 때문에 DL의 모델이 ML보다 복잡해지고 결정할 parameter수도 많아짐. 학습 데이터가 많이 필요함. 2. backpropagation, chain rule 여러 층으로 구성된 Neural Network. 즉 Deep Neural Network 에서 가중치를 갱신할 때 사용. forward(Loss 값 계산) -> backward(편미분 chain rule) -> gradient descent(가중치 업데이트) MLP에서 XOR을 처리하기 위해 backpro..
[Java] 네트워킹 (Networking) 2
[Java] 네트워킹 (Networking) 2
2021.12.13컴퓨터끼리 통신을 할 때 쓰는 도구를 소켓이라고 한다. 소켓을 통해 진행하는 통신의 종류로는 TCP와 UDP가 있는데, 소켓 프로그래밍에 대해 알아보자. 데이터를 전송(네트워킹)은 계층적인 구조로 이루어져있다. 여기서 전송을 담당하는 계층이 있는데 이 전송 방식으로 TCP와 UDP가 있다. TCP는 1:1 통신방식을 사용해 속도가 UDP보다 느리지만, 데이터 전송이 잘못되면 다시 요청하기 때문에 데이터의 신뢰성이 높다. UDP 는 보내는 사람이 일방적으로 보내는 형식이라고 생각할 수 있다. 덕분에 속도도 빠르지만, 받는 데이터가 올바른 데이터인지 아닌지 확인하는 과정이 없어 데이터의 신뢰성이 좀 떨어진다. (Streaming 에서 사용함) datagram은 데이터 단위라고 생각하면 된다. TCP는 byt..
[Android] 네트워킹 2
[Android] 네트워킹 2
2021.12.13지난 시간에는 소켓을 사용한 네트워킹에 대해 배웠다. 이번에는 JSON 데이터를 다뤄 활용해보자. JSON : JavaScript Object Notation 클라이언트와 서버가 좀 더 가볍게 데이터를 주고받기 위해 도입됐다. 소켓 통신에서는 byte stream 혹은 char stream으로 데이터를 주고받았는데, 이게 가능한 이유는 통신하는 대상끼리 서로 약속이 되어 있기 때문이다. 이렇게 진행되면 데이터 수는 줄일 수는 있지만 문제가 발생한다. 요즘은 기술의 발전으로 인해 텍스트 기반으로 통신을 진행하는게 가능해졌다. 여기서 xml과 JSON 형식의 데이터가 주목받고 있고, 데이터를 더 가볍게 주고받을 수 있는 JSON 형식의 데이터가 많이 쓰이고 있다. 프로그래밍 언어에 상관없이 넓게 사용할 수 ..
[Java] 네트워킹 (Networking) 1
[Java] 네트워킹 (Networking) 1
2021.12.05컴퓨터간의 관계를 서버와 클라이언트로 구분할 수 있다. 서비스를 제공하는 쪽이 서버이고 제공받는 쪽이 클라이언트가 된다. 하나의 서버가 여러 가지 서비스를 제공하기도 하고, 하나의 서비스를 여러 대의 서버로 제공하기도 한다. 서버는 서버 일만, 클라이언트는 클라이언트의 일만 하는 모델을 서버기반 모델이라고 한다. 파일 공유 시스템(Torrent)에서 많이 사용하는 모델으로 P2P 모델이 있다. 각각의 클라이언트들이 서버의 역할도 수행하는 모델이다. 우리는 보통 클라이언트의 역할을 한다. 서버에 접속하기 위해서는 특별한 경로, 특별한 식별자가 필요한데 이를 IP주소라고 한다. 이 IP주소를 바탕으로 컴퓨터들을 구분한다. IP주소는 4바이트와 6바이트로 나타낼 수 있는데, 원래는 4바이트를 많이 사용했는데 ..
[Android] 네트워킹 1
[Android] 네트워킹 1
2021.12.05네트워크를 이용해 서버에 데이터를 요청하고 응답받아 다른 사용자와도 소통해보자. 클라이언트는 서버에 데이터를 요청하고 서버는 그 요청에 대해 응답하는 형식의 2-tier 모델이 있다. 이 경우에 서버가 직접 데이터베이스를 다루고 만약 데이터베이스를 다루는 방식에 변화가 있으면 클라이언트에도 문제가 생긴다. 이 문제를 해결하기 위해 3-tier 모델이 도입됐다. 클라이언트와 서버가 소통하는 점에서는 2-tier 모델과 같지만, 서버를 응용 서버와 데이터 서버로 분리해 데이터를 관리하는 서버를 따로 구성하는 부분에서 차이가 있다. 이 외에도 서버를 두지 않고 단말끼리 서버와 클라이언트 역할을 하는 P2P모델도 있는데, 자세한 내용은 데이터베이스를 공부할 때 다루기로 하고 지금은 이 정도만 공부하자. 소켓을 ..
Machine Learning - RNN
Machine Learning - RNN
2021.12.05RNN (Recurrent Neural Networks) 지금까지 배웠던 것들을 생각해보자. 처음에 DNN (Deep Neural Networks)에 대해 배웠고, 다음으로 영상과 이미지 처리에 효과적인 CNN (Convolution Neural Networks)을 배웠으며 이제는 series에 대한 정보를 다룰 때 유용한 RNN에 대해 배울 차례이다. DNN Parameter가 급격하게 많아지는 단점이 있다. CNN Parameter를 줄일 수 있다. backpropagation을 수행하는 점은 DNN과 동일함. RNN RNN은 순차적인 데이터의 처리에 적합하다. ex. 시간에 따라 순차적인 입력이 들어오는 음성, 음악 상태 정보 등.. RNN을 음성인식에 사용하는 예시를 생각해보자. 우리는 음성을 직..
Deep Learning - CNN
Deep Learning - CNN
2021.12.05딥러닝의 활용 분야인 CNN (Convolutional Neural Network) 에 대해 알아보자. 영상을 볼 때 우리는 영상을 보지만, 컴퓨터는 숫자를 본다. 이미지는 행렬 기반으로 표현된다. 예시로 위와 같이 6x6 size의 행렬이 있을 때 3x3행렬을 * 연산 해 줄 수 있는데 이 연산을 Convolution이라고 한다. (선형대수의 곱셈과 convolution은 다름) 큰 수일수록 밝고 작은 수일수록 어둡다고 하자. convolution 연산 과정을 살펴보자. 3x3행렬로 나눈 다음 각 요소에 따라 연산을 진행한다. 완료된 연산은 오른쪽의 결과 행렬에 적는다. 위 방법을 반복해서 4x4 행렬을 완성한다. 예시의 연산을 마치면 위와 같이 나온다. 여기서 3x3행렬은 Filter라고 하는데 딥러..