개요
Work, 회사
사내 디자이너 또는 기획자를 대상으로 개발에 관련된 OJT 자료를 준비 중이다. 처음에는 개발 용어에 관련된 설명을 해주는 부분을 담당했었는데 지금은 그런 용어들이 실제 개발에 들어가게 되면 어떤 의미를 가지게 되는지 그리고 협업을 위해 어떻게 일하면 되는지에 대한 관점으로 풀어내고자 하는 방향으로 가고 있다. OJT가 부서별 교육의 의미인 것 같은데 내가 하는 부분은 개발팀을 대상으로 하는 게 아니기 때문에 OJT라고 보긴 어렵고 그냥 개발자와의 협업을 위한 가이드 정도라고 생각하는 게 어떨지 싶다.
1:N 관계 하드 코딩하기, 처음 이 기능을 만들 당시만 해도 간단히 그룹이라는 개념이 존재하고 그룹에 속하는 멤버라는 개념이 존재했다. 그룹 멤버는 특정 정보와의 연결성을 고려하지 않고 개발했기 때문에 1:N을 중심으로 설계해서 개발을 진행했는데 개발을 해놓고 보니 사용성 측면에서 많이 부족해 보였다. 그래서 1:N 관계를 거의 하드 코딩 방식으로 개발해봤는데 의외로 사용성은 좋았으나 코드 구조가 만족스럽지 못했다. 크로스 테이블을 사용해서 풀어냈지만 크로스 테이블 중심으로 다시 이 기능 저 기능이 추가되다 보니 지저분해지는 감이 없지 않아 생겼다. 크로스 테이블을 중심으로 정보를 가져오려다 보니 left join 이 12개나 붙는 현상도 존재했다. 결국 어떤 식으로 개발하나 결국 사용성이 중요한 것 같은데 또 개발자 마인드셋에 의하면 돌아가는 기능은 당연한 거기 때문에 조금 더 데이터 모델이나 코드를 구조를 잘 잡는 연습이 필요한 부분이다. 1:N 관계를 하드 코딩하다보니 SQLAlchemy의 선언적 모델(declarative model)의 attribute을 Runtime 시점에 얻어야 했다. 선언적 모델을 이용해서 ORM에 값을 넘길 때 속성에 접근해서 값을 셋팅하는 inspector와 python setattr을 이용해서 runtime 시점에 값을 할당하는 방법이 존재한다라는 사실을 알 수 있었다.
외부 API를 호출할 때마다 외부 API가 성공적으로 요청했는지, 성공적으로 요청했다면 어떤 정보를 알려줄 건지를 Slack에 알려주는 기능을 개발했는데 이 과정에서 AWS Lambda를 이용하게 됐다. Lambda는 이 기능을 개발하면서 처음 사용하게 된 건데 외부 API를 호출하기 위한 EIP 세팅과 Lambda의 사용자 정의 Python Setup 그리고 EventBridge을 통한 cron 설정 등등 고려할게 많았다. 개발하고 나서 출근하면 Slack 알림 확인하고 퇴근하고서도 제대로 돌아가나를 보고 있는데 아직까지는 잘 돌아가는 것 같아 다행인 듯싶다. 우려됐던 건 외부 API에서 받아오는 정보와 DB에 저장한 정보와의 비교를 위해 Inmemory에 DB의 특정 테이블의 정보를 들고 있는데 이 데이터가 하루마다 엄청 늘어나기 때문에 어느 순간 누락되는 부분이 존재하지 않을까 싶었는데 AWS-Lambda 구성에 메모리를 설정할 수 있는 기능이 있어서 커버가 가능한 부분이었다.
Study, 공부
Streamlit, Python에서 Demo Web Application을 사용할 때 만드는 프레임워크이다. 잘 사용하면 꽤나 있어 보이는 페이지를 제작할 수 있을 것 같아 공부 좀 해보려고 했는데 어느 순간 미뤄두었다.
e-koreatech, 강의 시청 중아 침마다 7시 30~40분 정도 일어나서 40~50분 정도 e-koreatech의 강의를 시청하고 있는 중이다. AWS와 Wireshark 관련 강의를 보고 있는데 막연하게 알고 있는 걸 다시 정리할 수 있는 시간을 만들고 있다.
Clean Code, 최근 다시 Clean Code를 읽는 중이다. 아직 절반도 못 읽긴 했는데 읽고 있으면 굉장히 세심한 부분까지 다룬다는 사실에 감탄 중이다. 한 번은 전체적으로 싹 읽어보고 다시 정리하는 과정에서 체득해야 될 듯싶다.
Objects: 코드로 이해하는 객체지향, 드디어 이 책을 한 번 눈으로 다 읽었다. 내용은 따로 정리하지 않고 쭉 읽었는데 이제 다시 읽어보면서 내용을 습득해봐야겠다.
DDD: 도메인 주도 설계 철저 입문, 부분 부분 여러 번 읽었던 책이라 듬성듬성 기억나는 부분이 존재한다. 이 책도 1장부터 다시 정리해가는 중인데 갑자기 뭔 소리지 하는 생각이 드는 내용이 존재한다. DDD를 통해 코드의 모양과 구조를 잡아보려고 하는데 어떻게 연습해봐야 하는지도 난감한 부분이 없지 않아 존재한다.
파이썬답게 코딩하기, 파이썬 기본서를 다시 읽어보고자 이 책을 정독 중이다. 전체적으로 내용은 이해가 잘되는데 암기를 하지 않은 탓인지 여러 번 보게 만드는 묘한 매력이 존재하는 책이다.
지금 부족한 부분을 채워 넣고자 Head First 디자인 패턴, SQL 레벨업 두 권을 구매했다. Head First 디자인 패턴은 아직 펼쳐보진 않았고 SQL 레벨업부터 보는 중인데 뭔가 알고 싶었던 부분을 짚어주는 책이라서 잘 구매한 것 같다.
Life, 인생
아침마다 영양제를 복용 중이다. Nature Made와 블랙 마카라는 영양제인데 먹게 된 지 3주 정도 지난 것 같다. 확실히 복용 전이랑 복용 후랑 아침에 일어나는 모습이 다르다는 게 느껴진다. 이전보다 무언가에 집중이 잘 되는 느낌이 들고 요새 운동도 병행하고 있어서 체력이 조금씩 늘어나는 중인 게 체감된다.
요새 이것저것 보느라 1시간 정도 일찍 일어나는 습관을 들이고 있는데 시간을 활용하는 부분에서 부족한 것인지 이 시간마저도 부족한 듯싶다.
일지를 주중 일지와 주말 일지로 분리해서 작성하고 있다. 5월에는 그때그때 페이지를 생성해서 작성했는데 이번에는 한 페이지에서 일상, 업무를 다 정리하고 있으니 확실히 요약해서 보는데 도움이 되고 있다.
6월에는 집에서 사용하는 장비를 Asus Rog에서 Mac mini로 교체했다. Asus Rog를 켜놓고 있으면 자꾸 게임을 하게 되니 아예 Mac으로 갈아타버렸는데 게임만 안 할 뿐이지 그 시간만큼 유튜브를 보고 있는 나를 발견하게 되었다. 이 중 하나 새로 알게 된 사실이 있는데 Display Link Manager를 통해 다중 모니터 환경을 구성할 경우 쿠팡 플레이에서 영상 송출이 안된다는 점인데 DRM 때문에 그렇다고 한다.
Summary
6월은 열심히 살려고 노력하는 중이었다. 미뤄뒀던 책도 읽고 정리도해가면서 보내고 아침 시간을 만들고 그 시간에 뭐라도 하면서 보내고 있다는 것이 보람찬 한 달이지 않았나 싶다.
5월 회고의 Summary에 체력을 많이 늘려야겠다고 적어놨는데 이 부분이 조금 향상된 것 같아 제대로 진행되고 있는 것처럼 보인다.
7월 목표는 어느 정도 공부를 해뒀던 것들에 대해 실제 적용해보는 것을 목표로 잡아보고자 한다.
'Life > 2022' 카테고리의 다른 글
[22년 9월] 뭔가 바빴는데 실속은 없었던 것 같다. (0) | 2022.09.30 |
---|---|
[22년 8월] ECR, ECS, 독서 (0) | 2022.08.31 |
[22년 7월] AWS-IoT-Core, 퍼블리, Head First Design Pattern (0) | 2022.07.31 |
[22년 5월] 게으르게 보냈다. (0) | 2022.05.31 |
[22년 4월] 나름대로 일지를 작성하기 시작했다. (0) | 2022.04.30 |