자발적 야근이 늘어나고있다.
AWS & EKS ...등으로 이루어진 MSA 환경에서 원칙을 지키면서도 자원사용을 예측 가능하게 하여 수평 분산 설계를 가능하게끔 Reactive 방식으로 소스를 작성하고 있다.
프로젝트 진행에 있어 k8s & WebFlux & ProjectReactor & SpringDataR2dbc & ReactiveSecurity 작성 사항에 미숙한 점이 많고, 스스로 부족하다고 느끼는 점도 많아 그러게 된다.
골자부터 짜내려가기위해서는 , 설계방향을 어떻게 잡느냐가 중요할 수 밖에 없다.
특히 강한 타입 정의를 가지고 있으며, 정적 언어이고 , 컴파일 언어인 Java 는 더욱 더 그러하다.
프레임워크 내부 인터페이스를 통한 상속구조를 보아도 알 수가 있으며, 이는 상속구조를 가진 정적언어의 초반 골자 설계가 얼마나 중요한지를 거듭하여 내게 말해주는 것만 같다. 이후에 일어날 변경 전파를 고려해도, 그냥 넘어갈 수가 없다.
원하는 설계 방향이 있으므로, 고수준의 추상화를 가진 모듈을 사용함에 있어 코드를 단순히 작성하는 것보다 프로젝트가 지향하는 방향과 필요성에 따라 소스를 설계하는 것이 너무나도 중요함을 느낀다.
스스로 생각하고 판단하는 고민과 느끼는 부족함과 더불어, 높은 추상화 정도를 가진 프레임워크들을 사용함에 있어 원하는 설계방향에 맞게 어떻게 모듈화를 하고 재사용하고, 필요한 유틸은 무엇인지 판단하고 고민하게끔하는 순간들의 연속이다.
단순히 주먹구구식으로 짜는 것은 충분히 가능하나, 초반 골자를 탄탄하게 하고, 테스트코드로 판단하고 리펙토링하는 green ~ refactor 의 테스트 주도적 방식 사이클은 스스로에게 그런 어리석은 판단을 하지 않게끔 매번 각성시켜준다.
관계 매핑방식의 추상화에서 설계 방향대로 매핑하는 방식, 고려사항, 무결성, 데이터베이스 설계, 파이프라인설계, 분산환경과 배포환경, 즉 EKS 에서 고려할 점 , 그리고 무엇보다도 "왜" 이렇게 설계를 해야하는지에 대한 "목적의식"
간과해서는 안되는 부분이고, 이 것을 위해 이번 주는 거의 R2dbc 에 대한 이해와 질의와 커넥션 & 실질적 App 상의 질의시 나타나는 퍼포먼스 차이를 두고 릴레이션을 엮어 1 백만 개의 레코드를 가지고 실험을 해보고 했다.
무엇 보다도 하는 동안 "스스로 왜 이것을 해야하는가?" 에 대한 목적의식과 지향점을 놓치지 않기위해 분투하고 있다.
결국 한마디로 일에 몰두해있는 상태이다.
잘나고 잘보이고 싶어서가 아니라, [그런 것들은 신경쓰지 않아서 문제긴하지만] 스스로 할 수 있는 만큼, 노력한 만큼 책임감을 느끼고 있어서 그렇다.
스스로 얼마나 부족한지 알아서 그러는 것 뿐이고.. 혼자서는 절대 불가능한 일인 것을 알기 때문에, 매니저님들과 같이 상의하고 고려하고 판단하며 정의 내리고 있다.
언제든지 바꿀 여지가 있고, 유동적이고 유연해야한다고 생각한다.
욕심만치 완벽한 것도 사실 없다. 그걸 알아서 중요한 부분은 상의해서 파고들고, 아닌 부분에서는 멈추고 다음 섹션으로 넘어간다.
몸은 조금 고단한데, 마음은 행복하다.
스스로 느끼기에 큰 책임을 주시고, 관리할 수 있고, 실무에 직접 부딪치며 개선점을 생각하게 해주신 대표님께 감사할 따름이다.
또한, 편견 없이 고민 점에 대해 오랜시간을 같이 고민해주시고 상의해주시고 설명해주시는 점에 감사하고 그 모습을 보고 듣다보면 오랫동안 일을 해오셨음에도 열정을 보는 듯해 존경스럽기만하다.
지금 단언할 수 있는 것은, 초심보다 정말 좋은 환경에서 일하고 있다는 것 같다.
정말 고마운 일이고 마음인 것을 느껴서, 최선을 다하고 싶어만 진다.
'생각모음' 카테고리의 다른 글
2021.05.12 (0) | 2021.05.12 |
---|---|
2021.03.12 (0) | 2021.03.12 |
2021.03.02 (0) | 2021.03.03 |
2021.02.24 (0) | 2021.02.24 |
2021.02.21 (0) | 2021.02.22 |