2023-08-22 20:45:23

프론트엔드까지…

  • 고민이 된다.
  • 회사에서 프론트도 하게 되었는데 커리어에 영향이 있을 수도 있다.

2023-07-10 07:29:00

복귀& gitaction (CI/CD)

  • 휴가 복귀 했다.
  • 항해플러스 이번에는 CI/CD이다 이미 여러번 해봐서 어떻게 해볼까 싶었는데 마침 생 azure 서버를 제공 받게 되어서 docker hub로 push pull 하는 방식으로 해보았다. 약간의 문제는 있었지만 그래도 잘 해결되어 빠르게? 반나절만에 구축했다.
  • 하지만 CI는 그냥 CMD로만 실행하게끔만 해놓고 실패하면 중단되지는 않는다. 아직 그 부분은 고쳐야 할 부분이다.
  • 그 외적으로 작업한 내용은 config의 내용에 db init 내용이 들어가 있어서 분리를 했고, db logging을 스위칭 할 수 있도록 했다.
  • 트러블 슈팅이라 하면… process.env로 받은 것을 custom Provider로 해놓으면 왜 못가져오는지 잘 모르겠다.
  • string true, false의 값을 boolean으로 처리하고 싶을때 문제가 발생한다. 이 부분은 조금 테스트를 더 해봐야 겠다.

2023-07-04 06:00:00

항해 플러스 후기 4주차

  • 시간이 너무 부족하다. 특히나 하고 있는게 많고, 회사 배포일정까지 늦어지면서 굉장히 신경쓰이는 일이 많아 제대로 집중을 못하고 있다. 하지만 다른분들은 열심히 해주신 덕분에 피드백을 참조하면서 작성을 하고 있다.
  • 일단 코치님의 실업무를 기반한 조언들이 굉장히 자극을 주기 충분했다. 객체지향이란 것에 대한 생각, 같은 코드를 짜더라도 어떻게 의미 전달을 더 잘할 수 있을까에 대한 생각. TDD에 원론적인 방법과 현실을 조금씩 알게되었다.
  • Nestjs를 계속 이용하면서 좀더 깊게 알게 되는거 같았고 이미 알고 있다고 한것중에 잘못된 부분도 팀원의 도움으로 알게 되었다.
  • 예를 들어 DTO같은 경우 Entity와 혼용해서 사용했는데… (뭐 현회사에는 Entity가 interface로 되어있긴하다…) 같이 swagger 데코레이터랑 혼용해서 엉망으로 하고 있긴하다. 그런데 Entity와 Dto의 분리는 명확해야한다는걸 알게되었다.
  • 객체지향의 대한 방법과 철학을 느낌으로 알지만 아직까지 잘모르는 거 같다. 내가 이해한 바로는 컨트롤러, 서비스, 각각에 도메인에 대한 내용만 최대한 넣어야 하며 리펙토링 과정에서 생기는 다른 함수 또는 클래스는 독립적으로 작동이 되어 최대한 다른 서비스에 영향을 끼치지 않아야 한다. 아니 끼치지 않게끔 설계를 해야한다. 즉 독립적인 메소드에 대한 테스트 코드가 가능해지고 레포지토리에 대한것은 그냥 외부 모듈로서 데이터를 찍고 온다는 느낌으로 가는 것이다 라고 이해했다.
  • 처음으로 경력분들과 일하게 되면서 다양한 의견과 코드 스타일 의논도 많이 하게 되었고, 조율하는데 있어서 새로운 경험이 되었다. 아직 조그만한 스타트업을 다니면서 혼자 또는 CTO님의 코드리뷰를 받기만 했지 따로 동등한 위치의 팀원과 코딩을 한건 이번에 처음이다.
  • 순수 TDD로만 개발하는 단계여서 그런지 다들 어떻게 해야할지 막막하고 생각도 많아 초반에는 진도가 정말 안나갔다. 하지만 한번 두번 테스트 코드를 작성하고 피드백을 받으면서 자기만의 스타일 + 코치님의 조언대로 이렇게 저렇게 해보면서 테스트 코드를 작성하니 훨씬 도움이 많이 되고 방향성을 잡을 수 있었다.
  • 아마도 항해 파트1기다 보니 실험적인 측면 + 다양한 시도를 해보고 있는 느낌을 받았다.
  • 생각보다 이탈자가 많이 보이는 듯 하다. 이유는 나도 느끼고 있지만 현업 + 공부 + 프로젝트까지 하기가 정말 힘들다.
  • 토요일은 하루종일 코딩만 한다고 생각하면 된다. 하루가 없어진다….
  • 아무튼 힘들긴 하지만 이것만 집중했더라면 재미있게 진행할 수 있을거 같다.

