분류 전체보기 310

[Docker] 왜 도커를 사용할까? + 설치까지

내 컴퓨터에서 하나의 애플리케이션을 만들기 위해서는 운영체제 위에 여러 소프트웨어를 설치하여야만 한다. 웹 서버라든지, 데이터베이스 라든지 여러 소프트웨어를 깔아서 본인만의 애플리케이션을 만들게 된다. 매번 소프트웨어를 설치하는 일은 상당히 복잡한 일이다. 하지만 네트워크로 통신해 각각의 앱(App)을 가지고 와서 사용할 수 있게 할 수 있다면 얼마나 좋을까? 전문가들이 구축해놓은 운영체제들을 가지고와서 쓸 수 있게 해주는 것이다. 그렇게 된다면 매번 새롭게 앱을 구축하고, 운영체제를 설치하고 하는 방식이 필요 없을 것이다. 본인이 필요한 소프트웨어나 운영체제를 그냥 불러옴으로써 사용할 수 있기 때문이다. VMware나 Virtualbox와 같은 개념이다. 하지만 매번 운영체제에 설치된 앱을 불러오는 과..

Docker 2022.03.02

[Docker] Dockerfile 생성하기

컨테이너에서 commit을 한 후 이미지를 생성하게 되면 이미지 안에 어떤 파일이 설치되고, 어떤 파일이 있는지 확인하기가 어렵다 그렇기 때문에 우리는 Dockerfile을 만들어 사용할 수 있다. 체계적인 이미지를 만들기 위해서는 Dockerfile 이라는 약속된 폴더를 만들어서 컨테이너를 생서할 수 있다. Dockerfile을 만들기 위해 임의의 폴더를 한 번 생성해보자. $ mkdir docker_folder $ cd docker_folder docker_folder 라는 것을 만들어 docker_folder에 접근한 후 해당 폴더 내에 'Dockerfil'e을 생성해야된다. Dockerfile은 확장자가 없는 파일을 의미한다. 해당 폴더 내에 다음과 같은 코드를 입력해서 환경을 만들어주자. FRO..

Docker 2022.03.01

[Docker] 도커 시작하기 pull, rm, ps, etc...

도커는 Linux 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술이다.[참고] 도커를 사용하면 매우 가벼운 가상 머신처럼 사용할 수 있고, 컨테이너를 구축 및 배포 및 복사를 하고 환경 간 이동이 유연하게 사용될 수 있다. 또한, 도커의 접근 방식은 전체 App을 분해할 필요 없이 App의 일부를 분해하고, 업데이트 등이 가능하다는 점이 중요하다. 하지만 계속해서 컨테이너화 된 앱을 많이 사용하게 되면 관리가 어려워지게 된다. 이때 컨테이너 간 그룹화하는 작업을 수행할 때 쿠버네티스(Kubernetes)가 사용된다. 쿠버네티스는 다음에 한 번 다루어 보도록 하자. 도커를 처음 시작하면 생소한 단어가 존재한다. 바로 '이미지(Images)'와 '컨테이너(Containers)'다. Docker Im..

Docker 2022.03.01

[Python] matplotlib 시작하기

matplotlib은 파이썬에서 시각화할 때 주로 사용되는 패키지 중 하나이다. seaborn, folium 등의 다양한 패키지가 존재하지만, 가장 많이 사용되는 matplotlib에 대해서 다루어보자. 1. plt.figure() figure는 하나의 종이라고 생각하면 된다. 우리가 그림을 그리기 위해서는 종이가 필요한데, figure는 종이를 만들어주는 함수라고 보면 된다. figsize 인자를 통해 종이의 크기를 설정해주고, facecolor 인자를 통해 종이의 색을 지정해줄 수 있다. fig = plt.figure(figsize=(7, 7), facecolor = 'linen') # red plt.show() 2. plt.add_subplot() add_subplot을 통해 ax라는 변수에 sub..

[pyspark] Example of pyspark ML

