fake it til you make it 과연 ? 이라고 생각한다. 모두가 자신의 성장곡선을 정확히 모른다. 다 추정을 하는 것 뿐이다. 그래서 난 확정된 단어를 주고 싶지 않다.
마치 내가 할 수 있는 것 처럼 개발자로서 가장 중요한 마음가짐 피해야 할 마음가짐이지 않을까 싶다. 경험을 통해서 말해야지…
몇몇 분들은 30만 유저를 위한 서버 스케일링은, 그저 aws에서 버튼 몇개만 누르면 되는 것 아니냐고 햇따. 그것은 맞기도 하고 틀리기도 하다.
예를 들어 멀티스레드, 멀티 프로세스가 전혀 쓰이지 않으면 문제가 생기지 않을 수도 있다. 그러나 그 상황이면 문제가 생길 수 있다. master-slave 로 디비를 만들 때 서버에서 insert부분은 master에게만 보내고, read부분은 모두가 할 수 있게 한다.
병목이 많이 생기는 부분이 생기면 코어를 올릴 것이다. 그 안에서 python같은 경우 멀티코어 환경에서 멀티 프로세싱이 조금 더 좋은 방법이다. 그러나 멀티 스레딩이 좋을 때도 있다. 이 모든 것은 꼼꼼히 생각을 많이하고 행동해야한다. js같은 경우 꼼짝없이(?) 싱글스레드 이기 때문에 멀티 프로세싱을 봐야한다고 볼 수도 있따. 그러나 웹 워커가 있다. 이것을 사용할 때와 아닌 때에 따라 또 모든 셋팅이 달라진다.
os에 대한 생각도 해야하고 네트워크도 생각해야 하고 그리고 쓰는 언어도 생각해야하고, 쓰는 프레임워크 역시 생각해야 되며 여러방면을 다 생각해봐야한다.
당연히 어려운 일이다. 그렇지만 어려운 일을 해냈을 때 나는 재미를 느꼈다. 팀원 들과 함께 토론을 하면서도 즐거움을 느꼈고, 같이 안전하게 서버를 올렸을 때 기쁨은 컸다.
같이 사용자들에게 욕을 먹었을 때도 서로 위로해주며 동료애를 갖었다. 극하고 공격적인 상황이지만 그렇기에 더 유대를 느끼고 재미를 느꼈다.
그렇다고 devops가 되고싶은 것은 아니다. devops와 협업을 하는 서버개발자 정도가 되고 싶다. 그러기 위해서 지금은 spring에 집중을 하는 것이 옳다고 생각된다. spring을 제대로 이해도 못한 채로 어떻게 서버를 스케일링 할 것인가?
인정을 안하려고 했찌만 이미 코딩은 나의 취미중 하나가 되었다.(코딩만 취미는 아니지만) 이 모든 것을 받아드려야 할 때가 왔다.
I got this. I truely fine.