2023-07-03 10:38:00

휴가

  • 취직하고 1년만에 휴가를 쓴다.
  • 오랜만에 필드를 나가고, 하고싶었던 수중 촬영을 위해 어드밴스 스쿠버다이빙 자격증을 따러 간다.
  • 물론 일도 해야하고…

2023-06-11 09:22:00

항해 플러스 후기

  • 첫날이니까 뭔가 어수선하고 무엇을 해야될지 잘 모르겠었던거 같다.

2023-06-10 15:31:00

복잡하다

  • 어떻게하면 더 간단히 알림을 만들 수 있을까, 지금은 fcm과 inapp 알림이 복잡하게 엮여 있고, 사용자 - 파트너즈, 사용자 - 사용자 끼리의 메세지가 지속적으로 생기고 있다.
  • function을 너무 많이 쓰면 타고 들어가는 부분이 많아져서 기억하기가 힘들다… 최대 2 depth 가 적당한거 같은데. 다른 패턴은 없을까?

2023-06-09 07:00:00

카카오바이크

  • 오늘도 일찍와서 카카오 바이크를 탔는데.. 가격이 변동됐다??? 기본 500원에 분당 120원씩 그전보다 600원이나??? 비싸졌다.

노티피케이션 정리

  • 노티는 InApp 알림과, App 알림이 있다. InApp 알림은 말그대로 앱안에서 알림을 받는 것이고, App 알림은 Android나 Ios 시스템상으로 노티가 오는것이다
  • APP 노티는 firebase FCM으로 작동이 되는데 Token으로 사용자를 분류 할 수 있고 시간별로 cron job으로 설정 할 수도 있다.

2023-06-08 09:41:00

국가의 부름

  • 민방위다. 하지만 코딩은 매일 해야지.

2023-06-07 18:29:00

노티는 어려워

  • 서버 작업하는데 노티가 왜이리 어려운건지 나만 어려운건지 굉장히 복잡해서 미쳐버릴거 같다. 2개의 서버에서 FCM으로 쏘면서 mysql에 저장되는데 각 일반유져, 비즈유져(2가지) 각각에 대한 조건들을 다 설정해 줘야 한다.
  • 양방향으로 쏘는거라 to, from이 x2씩 된다. 좋은 방법이 없을까?

2023-06-06 10:12:00

테니스

  • 운동신경이 없는건 알지만 맨날 느낌이 오다 말다… 이상한 운동이다. 골프도 마찬가지고… 그냥 그렇다…

