개발 18

[Kubernates] 쿠버네티스에서 Local Docker image 사용하기

개요 docker build command를 이용해서 local에 docker image를 생성하고 minikube를 이용해서 pod를 deploy를 하는 경우 위와같이 "ErrImagePull" 메세지와 함께 container생성에 실패하는 현상을 볼수 있습니다. 특히 초기에 kubernates를 스터디 하는 경우나 로컬에서 개발 혹은 테스트 하는 경우 대부분 이미지를 로컬에만 두고 테스트를 하는데 이때 kubernates상에서의 테스트를 할 수 없어서 찾아 보는 도중 로컬에 있는 docker image를 minikube에서 사용할 수 있는 방법이 있어서 소개합니다. 왜 에러가 발생하는 거지?? minikube를 사용해서 로컬에 pod를 deploy하는 경우 기본적으로 minikube내부의 image를..

개발/backend 2022.05.01

[일반] 비전공자 혹은 대학 신입생이 개발자가 되려면 어떤걸 배워야 할까?

개요 최근 커뮤니티에서 개발자가 되고 싶은데 어떤 것을 해야할지 모르겠다는 분들을 자주 봐왔습니다. 전공자의 경우도 있었고, 비전공자의 경우도 있었으며, 이분들은 대부분 공통적으로 어떤 언어를 어떻게 시작해야할지 몰라서 난감해 하는 경우가 대다수 였습니다. 물론 요즘 트렌드에 맞는 iOS/Android 개발을 위한 Swift / Java / Kotlin 을 공부하거나 Backend에서 많이 사용되는 Kotlin/JAVA Spring Framework혹은 NodeJS, 웹을 위한 Javascript, react, VueJs, AngurlarJS, 데이터 분석가를 위한 R이나 Python, 최근 떠오르는 Go, ReactNative등 본인의 스타일이나 목표에 맞게 설정을 한 다음 배우는 사람들도 있지만 앞서..

개발 2022.04.20

[Backend] 쿠버네티스(K8S)를 시작해보자(4) - 서비스 워크로드(workload)편(Service)

해당 포스팅의 모든 example은 아래 github repository에서 다운받을 수 있습니다. https://github.com/flyingcop/example-kubernates 개요 기존 포스팅에서 쿠버네티스에 대한 이론적인 내용, local host에서 테스트 혹은 트레이닝을 위한 환경 그리고 실제 쿠버네티스에서 구동되는 기본 요소들(Workload Resource)에 대해서 알아보고 간략하게 사용방법에 대해서 알아보았습니다. 이번 포스팅에서는 위의 구성요소들을 외부에 노출해서 사용자 혹은 client가 쿠버네티스에서 제공하는 기능을 사용할 수 있게 해주는 요소인 Service 에 대해서 알아보겠습니다. 이 챕터 이후에 각각의 Service들을 IP, Port를 이용한 접근이 아닌 URL을 이..

개발/backend 2022.04.17

[Backend] 쿠버네티스(K8S)를 시작해보자(3) - 워크로드(workload)편(Pod, ReplicaSet, Deployment)

개요 이전글에서 쿠버네티스에 대한 이론적인 내용과 local host에서 테스트 혹은 트레이닝을 위한 환경을 구성 했다면 이번장에서는 워크로드라고 불리는 실제 쿠버네티스에서 구동되는 요소들(Workload Resource)에 대해서 간략하게 알아보고 YAML파일을 이용해서 이를 배포 하는 방법을 알아 보겠습니다. 주의 : 여기서 다루는 내용은 모두 minikube를 이용합니다. 이는 하나의 cluster, 하나의 Node로 구성되어 있기 때문에 multi node, cluster에 관련된 내용은 포함하지 않습니다. 워크로드(Workload) 쿠버네티스를 이용할때에 기본적으로 많이 사용되는 Pod, ReplicaSet, Deployment, 3가지의 워크로드 리소스(workloads resource)에 대..

개발/backend 2022.04.05

[DynamoDB] AWS DynamoDB의 TTL(TimeToLive)기능을 사용해서 storage size관리를 자동화 해보자

개요 AWS에서 NoSQL형태의 DB인 DynamoDB service를 제공합니다. 이는 AWS의 다른 서비스들과의 연계도 쉽고 NoSQL의 특성상 data를 내 맘대로 저장하기에 좋은 형태이고, AWS 내에서 여러 사용사례가 있기 때문에 아마도 AWS를 사용하는 시스템이라면 한번쯤 사용을 고려해보거나 이미 사용하고 있을거라 생각됩니다. DynamoDB를 이용해서 데이터를 저장, 검색하는 기본적인 DB의 기능으로 이용하거나 데이터 분석/저장을위해서 S3, AWS Athena, Glue등 여러 서비스와 연계해서 이용하기도 합니다. 그리고, 이렇게 이용한 데이터를 DynamoDB에 계속 저장해둘 필요가 없는 경우가 있고, 만약 불필요하게 계속 저장해둘 경우 비용이 발생하기 때문에 이를 위해서 데이터 삭제하는..

