Wanted livetalk: 성장하는 서버개발자 되기

여태까지 서버개발자로 성장하며 생각했던 바를 정리해보았다. 모두 똑같이 성장할 수는 없다. 이렇게 성장한 사람도 있다는 관점에서 봐주었으면 한다. 영상은 원티드 구독을 해야만 볼 수 있다. 발표를 아티클화하였는데, 다음 글을 보는게 제일 빠르게 영상을 이해할 수 있다. 5분도 안걸리니 읽는 것을 추천한다. https://www.wanted.co.kr/events/22_02_s01_b06 참고로, 이때 들었던 분의 요약본도 있는데 이 블로그를 읽어봐도 좋다. Slides 성장하는 서버 개발자 되기 - Wanted Livetalk from Kyuhyun Byun References https://www.wanted.co.kr/events/22_02_s01_b06 요약정리: https://covenant.tistory.com/248 https://www.wanted.co.kr/events/livetalk28 https://www.wanted.co.kr/wantedplus/video/K7txZeA2?category=518

June 27, 2021 1 min

고언어(Golang) HACKING.md 내용 정리

Golang은 Open source project 이며 모든 개발 내역이 Github에 코드로 구현되어 있다. 하나하나의 구현 내용을 이해하고 싶다면 각 패키지를 읽어보며 이해할 수 있다. 그렇지만 방대한 양이기 때문에 처음에 접하는 경우에는 어디서부터 읽어야할지, 그리고 기본적인 구조를 어떻게 잡아야하는지 어렵기만 하다. 그렇다면 Golang의 기본적인 구조에 대해서 이해하고 싶다면 어떻게 시작해야할까? 다행히도 고언어 개발자들은 HANKING.md에 기본적인 내용을 정리해두었다. 고언어의 런타임이 어떤 구조로 이뤄져 있는지, 그리고 동시성 처리를 위한 방식이나 메모리 관리 측면에서는 어떻게 하고 있는지 등 다양한 내용이 정리되어 있다. ...

April 5, 2021 9 min

AWS re:Invent Recap For Data analyst

AWS re:Invent 2020 에서 새로 출시한 AWS Glue DataBrew라는 서비스를 살펴보고, 기존의 Data engineer의 역할을 DataBrew로 어떻게 대체할 수 있는지 설명한다. 마지막으로 DataBrew를 통해 코드 한 줄 없이 ETL을 하는 과정을 데모로 확인한다. Slide Share 데이터 분석가를 위한 AWS 신규 서비스 소개 - 변규현 SW 엔지니어, 당근마켓 from Amazon Web Services Korea Youtube Reference AWS re:Invent recap 2020 행사 링크 https://pages.awscloud.com/aws-reinvent-recap-kr-reg.html

January 15, 2021 1 min

당근마켓의 고언어 도입기, 그리고 활용법

당근마켓에 들어와서 고언어를 어떻게 도입하고, 어떻게 활용했는지에 대해서 정리해보았다. 서비스가 성장함에 따라서 요구하는 조건은 달라지고 이에 최적화된 언어를 도입하고, 기존 서비스에서 필요한 곳만 하나씩 고언어를 통해 플랫폼화하는 방법을 정리했다. Slide Share 당근마켓 고언어 도입기, 그리고 활용법 from Kyuhyun Byun Youtube Reference 어쩌다 밋업 링크 https://www.facebook.com/1512494142177634/posts/3692166177543742/

November 24, 2020 1 min

RDS PostgreSQL에서 Aurora PostgreSQL Migration 하기

RDS PostgreSQL에서 Aurora PostgreSQL을 도입한 후기 Presentation RDS에서 Aurora PostgreSQL Migration한 후기 from Kyuhyun Byun Youtube Reference AWS Community Day 2020 소개 링크 https://pages.awscloud.com/aws-community-day-online-2020.html

October 17, 2020 1 min

Handle massive traffic with serverless

The journey to adopt the serverless architecture from beginning to advanced. Presentation Handle massive traffic with serverless from Kyuhyun Byun