항해 파트

  • EB(ElasticBeanstalk)셋팅방법을 알려드렸다. 이번에는 윈도우다. 잊어버리기전에 적어 놓자
    1. AMD 데스크탑이었다. 가상화 설정을 CMOS 셋업에서 해줘야한다.
    2. docker desktop 설치해야한다. 에러가난다. wsl을 설치 안했단다. 설치해주자.
    3. 다운이 안된다. DNS를 8.8.8.8 로 변경하니 잘 다운이 되었다.
    4. wsl –update 해주고default를 version2로 설정해준다. 앞서 Ubuntu가 설치가 되어 있어야한다.
    5. 이제 Eb-cli를 설치 한다. ( 이미 설치가 되어 있어서 시간이 많이 줄었다.)
    6. aws 에가서 secret key랑 설정을 해준다. ~/.aws/config 에서 설정해주는걸로 안다.
    7. eb 명령어로 잘 되는지 확인한다.
    8. aws console에가서 eb 환경 설정으로 시작한다.
    9. 중요한건 두가지 ELB(elastic Load Balancer)설정, public 오픈하는 체크박스를 선택해야 한다. 그리고 배포 설정은 docker 로 한다.
    10. 소스 코드로 돌아와서 Dockerfile을 만든다. expose 3000은 잊지 말자.
    11. 대부분 실수 하는부분이 CMD ["node", "app.js"]를 할때 CMD ["npm", "start"] 할때가 있다. 이럴때는 package.json 에 설정완료가 되어 있어야한다.
    12. eb local run 으로 실행이 되는지 확인하다.
    13. eb deploy 를 한다.
  • 내용을 이렇게 적어놨지만 어차피 엄청난 시행착오를 감안해야할 것이다. 나는 처음에 일주일 걸렸던거 같다.
  • 정말 DevOps가 준비가 안되면 Cors, setcookie등 여러 문제가 발생한다.

2023-06-05 06:58:00

오늘은 판교에서 전기자전거 타고 출근완료

  • 일요일을 충분히 쉰덕분에 아침 일찍 일어났다. 지난 주에는 지나가면서 전기자전거를 봤는데 한번도 타보질 않아서 다음에 기회가 되면 타보려고 생각했는데 바로 오늘 시간도 널널하게 판교역 현대백화점에서 카카오바이크를 빌리고 제2판교까지 타고 왔다. 새벽바람이 약간 차게 느껴졌지만 조금 타니까 살짝 땀이 나려는 순간 바람이 식혀줘서 기분이 좋았다.

    가격은 비쌌다. 20분정도 탄거 같은데 2200원

위키를 조금 변경해볼까

  • 맨날 마음만 이렇게 저렇게 해볼까 하는데 막상 안한다. 다른 몇몇 분들은 위키를 예쁘게 커스터마이징 하셨던데 나도 한번 해볼까 싶다. 일단 첫번째 단계인 MD파일을 react에서 읽을 수 있나 확인해보았다. 아래를 참조 하면 된다.

  • [[readMDFile]]{리액트에서 MD파일 읽기}

2023-06-04 09:15:00

나른한 일요일 아침

  • 주말에는 테니스를 치면서 평일에 있던 스트레스를 조절한다. 볼 머신기가 있는 24시간 테니스장에서 치는데 가격은 비싸지만 혼자서 조용히 연습하기가 좋다. 공 하나하나 집중하면서 치다보면 한시간은 그냥 지나간다. 이 후 스벅에서 딸기스무디 한잔을 한다음 이것저것 보면서 코딩도 하고논다.

2023-06-03 16:27:00

항해99 파트타임 오프라임 질문

  • 로컬 서버로 업로드 및 다운로드 질문 -> 이 문제는 서버URL + C 드라이브의 URL을 붙여서 프론트에 보내고 있었다. 당연히 안되는 것이고 get 메소드로 해당 파일에 접근 권한을 연결시켜 줘야했다. 해결완료
  • EB셋팅 방법 -> docker desktop 설치, Dockerfile 생성, 다행이도 eb-cli는 설치가 되어 있었다. 그리고 이번에 EB 콘솔이 업그레이드 되면서 굉장히 셋팅을 세세하게 할 수 있는데. 별거 없다. ELB 설정 해주고, public오픈만 체크해주면 간다한게 사용할 수 있었다. 그리고 해결 완료
  • passport 카카오톡 연결- 이것은 가이드만 해줬다. 결국엔 callback으로 refreshtoken을 받았는데 프론트와 그냥 연결만했지 실질적으로 무엇을 했는지 명확하지 않았다. 그 이후 발급된 refreshToken을 가지고 이제 서버와 비교를 하면서 인증이 되어 있는 상태이면 token(accessToken)을 발행해줘야 하는 것을 알려드렸다.

2023-06-02 08:23:00