앞선 글에서 pyspark Session을 설정하는 법과 csv 파일을 불러오는 방법에 대해서 다루어 보았다. 이번에는 pyspark에서 csv 파일을 불러와 간단한 ML(machine Learning)을 수행해보자. from pyspark.sql import SparkSession spark = SparkSession.builder.appName('missing').getOrCreate() training = spark.read.csv('dataset/test2.csv', header=True, inferSchema=True) training.printSchema() training.show(4) inferSchema = True 로 설정해줌으로써 age, Experience, Salary 변수가 in..

Python/Pyspark 2022.02.22

[pyspark] csv 파일 불러오기

파이썬에서 스파크를 활용하기 위해서는 기본적으로 Session을 지정해주어야 한다. 세션을 지정하고 빌드업을 해주면 다음과 같은 결과창이 나온다. from pyspark.sql import SparkSession spark = Sparksession.builder.appName('Practise').getOrCreate() spark 스파크의 버전과 내가 지정한 AppName도 같이 출력된다. df_pyspark = spark.read.option('header', 'true').option('inferSchema', 'true').csv('sample.csv') option에서 header : true를 지정해주면 csv 파일의 첫번째 행을 열이름으로 인식하고 가지고 온다. inferSchema는 각 ..

Python/Pyspark 2022.02.21

[pyspark] 스파크 시작하기

이전에 스파크를 설치해보았다. 지금은 스파크의 간단한 코드를 작성해볼 것이다. 환경은 파이썬 내에서 실행한다. 파이썬에서 스파크를 실행하기 위해서는 Session을 생성해주어야한다. 아래와 같이 Session을 생성하고 변수에 받을 수 있다. import pyspark from pyspark import SparkConf, SparkContext from pyspark.sql import SparkSession # Session 생성 spark = SparkSession.builder.appName('Basics').getOrCreate() # make DataFrame myRange = spark.range(1000).toDF('number') myRange는 0부터 999까지의 데이터를 받아 데이터 ..

Python/Pyspark 2022.02.20

[pyspark] 환경 설정

python에서 spark를 사용하기 위해서는 몇 가지 환경 설정이 필요하다. 1. JAVA 11 version $\uparrow$ 2. HADOOP 3 version $\uparrow$ 3. SPARK 3.2.1 4. PYTHON 3 version $\uparrow$ 위에서 언급한 4개의 버전을 제대로 설정해주어야만 사용이 가능하기 때문에 매우 중요하다. Spark3.2.1 버전을 사용할 것이기 때문에 JAVA는 11버전 이상을 다운받는 것이 좋다. 왜냐하면 Spark3.0.0 버전부터는 JAVA 11버전 부터 지원하기 때문이다. Hadoop도 마찬가지고 3버전 부터 지원하고 있으니 유의해서 다운받자. 파이썬의 경우 역시 3 버전부터 지원하니 유의하자. 3. Download Spark : spark-3..

Python/Pyspark 2022.02.17

[Recommender System] 공분산(Covariance)

추천 시스템에서는 차원 축소 기법을 사용하여 모델을 구축할 때 공분산을 다룬다. 차원 축소는 다차원 행렬을 저차원으로 보내어 희소성 문제를 일부 완화할 수 있게 만들어주는 기법이다. 지금은 행을 기준으로 계산이 이루어지면 PCA(Principal Component Analysis), 열을 기준으로 계산이 이루어지면 FA(Factor Analysis) 정도로만 이해해도 무방하다. 사용자-아이템 간 평점 행렬은 일반적으로 희소(Sparsity) 행렬이라고 부른다. 쇼핑몰에는 방대한 양의 아이템이 존재하는데, 사용자는 모든 아이템에 대해 평점을 측정하는 것이 아니고, 일부에 대해서만 평점을 부여하기 때문이다. 이전에 다루었던 SVD(Singular Value Decomposition)과 비슷한 맥락이며, 결과..

반응형