Who am I 👨‍💻

  • 👨‍💻 소통하는 개발자, 김민준

    김 민 준 Backend developer. Contact. Email : minjun.kim.mj@gmail.com Channel. GitHub LinkedIn Resume click👆🏻 Introduce. 3년차 개발자로서 백앤드 개발 및 devops를 함게 겸하였습니다. 주로 웹 서비스의 백앤드 개발을 담당하였으며 AWS, K8S등 devops도 겸업하였습니다. 작은 규모의 팀에서 주도적으로 팀장같은 역할을 맡기도 하며 디자인과 고객 관리팀과의 협업을 주도적으로 진행하여 CAPA 서비스의 오픈을 책임졌던 경험이 있습니다. 비지니스의 이해를 바탕으로 개발하는것을 좋아합니다. 이를 위해 작은 단위로 빠르게 개발하고 배포하여 유저의 니즈를 빠르게 반영하며 서비스의 품질과 만족도를 높여서 실질적인 비지니스..

최신글

  • [Mac OS, Mysql] error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' 에러

    brew install mysql로 설치하고 실행을 하려하니 error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러가 발생했다. 이유는 mysql이 실행이 되고있지 않아서인데, mysql.server start을 입력하면 간단히 실행된다

  • 암걸린_개발자 - <3> 살아갈거면 살아야지.

    이전 이야기 3줄 요약 MRI를 찍어보니 조직검사각. 조직검사 해보니 암임. 치료 받을 병원을 고름 이번 이야기 3줄 요약 방사선 치료 시작함 스터디 만을어서 운영함 크기가 줄어들음 방사선 치료? 방사선 치료 뭔가 듣기만 해도 후들거리고, 엄청 아플꺼 같고, 머리는 다빠질것 같은 이름이다. 체르노빌과 우라늄이 생각나고, 뭔가 암을 죽이기 위해 넘으면 안되는 강을 건너는 느낌이지 않은가? 사실 그렇지않다. 방사선과 방사능은 조금 다른 개념이라는걸 알게되었다. 기본적으로 방사가 되는 능력이 방사능이고, 거기서 나오는 선이 방사선이다. 즉, 좀쎈 X-ray를 쏜다고 생각하면된다. 1번 치료에 누워서 한 5분?정도 가만히 있으면 방사선 치료기가 방사선 치료를 진행하는데, 큰 느낌은 없다. 이렇게 2달을 치료를 ..

  • 암걸린_개발자 - <2> 암환자가 되다.

    이전 이야기 3줄 요약 회사 퇴사함 손목아파서 병원간김에 다리도 점검받음 이상함. 흰덩이리가 보임. MRI찍으라는 말을 들음 거의 반년만에 뒷 이야기를 쓰다니... 항상 이런저런 이유로 늦장을 부렸지만. 더는 안된다. 이제 다음 이야기를 해보도록 해보겠다. 생각해보니 읽기 귀찮은 사람도 있을꺼 같다. 그래서 바쁜 현대인을 위하여 3줄 요약을 먼저 적고 가려고한다. 이번 이야기 3줄 요약 MRI를 찍어보니 조직검사각. 조직검사 해보니 암임(ㅋ) 치료 받을 병원 고름 MRI 찍읍시다. 촉 여러분은 촉을 뭐하고 생각하는가? 나는 감히 빅데이터라고 말하겠다. 인생을 살며 수없이 겪은 경험 때문에 생각과 추론의 단계를 건너뛰고 현상과 결과가 바로 이어지는게 나는 촉이라 생각한다. 이 얘기를 왜하는지 의아할꺼다. ..

  • [ROW_NUMBER()]컬럼에 1씩 증가하는 숫자 추가

    이번에 sql에 새로운 컬럼을 추가해야 하는데, 특정한값을 기준으로 1부터 증가하는 값이 존재하는 컬럼을 만들어야 했다. 바로 컨텐츠의 에피소드의 챕터숫자를 추가해야한다. 컨텐츠는 여러개의 에피소드를 가지고 있다. 에피소드는 여러개의 챕터를 가지고있고, 1부터 시작한다. 위와 같은 조건으로 increase가 되는 값을 입력을 해야하는데 문제점은 이미 insert되어있는 데이터에 추가를 하는것이기에 쉽지가 않았다. 결론적으로는 아래와 같은 sql문으로 해결했다. update episode as e,( select ROW_NUMBER() OVER(PARTITION BY content_id ORDER BY created_at) as chapter, id from episode order by content_i..

  • 300명 넘는 소프트웨어 마에스트로 13기 오픈 톡방을 만들다

    오픈 톡방을 만들다 때는 바야흐로 2021년 12월 말, 소프트웨어 마에스트로에 지원을 하겠다는 결심으로 열심히 알고리즘 공부를 하고있었습니다. 여러 소프트웨어 마에스트로 12기 후기를 보던중 ‘오픈톡방에서 준비했다’ 라는 글을 읽었는데,오픈톡방을 찾아봐도 13기 준비방이 없었습니다. 그래서 없으면 내가 만들기로 했습니다. 나의 개발자로서의 무기중 하나는 ‘커뮤니케이션이 잘 되고 팀에 잘 스며드는 개발자’라고 생각합니다. 이러한 강점은 여러 모임에 참여하고 함께 무언가를 만들어 가면서도 길러지지만, 직접 기획하고 사람을 모아보며 리딩 해보는 경험 역시 매우 중요하다고 생각합니다. 그런데 안 만들 이유가 없지 않을까?라는 생각이 들었습니다. 또, ToGather라는 스터디 그룹을 운영해보며 쌓은 경험이 있..

인기글

  • [ROW_NUMBER()]컬럼에 1씩 증가하는 숫자 추가

    이번에 sql에 새로운 컬럼을 추가해야 하는데, 특정한값을 기준으로 1부터 증가하는 값이 존재하는 컬럼을 만들어야 했다. 바로 컨텐츠의 에피소드의 챕터숫자를 추가해야한다. 컨텐츠는 여러개의 에피소드를 가지고 있다. 에피소드는 여러개의 챕터를 가지고있고, 1부터 시작한다. 위와 같은 조건으로 increase가 되는 값을 입력을 해야하는데 문제점은 이미 insert되어있는 데이터에 추가를 하는것이기에 쉽지가 않았다. 결론적으로는 아래와 같은 sql문으로 해결했다. update episode as e,( select ROW_NUMBER() OVER(PARTITION BY content_id ORDER BY created_at) as chapter, id from episode order by content_i..

  • node.js crypto를 이용한 random string 얻는법

    node.js에는 많은 기본제공 모듈이 있다. 그중에서 암호화,복호화 기능을 제공하는 crypto 모듈을 이용해서 랜덤 스크링을 얻을수 있는 방법이있어서 소개해 주려한다 랜덤 스트링의 경우 환경설정등의 key 값으로 종종 사용되기에 알아두면 편리하다 코드는 매우 간단하다 const crypto = require("crypto"); console.log(crypto.randomBytes(20).toString('hex')) 위와 같이 몇줄 안되는 소스로 영어 소문자+숫자의 랜덤스트링을 얻을수 있다. f39bf14f62922b8c054e5781aaa806e4f5ad4a39 console.log(crypto.randomBytes(20).toString('base64')) hex 에서 base64로 바꾸게 되면..

  • [Git] Sourcetree fetch 오류 (reference broken)

    증상 Sourcetree 에서 fetch 를 하던중 오류 발생했다. unable to resolve reference 'refs/remotes/origin/master': reference broken 이전에도 다른 브랜치들의 최신화를 위해 패치를 진행할때 저런 오류가나서 고치지 못하고 local 의 폴더를 날리고 새로 clone 을 받았는데 이번에도 같은 경우가 생긴것이다. 해결법 이런 방법으로 반복할수는 없어서 검색을 하니 stackoverflow 에서 이 글 을 발견할수 있었다. 가장 추천을 많이 받은 방법은 $ git gc --prune=now $ git remote prune origin man git-gc(1): git-gc - Cleanup unnecessary files and optimi..

  • [Git]브랜치 에서 커밋을 안해서 작업들이 날아갔을때

    NOTICE : 3줄 요약은 글 하단에 있습니다. 충격적인 일이 일어났다 평소처럼 작업을 한다음에 커밋을 하였다 그런데 소스트리에서 브랜치가 선택이 안되있던것이 아닌가. 그래서 아무생각 없이 브랜치로 체크아웃 해버리고 말았다 그러지 말았어야 헀는데 난 그사실을 몰랐어~ 결과는 커밋을 그동안 했던 Head 는 온데간데 없어지고(당연하다) 약 6일전의 커밋으로 돌아가 버려서 6일내내 작업한것들이 통째로 날아가 버렸다. 멘탈이 바스라지고 손이 떨리며 눈이 출혈되고 안돼라는 소리가 절로 나왔다 아아.. 아무리 혼자 작업하는거라고 하더라도 master 브랜치 하나로 하지말껄… 한탄은 이미 의미가 없어진지 오래였다 박살난 멘탈을 어찌 붙잡고 Google 을 뒤진 결과 방법을 찾아냈다 방법은 HEAD 의 로그로 ch..

  • [K8S, Kong, Grafana] 그라파나 대시보드에 domain으로 접속하는법

    docs.konghq.com/kubernetes-ingress-controller/1.1.x/guides/prometheus-grafana/ 위의 문서를 통해 Kong Ingress를 사용하며 플러그인으로 Grafana와 Prometheus를 EKS환경에 설치를 했다. 하지만, 위에 예제에서는 Grafana를 portforwading 으로 접근하도록 가이드를 하고 있으나, production에서는 그럴수 없으니 미리 만들어둔 Ingress에 grafana service를 연결하려고 하였다. 하지만 Ingress에 연결해준뒤에 브라우저에서 /garafana로 접속하면 아래와 같은 에러가 나면서 실행이 되지않았다. ({“message”:“failure to get a peer from the ring-bal..

  • [자바스크립트, TS] camel case의 object key를 snake case로 바꾸기

    개발을 진행하다 Hasura에 query의 결과값으로 받아오는 object의 key가 snake case인데 실제 개발 컨벤션은 camel case여서 코드내에서 query한 결과값을 insert할때 다시 넣어줘야 하는 번거로움이 있었다. const originalSnake = { hello_world: "hihi", hi_there: "hi there", }; const insertObject = { helloWorld: originalSnake.hello_world, hiThere: originalSnake.hi_there, }; console.log(originalSnake); console.log(insertObject); /* { hello_world: 'hihi', hi_there: 'hi t..