DB join & App join

  • 이 질문도 항해파트타임에서 나왔다. 그리고 오늘 아침 카톡방에 주제로 나왔다.
  • DB join은 DB에서 필요한 내용을 미리 join을 해서 처리를 한다음 백엔드로 넘기는 거고, App Join은 통으로 DB에 요청해서 오는 것을 백에서 조인 처리 하는 것이다.
  • 추가 적으로 샤딩(Sharding)이란 기법이 나온다. 대용량의 데이터를 한 테이블로 관리하게 되면 부하기 오기 때문에 각각 테이블로 나눠서 하는것인다. 두가지 방법이 있다. 가로로 나눠서 즉 컬럼을 쪼갠다. 세로로 나눠서 즉 데이터를 나눈다.

2023-06-01 07:26:00

지속되는 문제점 발생

  • 끝가지 마무리를 안한 상태에서 되는것만 확인하고 바로 다음 것으로 넘어가는 습관이 생긴거같다.
  • 데일리 테스크 중점적으로 관리를 하자.. 근데 중간중간 들어오는 오류부분을 고칠때는 가끔 시간이 많이 걸려서 참 애매한거 같다.
  • 그런데 내가 이미 충분하게 잘 준비를 해놨다면 문제가 생기지 않았을 것이다.

항해 기술매니져(?)

  • 사실 1년차도 안되는 짬에서 이런것을 하는게 조금 부끄럽기도 하다. 하지만 가르침으로 인해 나도 많은것을 배울 수 있고 모르는 부분도 다른 사람들의 생각을 알수가 있어서 좋다.

VIM 찾아바꾸기

  • 자꾸 잊어버린다.
  • s -> 줄만 바꾸기 예제 :s/test/test2/g ->
  • %s -> 전체 페이지 다 바꾸기 :%s/test/test2/g
  • 10,20s -> 특정 줄에서 바꾸기 :10,20s/test/test2/g

tmux template 구성하기

  • 맨날 재부팅하거나 세션이 꺼지면 일일이 들어가야하는데 이번기회에 bash shell을 만들었다.
SESSION_NAME="ymyd"

tmux new-session -s $SESSION_NAME -d
tmux send-keys "cd /Users/semyungpark/Documents/dev && yarn run start:dev" C-m

tmux split-window -v
tmux send-keys "cd /Users/semyungpark/Documents/dev" C-m
tmux rename-window -t 1 "ymyd-backend"

tmux new-window -t $SESSION_NAME:2 -n "ymyd-frontend"
tmux send-keys "cd /Users/semyungpark/Documents/dev && nvm use 8 && npm start" C-m
tmux split-window -v 
tmux send-keys "cd /Users/semyungpark/Documents/dev/" C-m

tmux new-window -t $SESSION_NAME:3 -n "ymyd-biz-backend"
tmux send-keys "cd /Users/semyungpark/Documents/dev && yarn run start:dev" C-m
tmux split-window -v
tmux send-keys "cd /Users/semyungpark/Documents/dev/ymyd/" C-m

tmux new-window -t $SESSION_NAME:4 -n "ymyd-frontend"
tmux send-keys "cd /Users/semyungpark/Documents/dev" C-m
tmux split-window -v
tmux send-keys "cd /Users/semyungpark/Documents/dev" C-m

tmux new-window -t $SESSION_NAME:5 -n "ymyd-aio-front"
tmux send-keys "cd /Users/semyungpark/Documents/dev" C-m
tmux split-window -v
tmux send-keys "cd /Users/semyungpark/Documents/dev" C-m

#tmux new-window -t $SESSION_NAME:5 -n "gpt"
#tmux send-keys "cd /Users/semyungpark/Documents/dev" C-m

tmux new-window -t $SESSION_NAME:6 -n "blog"
tmux send-keys "vi" C-m

tmux select-window -t $SESSION_NAME:0
tmux attach-session -t $SESSION_NAME

2023-05-30 07:25:00

