이번주부터는 팀빌딩 후 바로 프로젝트 기획단계부터 시작한다.
이번주는 특히 병렬성과 동시성에 대해서 공부했다. CPU를 쉼없이 최대 효율로 돌리기 위한 방법으로 멀티쓰레드 환경에서 반드시 필요하다.
우선 동시성은 다음과 같다
병렬성
아래 그림을 보면 쉽게 이해할 수 있다. 동시성의 경우 실제로는 하나의 쓰레드만 실행되는 것이지만 겉으로 보이기에는 여러 쓰레드가 실행되는 것처럼 보인다. 예를 들어 시간이 많이 걸리는 I/O동안 다른 쓰레드로 context switch해서 다른 쓰레드가 실행된다.
병렬성의 경우 여러 CPU가 여러 쓰레드를 실제로 동시에 실행시키는 것이다. 해당 개념의 차이를 반드시 기억해 면접에 대비해야겠다.
모두가 자신의 주제를 발표하고나서 원하는 주제를 진행하는 프로젝트 팀에 참여했다. 작년에 비대면 크리스마스로 엄청 인기가 많았던 내 트리를 꾸며줘와 같이 한달정도 핫하게 진행할 수 있는 어드벤트 캘린더 프로젝트를 진행하게 되었다. 우리 프로젝트도 엄청 인기 많았으면!!! 대용량 트래픽을 꼭 다뤄보고싶다!!
그동안 들었던 기획교육을 바탕으로 IA와 유스케이스 클래스다이어그램 화면구상, API 문서까지 만들었고 ERD도 반정도 완료했다. 처음으로 기획을 완전 탄탄히하고 들어가는 프로젝트라 매우 힘들었다. 이번에는 개발단계에서 다시 기획단계로 돌아오지 않도록 엄청 열심히 해야겠다. ERD 짜는게 역시 힘들었다. 데이터 모델링 쪽은 한번도 교육받아본 적이 없고 단순히 프로젝트 참여하면서 배웠던지라...... 이 부분은 반드시 따로 공부해야겠다.
이번주는 사실 프로젝트 때문에 너무 정신이 없어서 다른 것들을 많이 하지 못했다. 다음주부터는 시간을 나누어서 체계적으로 공부해야겠다. 알고리즘 적어도 하루에 한문제 어려운거는 꾸준히 풀어야겠다.
——————————————————————————