본문 바로가기

분류 전체보기545

[Kotlin] ⚡️코틀린 특징 - 코틀린이란? 도대체 왜 쓰는가? 회사에서 주된 개발언어를 코틀린로 바꾸고 있는 분위기인듯하다. 그래서 나도 이제 코틀린에 익숙해져야한다..두둥.. 그런 의미로 코틀린을 한번 정리해보려고 한다. 일단 언어를 익히기에 앞어서 왜 쓰는지, 어떤특징이 있는지 간단한 개념부터 살펴봐아겠다. 코틀린 코틀린의 시작 intellj,pycharm 등 IDE 툴을 만든 젯브레인즈(jetbrains)에서 개발한 언어. 2011년에 발표되었고, 코틀린섬 이름으로부터 지어졌고, 2017년 구글에서 안드로이드 공식언어로 선택되었다. 코틀린으로 무엇을 할 수 있는가? 자바를 대체할 수 있는 언어로, 다음과 같은 프로그래밍이 가능한 멀티 플랫폼이다. Kotlin/JVM - 자바 가상 머신 상에서 동작하는 앱(자바앱/안드로이드앱)개발. Kotlin/JS - 자바스크.. 2022. 1. 29.
[Kotlin] 코틀린 Spring boot로 HelloWorld API 만들기 이전에 세팅한 환경에 이어서 기본적인 api 생성하는 튜토리얼을 진행해보려고 한다. 일단은 그냥 spring boot MVC모델에 기반한 api를 테스트해보고, 다음으로 spring boot5에서 지원하는 webflux기반의 api를 테스트해볼것이다! Kotiln Class 파일 생성 아래와 같이 api 디렉토리를 하나 파서 ContentsController 코틀린 클래스 파일을 생성한다. 그냥 단순한 java 클래스가 아니라 kotlin class!!! 그리고 아래와 같이 그냥 간단하게 localhost:8080/contents 로 접속하면 hello world를 출력하게 controller를 짠다. Run 해보기 : Edit Configuration 사실 기본으로 세팅되어 있을텐데 Edit Confi.. 2022. 1. 28.
[Kotlin] 코틀린 환경설정 - Intellj에서 코틀린 프로젝트 생성하기 이제 회사에서 python뿐만 아니라 코틀린을 시작하게 되었다. 그런데 코틀린은 물론이고 자바 스프링까지 익숙하지가 않아서 앞으로 기본적인것부터라도 차근차근히 기록해보려고 한다. 그래서 올한해는 파이썬은 기본이고 자바(스프링), 코를린까지 씹어먹어보는걸로! (맥북m1프로도 받았다..각성!) 일단, 스프링부트는 Java, Kotlin, Groovy 언어로 시작할수 있다. 그 중에서도 이제 '코틀린'으로 시작해보려고 한다. (Java로도 제대로 시작안해봤는데 코틀린으로 도전..) 프로젝트 생성 참고로 인텔리제이에서 새로운 프로젝트를 생성하면 아예 루트경로에 새로운 프로젝트 폴더가 생성이 된다. 아래와 같이 설정하면 HelloWorld 프로젝트 파일이 새로 생긴다. 여기에서 프로젝트 이름이랑 경로 설정하고, .. 2022. 1. 28.
❤️‍🔥2021 돌아보기 - 데이터엔지니어에 대한 확신으로 결국 해냈다. 나는 매달 노션으로 월간회고록을 써왔기 때문에 내가 어떤생각을 가지고 어떻게 살아왔는지 돌아볼수 있었다. 그리고 '잘한점'과 '못한점'을 분석해보고, 왜 성장했는지, 왜 개선해야하는지까지 생각해보았다. ​ 1.잘한점은 아무래도 커리어적으로 데이터엔지니어 재취업이라는 큰 목표를 달성한 것이다. 이렇게 성장할 수 있었던 이유는 지금까지 없었던 '여유'때문이고, 그 여유는 내가 하고싶은 일에 대한 믿음과 넘어져도 금방 일어날수 있다는 '확신'이 생겼기 때문인것 같다. 역시 한번 크게 넘어지고 나니까 일어날수 있는법도 알게 되고, 이렇게 성장하는게 아닐까 싶다. 2.못한점은 꾸준히 하지 못한점이다. 러닝을 하는 것도, 사진을 찍는것도, 블로그를 하는것도 다 잠깐 하다 말았다. 그 이유는 '귀찮음'. 그 나태지옥.. 2022. 1. 3.
참고자료-DynamoDB 데이터 변경 이벤트 파이프라인 구축하기 https://medium.com/daangn/dynamodb-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%80%EA%B2%BD-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-feat-kinesis-1733db06066 DynamoDB 데이터 변경 이벤트 파이프라인 구축하기 (feat. Kinesis) DynamoDB 데이터 변경 이벤트를 기반으로 AWS-Native 데이터 파이프라인 구축하기 medium.com 2021. 12. 27.
[Elasticsearch] 동작원리, shard와 replica를 몇개로 설정해야하는가? 이전에 이해한 개념을 바탕으로 이젠 원래 주 목적이였던 성능튜닝에 대해서 정리해보려고한다. 그 전에 es검색원리를 이해해야했다.(쉽지않다..) 검색하는데 어떤 영향이 있는지 알아아야 몇개로 설정할지 감이 잡힐테니까! 검색하는데 shard와 replicar가 어떤 영향을 미치길래 성능튜닝을 하는거지? 그래서 결국 primary shard와 replica를 몇개로 설정해야하는가? 참고로, Replica는 나중에 변경 가능하지만, primary shard는 인덱스를 처음 생성할때만 설정할 수 있다. (변경하려면 reindex해야함) https://localhost:9200/index명/_setting API를 통해서 primary shard와 replica 개수를 확인할 수 있다. 검색원리 일단 기본적인 원리.. 2021. 12. 23.
[Elasticsearch] 내부구조, cluster/index/replica/shard 개념정리 최근에 회사에서 elasticsearch를 써먹어보면서 성능튜닝을 몇가지 진행했다. 파라미터들을 조절하면서 결론적으로 뭐 이렇다는걸 대략적으로 보긴했지만 이런 의문이 들었다. es 성능은 shard개수보다 replica개수에 영향을 준다 왜? why? 특히 es 성능은 shard개수보다 replica개수에 영향을 준다 라는 이야기를 들었는데, 사실 나는 아직 shard랑 replica개념도 안잡혀 있어서 그런데 왜 그런지, 도대체 내부에선 어떻게 동작하길래 그런 결론이 나왔는지 궁금증이 생겨서 조금더 깊게 알아보기로 했다! 내부구조 먼저 전체적인 es의 내부구조를 살펴보면 이렇다. es가 '클러스터'를 구성한다고 하면 여러개의 '노드'들이 묶여서 있는 모습을 볼 수 있다. 그리고 각 노드에 데이터를 저장.. 2021. 12. 23.
python에 rusty를 섞는다?! 파이썬 segmentation fault 원인? python + C 파이썬은 C와 C++을 이용해서 파이썬 함수를 작성하면 확장라이브러리를 만들 수 있다. 네이티브 코드로 만든 파이썬함수는 일반 파이썬 모듈처럼 임포트한 뒤 바로 사용할 수 있다. 그런데 굳이 C와 C++을 이용해서 파이썬 함수를 작성해야하나? 먼저, C와 C++ 라이브러리를 사용할때 필요하기 때문이다. C로 파이썬을 확장하게 되면 Qt같은 덩치큰 여러가지 라이브러리를 파이썬에서 사용할 수 있다. 다음으로, 파이썬은 인터프리터 언어이다보니 CPU에서 바로 실행될 수 있는 C보다 느리기 때문이다. 그래서 많은 계산이 필요한 작업에선 적합하지 않다. 하지만 데이터분석과 같은 작업을 할때는 파이썬처럼 간단한 언어가 필수적인데, 이럴때 계산부분은 C확장 프로그램에 맡기고, 알고리즘 작성하는 작.. 2021. 12. 3.
한창 힙했던 언어 Python과 요즘 가장 힙한 언어 Rusty python과 Rusty(러스트) 스크립트 언어 세계 부동의 1위 python 그리고 시스템 프로그래밍계 떠오르는 샛별 rusty 파이썬은 컴파일해서 사용하는 프로그램이나 라이브러리를 개발할때 사용하고, 러스트는 컴파일하기 불편하거나 github같은 곳에서 바로 사용해야하는 시스템 유틸리티를 만들떄 자주사용한다. 요즘 힙한언어, rusty Mozilla 재단의 Graydon Hoare가 설계한 시스템 프로그래밍 언어. 초기에는 Mozilla의 실험적인 웹랜더링 엔진인 Servo를 개발하기 위한 목적. 이 엔진은 병렬 렌더링을 지원하는 크로스플랫폼 웹 렌더링 엔진이라 메모리 안전성을 보장하도록 설계. 러스트에는 차용검사(borrow checking)이라는 기능이 있다. 소스코드를 바이너리로 컴파일하기 전에.. 2021. 12. 3.
Airflow DAG작성하고, webUI 살펴보기 (OpenWeather ETL) 최근 이걸 2021.09.08 - [데엔스터디5] Airflow Deep Dive 들으면서 airflow를 이것저것 보고 있다. 그래서 간단하게 살펴본 web UI에 대해서 기록해보려고 한다. 우선 Airflow는 파이썬기반의 데이터파이프라인 프레임워크이다. 그래서 데이터파이프라인을 DAG라고 작성하면서 쉽게 생성하고, 관리해주는데 유용한다. 특히나 web UI를 지원해줘서 어떤 데이터파이프라인이 언제 실행되고, 어떻게 실행되는지를 볼 수 있다. AirFlow의 DAG는 데이터파이프라인을 의미하는 하나의 단위이다. 하나이상의 Task를 가지고 있고, 그 각각의 task들은 실행순서를 가지고 실행이 된다. 예를 들어 내가 작성한 DAG 파이썬 코드를 리뷰해보자면.. openWeatherAPI를 통해 최근7.. 2021. 9. 11.