타임존에 대한 고찰

  • 지난번에 어이 없는 버그를 발경하게 되었다. 썰을 풀자면…. 기존에는 EC2로 서버가 운영되고 있다가 EB(ElasticBeanstalk)로 변경하면서 내가 서버셋팅을 KST(한국 시간 +9)으로 변경하였다. 그런데… 3개월간 노티가 제대로 안간것이었다 이유인 즉슨 cron job을 utc 기준으로 셋팅을 해놨기때문에 9시간씩 밀렸던것이다.
  • 내가 KST로 셋팅했던 이유는 내가 개발 하는 서비스는 한국 전용이고 진짜 최대 3만명을 넘기지 않는다. 단지 그 이유였다.
  • 그런데 오늘 아침 단톡방에서 mysql시간이 변경되지 않고 이상하게 저장되는 부분을 답변해줬는데 다른분꼐서 경악을 하면서 UTC로 변경하라고 답변만 하고 떠났다. 왜 물어봤지만 대답이 없어 찾아봤다. 왜 UTC로 해야하는지
  1. 다양한 멀티 디바이스에서 버그가 일어날수 있다.
  2. mysql에서 오프셋을 지원하지 않을 수도 있다.(오래된 글이라 확인해봐야함…)
  3. 미국 같은 어떤 주에서는 섬머타임으로 시간이 변경될 수 도 있다.

2023-05-29 10:04:00

아침형 인간

  • 출퇴근 합치면 4시간, 5시에 일어나서 준비하고 밥먹고 5시 40분정도에 집을 나선다. 그리고 나서 대략 7시20분~30분정도에 사무실에 도착한다.
  • 거의 반년이상을 이렇게 하니까 더더욱 아침형 인간이 되벼렸다. 하루가 길고 피곤하기도 하지만 최대한 컨디션을 유지하도록 노력하고 있다. 주말에는 테니스에 열중하고 있다. 적어도 아침에 7시에는 나와서 2시간정도 연습을 하고 레슨도 받고 동호회도 나간다. 그래도 하루에 절반도 안지나가서 카페에 가서 컴퓨터를 켜서 이런저런 코딩도 끄적여 보고 졸다가 내가 좋아하는 딸기스무디도 먹는다.

    뭐 만족하고 있다.

2023-05-28 22:18:00

Nestia 사용해보자

  • 알고는 있었는데 굉장히 유용한거 같다.
  • 한줄로 정리하면 NestJs에서 Dto class를 사용하지 않고 interface를 사용하는데 그 상태를 그대로 배포를 한다음 프론트에서 라이브러리를 받아서 Api를 사용하는 것이다.
  • 한줄로 하긴 긴거 같지만 결국엔 Type이변경이 되어도 프론트에서는 바로 바로 에러가 발생해서 변경할 수 있도록 하는거 같다.
  • 일단 써봐야겠다.

2023-05-28 09:09:00

밀려있던 일기를 조금씩 써본다.

  • 하루에 하나씩만 적자.. 너무 밀렸다.. ㅠㅠ
  • 시간 순서는 일단 기억이 안나니까 노션을 확인하면서 체크를 하면서 정리해야겠다.
    • 쿠키 설정이 나를 미치게 한다. 다시한번 정리해야 잊어버리지 않을거 같다.
    • 두번째 프로젝트를 진행하고 있다.
    • 항해 플러스를 시작하게 되었다. (대용량 처리 및 TDD)
    • EC2 -> Docker EB(ElasticBeanstalk) 마이그레이션 완료
    • DeadLock 문제 해결
    • Isolation Level에 대해서 알게됨 solation level변경
      • Repeatable-read → read-commited
      • 1차적으로 해결은 했다. 하지만 추후에도 DeadLock 에러가 발생해서 Procedure 구문들을 없앴다.(내가 하려했지만 시간이 없었다….)
    • Index 설정을 배워서 굉장한 퍼포먼스 성능을 이끌었다.

2023-01-21 22:39:11

벌써 2023년….

  • 해야될게 너무 많은데…

2023-01-12 13:00:00

DeadLock과 알수없는 트랙픽 해결