본문 바로가기

Life/2022

[22년 11월] 삽질만이 인생이다.

728x90
반응형

Work

11월 개발 업무는 RPC(RPyC), Django Template 적용, 사내 라이브러리 패키징 시도, EC2-Ubuntu Server에 VNC로 원격 접속 환경 구성 이런 키워드로 정리를 해보고자 한다.

RPC, Remote Procedure Call

  • Window에서만 install이 가능한 Python Library가 있었는데 문제는 Window에 Flask나 Django를 올리기 어렵다는 점이었다. 개발 모드로 실행되는 서버일 경우 상관없지만 uwsgi나 gunicon이 윈도 환경에서 사용해먹기 불가능해 Linux와 Window 간 데이터를 주고받기 위한 특정 매개체가 필요했다.
  • Window에서 install이 가능한 Python Library를 누군가 linux 환경에서 사용할 수 있게 만들어 둔 게 있어서 내려받은 다음 내부 구현을 까 봤는데 rpyc라는 Library를 사용하는 걸 확인할 수 있었다.
  • 그래서 이 rpyc가 뭔가 하고 봤더니 RPC를 Python에서 사용할 수 있게 구현해 놓은 Library 였다. 옳거니 하고 바로 적용했다.
  • 그런데 이 과정에서 상당히 고민한 부분이 존재하는데 이건 따로 정리해서 따로 포스팅할 계획이다.

Django Template 적용

  • 회사에서는 Django를 주로 API 서버 용도로 사용하기 때문에 이 용도에 맞게끔 구현된 라이브러리가 존재한다. 그런데 이 사내 라이브러리를 가지고 Django Template에서 사용할 경우 어떻게 써먹어볼까 하면서 삽질하는 중이다.
  • Html은 기본 태그만 아는 정도고 CSS는 거의 전무하며 JavaScript는 그나마 검색해서 무언가 만들어낼 수 있는 수준이어서 Django Template에 적용할 Front 부분을 어떻게 구현하지라는 고민이 들었는데, 적당히 BootStrap5를 이용해서 무언가 “있어 보이게” 만드는 중이다.
  • 주로 BootStrap5에서 배포한 Example을 내려받아서 코드 구조를 분석해 Django Template에 맞게 구조를 재분배해서 사용하는데 이렇게 해도 앞서 언급했듯 “있어 보이는” 결과가 나오니 재미나 구석이 뭔지 체감하게 된다.

사내 라이브러리 패키징 시도

  • 앞서 사내 라이브러리를 이용해 Django Template에 써먹어 보고 있다고 언급했는데 이 사내 라이브러리 패키징을 어떻게 해볼까 고민하는 중이다.
  • 다른 프로젝트의 예시를 보니 사내에서만 사용하는 라이브러리는 패키징이 잘 되어 있어 그 부분만 따로 떼어서 GitHub Repository에 올려둔 다음 여러 프로젝트에서 그걸 받아서 사용하는 형태라고 이해했는데 이 콘셉트를 적용해보면 어떨까 싶어 사용하기 이전에 문제가 뭘까 고민해보는 중이다.
  • 문제는 각 프로젝트마다 사내 라이브러리를 사용하는 형태가 조금씩 다르다는 것인데 이는 사내 라이브러리가 Versioning이나 일관된 형태의 구조가 아니라는 것을 의미하기 때문에 어느 것을 기준으로 잡아야 할지가 난감하다.

EC2-Ubuntu Server VNC 환경 구성

  • EC2-Ubuntu Server에 TightVNC를 통해 원격으로 접속하는 환경을 구성해봤었는데 문제는 그렇게 설치한 서버에 RDP를 이용해 접근하면 블랙 스크린이 나오는 화면만 보고 있어야 한다는 점인데 xrdp.ini 부분을 건드리면 해결할 수 있어 나름 성취감을 맛봤었다.
  • 사실 이 문제는 예전에도 한 번 똑같이 구성해본 적이 있었는데 그때도 증상은 같았다. 이 때는 그걸 어떻게 해결할지 몰라 그냥 안되나 보네 하고 말았는데 지금은 무엇 때문에 안될까에 집중하다 보면 아이디어를 떠올리게 되고 해결 방법으로 이어지니 실력 좀 쌓였는 걸? 하면서 자존감이 오르는 기분이다.

 

Study

  • 11월에 주로 개인적으로 공부한 영역은 Redis와 SQL 레벨업, 웹 API 디자인이란 책을 읽은 것이다.

Redis

  • 회사에서 Celery를 사용해볼 기회가 있어서 한 번 사용해봤더니 자연스레 캐싱에 관심을 두게 되었다. 캐싱이란 개념을 어렴풋이 알고 있고 그걸 사용하기 위해서 무엇을 찾아보면 되겠지 정도의 접근법이었는데 조금 더 깊이 공부해보고 싶어서 Redis를 공부하기 시작했다.
  • 유튜브에 나온 Redis 관련된 영상을 봤는데 캐싱은 처리를 수행하는 것보다 그런 처리를 수행하는 부분들을 어떻게 배치해서 사용 해먹을지가 주로 중요해 보이는데 아직 Redis 초기 단계라 갈 길이 멀다.

SQL 레벨업

  • 요새 관점을 달리 한 부분이 바로 DataBase이다. 시스템의 레이턴시를 올리기 위해 무엇부터 공부해야 될지를 나름 고민해봤는데 아무래도 DataBase를 깊게 공부해야 될 듯싶다. 단순히 SQL을 잘 작성하는 것보다 DataBase가 그런 일들을 수행할 때 어디서 성능 저하가 일어날 수 있다는 부분적인 요소를 더 파보려고 한다.

웹 API 디자인

  • 이 책은 매일 아침에 일어나서 10~15분씩 꾸준히 읽고 있는데 읽다 보면 API를 만드는 것에 새로운 시야를 트이게 해 준다는 느낌을 받는다. 나름 스스로에게 기대해보는 건 이 책을 통해 API를 디자인하는 레벨이 단순히 데이터 조회, 반환이 아니라 그런 것을 구성하는 전략적인 부분들을 다듬어서 적용해보고자 한다.

 

Life

11월은 많이 삽질한 느낌이 든다. 지금 당장 필요하지 않기 때문에 다음에 해야지 했던 것들을 슬슬 맞닥뜨리고 있다. 그리고 또 하나는 이렇게 공부하다 보니 나는 어떤 개발자를 해야 되지라는 고민도 함께 생기기 시작했다. 백엔드 개발자냐 프런트 개발자냐의 고민보다는 무엇을 잘하는 개발자이냐 무엇에 특화된 개발자이냐를 고민하는 단계이다. 즉 대략적인 프로페셔널함의 느낌보다는 1차 전직 2차 전직과 같은 단계별 스텝을 둬서 어떤 역량을 전문적으로 개발할 것인지를 결정하고 그것에 맞게 공부해야 되는 거 아닐까 싶다.

 

Summary

11월은 이것저것 많이 하긴 했지만 대체적으로 그런 내용들에 대한 노트 정리가 부족해 아쉬움이 남는다. 무엇보다도 생각과 고민이 많아져서 살아가는 난이도가 높아져가는 시기인 듯싶다.

 

Next

12월의 회고는 22년 회고를 작성하려고 한다. 22년에는 무슨 사건이 있었는지 무엇을 새롭게 알게 됐는지 아직 블로그에 게시 못한 썰들도 여기에 들어갈 것이다.

728x90
반응형