개발/backend 2022.03.17

[Backend] 쿠버네티스(K8S)를 시작해보자(2) - minikube & kubectl 설치

이글은 2020년에 최초 작성되었고 2021년에 일부 수정되었습니다. 개요 쿠버네티스트를 잘 이용하기 위해서는 개념 이해부터 설치, 운영을 위한 여러 command, tool, extension, addons등 알아야하는 내용이 매우 많고 그것들을 잘 알고 사용하기까지 매우 많은 허들과 고난과 역경이 있습니다. 사실 개념과 각 구성요소들을 이해하기 위해서 Kubernates 사이트에 접속해서 Document들을 읽는 시점에서 포기하는 분도 꽤 많이 있고, 모든 document들을 읽고 이해한 후에 쿠버네티스를 사용하는 사람을 아마도 없을겁니다. 대부분 어느정도의 개념을 보고 실습을 해가면서 하나하나 사용법을 읽히고, 적용 했을때의 문제점을 발견하고 수정하면서 고급 사용법이나 운영법에 대해 익히게 됩니다...

개발/backend 2022.03.16

[Backend] 쿠버네티스(K8S)를 시작해보자(1) - 이론편

이 글은 2020년 초에 최초 작성 되었고, 2021년에 일부 내용이 수정되었습니다. 개요 예전부터 가상머신이나 컨테이너화 된 워크로드 구성에 대해서는 널리 알려져 있고 많은 분야에서 사용되고 있었다. 특히 Docker가 등장하면서 이후 컨테이너화는 빠른 속도로 고도화가되었고, 이를 이용한 컨테이너 오케스트레이션인 쿠버네티스는 이제는 큰 회사부터 스타트업에 이르기까지 수많은 회사에서 도입을 하고 있는 상황이다. 가상머신(VM)과 컨테이터 둘모두 하나의 HW에서 여러개의 application을 독립적으로 실행할 수 있고 각각의 실행 환경은 격리 되어(sendboxing) 서로의 환경에 자유롭게 접근할 수 없는 형태가 되면서 자연스럽게 어느정도 높은 수준의 보안성을 제공해 주고 있다. 또한 두 환경 모두 만..

개발/backend 2022.03.06

[AWS] AWS RDS - MySQL vs Aurora

개요 요즘은 Service를 구성 할 때에 DB의 선택은 필연적이 되고 있다. 최근 다양한 종류 혹은 스타일의 DB들이 있지만 전통적인 Relational Database를 아직까지도 많은 분야에 이용되고 있으며, 특히 Transaction 기능이 필요한 분야에서는 필수적으로 선택이 되고 있다. AWS에서 AWS RDS라는 DB Service를 제공하고 있다. Service형태로 DB를 제공하기 때문에 이를 사용하는 입장에서 관리적인 이점이 매우 크게 다가오기 때문에 많은 기업들과 스타트업이 service형태의 DB를 사용하고 미래의 서비스를 위해서 선택하고 있다. 이글은 AWS에서 제공하는 다양한 형태의 DB중 AWS RDS(Relational Database Service)중 MySQL과 Aurora..

개발/backend 2022.02.27

[iOS] RxSwift + Reactorkit 을 사용해서 프로젝트를 구성해보자 - Project Template

플라워로드 기술 블로그 : http://blog.flowerroad.ai 해당 글은 2021년 5월 24일에 작성되었습니다. 아래 글에서 설명하고 있는 FLo는 현재 서비스 중인 플라워로드 앱을 의미하지만, 이 글은 해당 앱의 기능적인 특징보다 RxSwift + Reactorkit을 이용해서 프로젝트의 SW architecture를 어떻게 구성 하는가에 초점을 두고 있습니다. 배경 iOS - FLo(플라워로드 앱) 1.0의 경우 서비스 초기 MVP를 target으로 개발되었기 때문에 개발 당시 구조를 생각하지 않고 최대한 빠르게 simple한 기능만을 가지는 output를 만드는것이 목표였습니다. 이후 기능들이 많아지고, 시나리오가 복잡해져감에 따라 코드의 복잡도는 더욱 심각하게 복잡해지고 읽기 힘든코드..

개발/ios 2022.02.27

[Android] Android Unit Test를 적용해보자! (Feat. mokito)

플라워로드 기술 블로그 : http://blog.flowerroad.ai 원본 Link : https://flyingcorp.notion.site/Android-Android-Unit-Test-Feat-mokito-46a4845f75304665a581772323f18877 이글은 2020년 12월 25일에 작성된 글입니다. Unit Test? 일단 유닛테스트란 구현하는 method를 테스트하는 또 다른 method의 집합체 이다. 하나의 유닛 테스트 method는 테스트 하려고 하는 method의 특정 루틴을 검사한다. 이말은 하나의 method를 테스트 하기 위해 기본적으로 성공, 실패, 예외 등 여러 유닛 테스트 method가 필요하다. 스타트업에서 바쁜데 굳이 이걸?? 소프트웨어 엔즈니어라면 한번쯤..

개발/android 2022.02.25