July 10, 2020 1 min

Go언어로 서버리스 서비스 시작하기

AWS에서 서버리스로 구현하는 앱은 보통 Javascript 또는 Python으로 작성된다. 그렇지만 AWS Lambda에서는 거의 모든 언어를 지원하고 있다. 더욱이 인프라 및 서버사이드에서 이뤄지는 프로젝트는 대부분 고언어로 작성되고 있다. 생산성 뿐만 아니라 배포시에도 이점을 가져가고 있기 때문이다. Serverless의 장단점에 대해서 이야기하고, Go 언어를 통해 서버리스 Todo 앱을 작성하고 배포하는 예제를 Golang Korea Meetup에서 발표하였다. 다음은 발표 때 사용했던 슬라이드 및 참고한 자료들이다. Presentation Start Serverless with Golang! from Kyuhyun Byun References https://github.com/awslabs/aws-lambda-go-api-proxy https://echo.labstack.com/guide https://serverless.com/ https://github.com/novemberde/go-serverless-demo https://novemberde.github.io/ppts/svelte/ https://github.com/spf13/cobra

December 22, 2019 1 min

Let's start SVELTE, goodbye React & Vue

W3C Conference Korea 2019 View presentation on new tab References https://www.44bits.io/ko/post/direnv_for_managing_directory_environment

October 11, 2019 1 min

Direnv를 활용한 프로젝트 별 환경설정하기

현재 Amazon EKS위에 컨테이너를 배포하기 위한 환경을 구축중이다. 각 운영되는 서비스 또는 Repository마다 환경들이 다르고, 개인으로 운영하는 서비스도 가끔 확인해야하는데 Global로 AWS 또는 K8s 환경 설정을 하면 귀찮아지기 때문에 폴더별로 모든 환경을 관리하고 싶어졌다. Direnv를 활용하면 directory마다 환경을 따로 관리할 수 있는데, 매번 같은 키를 넣고 관리하기도 귀찮아서 Direnv에서 사용하는 변수들도 따로 관리하고 있다. 다음은 현재 사용하는 패턴이다. Direnv 설치하기 다음은 참고한 문서이다. direnv로 디렉토리(프로젝트) 별 개발환경 구축하기 AWS 설정 옮겨가며 편하게 사용하기 AWS CLI를 계정별로 관리하고 싶을 때 profile 옵션을 사용한다. 하지만 이는 매번 profile을 입력해야하는 번거로움이 있다. 위에 링크를 잘 살펴보면 “전역 설정 파일 .direnvrc"를 찾을 수 있다. 이걸 잘 활용하면 간편하게 디렉터리별 환경 설정을 한 곳에서 관리할 수 있다. ...

October 4, 2019 2 min

MySQL에서 DB스키마 작성시 주의할 점들

신규프로젝트를 진행할 경우 디비 스키마를 설계를 해야한다. 데이터의 타입부터 외래키 설정등 신경써야하는 부분들이 생각보다 자잘하게 있다. 이 경우에 주의해야하는 점들을 정리해보았다. 이 문서는 지속적으로 수정될 예정이다. Datatype MySQL에서 사용하는 데이터 타입은 다음과 같다. Numeric Type BIT[(M)] - A bit-value type. M indicates the number of bits per value, from 1 to 64. The default is 1 if M is omitted. TINYINT[(M)] [UNSIGNED] [ZEROFILL] - A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255. BOOL, BOOLEAN - These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true. However, the values TRUE and FALSE are merely aliases for 1 and 0, respectively, as shown here. SMALLINT[(M)] [UNSIGNED] [ZEROFILL] - A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535. MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] - A medium-sized integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215. INT[(M)] [UNSIGNED] [ZEROFILL] - A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295. INTEGER[(M)] [UNSIGNED] [ZEROFILL] - This type is a synonym for INT. BIGINT[(M)] [UNSIGNED] [ZEROFILL] - A large integer. The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615. SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Some things you should be aware of with respect to BIGINT columns: ...

June 10, 2019 13 min