전체 글 133

[UMC Server] Chapter 4. Database 설계 & AWS RDS 설정

4.0 4주차 워크북 학습 목표 4주차는 백엔드 서버의 핵심인 데이터베이스 설계 방법을 알아보고, 요구 사항에 따라 어떻게 설계하는 것이 좋은 설계 방법인지 학습해보자. 데이터베이스를 잘 설계하는 방법 알아보기! 1) 유저 테이블 설계 방법 학습하기 2) N:M (다대다) 관계 설정 방법 학습하기 3) 알림을 보내야 하는 경우 설계 방법 학습하기 아래는 4주차 워크북을 수행하기 위해 알아야 하는 사전 개념을 간단하게 정리해보았다. 데이터베이스 수업에서 다루었던 내용이지만, 까먹은 부분이 많아 간단하게 다시 복습해보았다. 해당 내용에 대해서는 차후 블로그에 다시 자세하게 정리해 보아야 겠다! [ 사전 개념 (1) - 관계형 데이터 베이스 ] - 데이터를 table(표) 의 형태로 표시하는 방법 - 이 ta..

[UMC Server] Chapter 3. Web Server & Web application Server(WAS), Reverse Proxy

3.0 3주차 워크북 학습 목표   과거 인터넷 사용자가 지금처럼 많지 않았던 경우, 웸사이트 A의 사용자가 10명이었다면 단순히 10개의 html페이지를 만들었다.   하지만 사용자가 기하급수적으로 늘어나면서 모든 웹페이지를 개별적으로 만드는 것이 불가능해졌다.   따라서 미리 정해진 콘텐츠(정적)를 준비한 후 요청이 올 때마다 적절한 콘텐츠를 만들어주는(동적인) 새로운 방식이 도입되었다.   이번 장에서는 정적 콘텐츠 응답과 동적 콘텐츠 응답이 어떻게 다른지 살펴보자.    1) Web Server와 Web application Server의 차이를 이해한다.2) Reverse Proxy를 이해하고 적용한다.     앞선 2추자 EC2 NGINX 설치 내용에서 실습이 이어진다.     https://..

[GDSC Android] Chapter 2. Functions 함수

2.0 Kotlin Functions 학습 목표 Kotlin은 하이브리드 언어로 함수형과 객체지향을 모두 지원한다. 이번 챕터에서는 함수에 대해 먼저 알아보자. 1) Kotlin 프로그래밍의 기본 2) (Almost) Everything has a value 3) Kotlin의 함수 4) Compact functions 5) 람다(Lambdas) 와 high-order 함수 6) 리스트 필터(List filters) 모든 실습은 IntelliJ 에서 진행하였습니다. 2.1 코틀린 프로그래밍의 기본 먼저 프로그래밍 세팅을 위해서는 다음의 단계를 따라야 한다. 각 단계를 하나씩 살펴보자. 1) Kotlin 파일 생성 방법1) IntelliJ IDE 에서 New > Kotlin File/Class 설정 방법2..

[GDSC Android] Chapter 1. Kotlin 기본 문법

1.0 Kotlin basics 학습 목표 먼저 아래의 목차를 따라 Kotlin의 기본적인 문법을 배워보자. 1) 연산자 2) 데이터 타입 3) 변수 4) 조건문 5) List 와 Array 6) Null 안전성 모든 실습은 IntelliJ 에서 진행하였으며, REPL (Read-Eval-Print-Loop) 사용법은 앞선 블로그에 작성되어있다. 1.1 연산자 (Operators) 연산자는 다른 언어와 매우 유사하므로 간단하게 정리하고 넘어가자. 연산자는 '기본연산자' 와 '연산자 함수' 로 나뉜다. 1) 기본 연산자 - 기본 수학 연산 / 증감 연산 / 비교 연산 / 동등 연산 등이 속함 - ++ / -- / >= / == / != 등등 [ 기본 연산자 사용 예시 ] 1) 1 + 1 : kotlin.I..

[UMC Server] Chapter 2. AWS(VPC & Internet Gateway & EC2)

2.0 2주차 워크북 학습 목표 서버의 인프라 구축을 위해 AWS에 대한 학습을 진행해보자. 1) AWS의 VPC를 이해한다. 2) 서버가 어떻게 구축되는지 이해한다. 2주차는 AWS VPC에 대한 이론을 다룬 후, EC2 구축에 대한 내용으로 이어진다. 2.1 AWS에서 리전과 가용영역 먼저 리전과 가용영역의 의미에 대해 짚고 넘어가보자. 리전 - AWS는 수 많은 서버 컴퓨터 자원을 대여해줌 (물리적으로 존재) - 수 많은 컴퓨팅 서비스를 위해 대규모 컴퓨터 서버를 모아놓아야 함 - 한 곳에 컴퓨터를 몰아두면 자연재해시 문제발생과 서비스 지연 문제가 발생 - 따라서 서비스를 위한 자원들을 여러 곳에 분산해서 배치 가용영역 - 리전을 다시 한 번 더 분산하여 배치 2.2 AWS와 VPC AWS의 시작은..

[GDSC Android] Chapter 0. Kotlin을 사용한 Android 개발

0.1 Kotlin과 Android 알아보기 Kotlin 이란? - Java 플랫폼에서 돌아가는 새로운 프로그래밍 언어 - 주로 서버와 안드로이드 개발에서 사용되며, 무료 오픈 소스로 사용 가능 - 개발자의 생산성과 효율성을 높여주는 현대 최신의 프로그래밍 언어 - 명확성, 간결성, 코드 안전성을 제공함 - 2017년부터 Android 앱 개발을 위한 공식 지원 언어로 선정되며, Android 개발자의 60% 이상이 사용 Android 란? - Google에서 만든 모바일 기기 제어를 위한 Linux 기반 OS - OS 와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 서비스를 하나로 묶어 제공 - 누구나 참여할 수 있는 오픈 소스 모바일 플랫폼 - 이식성이 우월하여 스마트폰 및 태블릿 뿐만 아니라..

[UMC Server] Chapter 1. 서버란 무엇인가(소켓&멀티 프로세스) (1)

1.0 1주차 워크북 학습 목표 서버가 하는 일이 정확히 무엇이고, 어떻게 클라이언트와 서버가 데이터를 주고 받을 수 있는지에 대해 정확하게 이해하기! 1) 서버의 정의와 역할을 이해한다. 2) 서버가 어떻게 구축되는지 이해한다. 아래는 1주차 워크북을 수행하기 위해 알아야 하는 사전 개념을 간단하게 정리해보았다. OS / 네트워크 수업에서 다루었던 내용이지만, 까먹은 부분도 많고, 해당 개념에 대해 깊이 있게 알지 못하는 것 같아서 나중에 블로그에 자세히 정리하며 복습해야 할 것 같다. [ 사전 개념 (1) - 시스템 콜 ] - 응용 프로그램의 경우 유저 모드에서는 수행되지 못하는, 반드시 커널의 도움을 받아야 하는 작업이 있음 - 응용 프로그램이 특권 명령 (디스크 파일 접근, 화면 결과 출력 등) ..

[머신러닝] 섹션 1.3 넘파이 (1)

1.3.1 넘파이(NumPy) 란? 1) Numercial Python 를 의미 2) 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 대표적인 패키지 - 많은 머신러닝 알고리즘이 넘파이를 기반으로 작성되어 있음 - 대량 데이터의 배열 연산을 루프를 사용하지 않고 수행하므로, 빠른 연산 속도를 보장 - C / C++ 과 같은 low level 언어 기반 호환 API 제공 - Python 의 수행 시간이 길기 때문에, 중요한 부분은 C / C++ 로 작성 후 넘파이에서 호출 (ex. 텐서플로) - 데이터가 행과 열의 2차원 형태로 이루어져 다양한 가공, 변환 필요 - 따라서 판다스에 비해 편의성이 부족함 1.3.2 넘파이 ndarray 개요 먼저 넘파이 모듈을 import 하기 위해, 주피터 노트북..

[머신러닝] 섹션 1.2 파이썬 머신러닝 생태계를 구성하는 주요 패키지

1.2.1 Python 기반의 머신러닝을 익히기 위해 필요한 일반적인 패키지 1. 머신러닝 패키지 1) 사이킷런 (Scikit-Learn) : 가장 대표적인 머신러닝 패키지로, 데이터 마이닝 기반 머신러닝에서 독보적인 위치 : API 구성이 직관적이고 간결하여 이를 이용한 개발이 쉬움 2) 텐서플로 / 케라스 : 영상, 음성 등의 비정형 데이터 분야에서 사용 2. 행렬 / 선형대수 / 통계 패키지 1) 넘파이 (NumPy) : 대표적인 행렬과 선형대수를 다루는 패키지로, 사이킷런 역시 넘파이 기반으로 만들어져 있음 2) 사이파이 (SciPy) : 자연과학과 통계를 다루는 패키지로, 사이킷런 역시 사이파이의 도움을 받아 구축되어 있음 3. 데이터 핸들링 1) 판다스 : 대표적인 2차원 데이터 처리 패키지로..

[머신러닝] 섹션 1.1 머신러닝의 개념

1.1.1 머신러닝 (Machine Learning) 이란? 1) 인공지능의 하위 집합 2) 일반적으로 애플리케이션을 수정하지 않아도, 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법 예를 들어, 금융 사기를 적발하는 프로그램을 개발한다고 가정해보자. 금융 사기를 예방하기 위해 아무리 수천 라인의 소스 코드를 작성하고 다양한 로직을 구현하여도, 금융 사기자들은 이 로직을 뚫어 낼 것이다. 그리고 이 과정에서 우리는 많은 시간과 비용을 소모하게 된다. 하지만, 머신러닝을 사용하면 여러 문맥과 상황을 바탕으로 패턴을 찾아내고, 신뢰도 있는 결과를 도출해낼 수 있을 것이다. 따라서 현대의 데이터 분석 영역은 머신러닝 알고리즘 분석으로 확대되고 있고, 이러한 머신러닝의 도입은 소프트웨어 코드만으..