1. 문제 (과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제)
동시성 문제에 대해서 적용해본 적도 없고, 동시성을 하기 위해서 어떤 기술들이 들어가고 기능을 사용해야하는 지 아예 전무해서 문제였다.
2. 시도
동시성을 공부하기 앞서서, 쓰레드가 같은 자원에 접근하는 것이라 배워서 그렇다면 접근과 관련이 있지 않을 까 싶어서 동기/비동기, block/Non-block에 대해서 공부했다.
3. 해결
동시성 문제가 무엇인지 찾아보고, 코드 베이스 단계에서 어떤 방식을 사용할 수 있는 지 찾아봤다.
4. 알게된 것
ReentrantLock에 대해서 알게 되었다.
ReentrantLock가 synchronized 기능을 더 추가해서 제공해준다고 블로그를 봤었는 데, 코치님께서 더 추가적으로 기능을 하는 것이 어떻게 들으면 더 좋은 기능을 제공해줘서 좋다고 들릴 수 있어서 조심스럽다고 하셨다.
코드 상에서 완벽한 기능을 제공해 주는 것은 없다는 것을 알게 되었다. 제공해 주는 기능에는 장단점이 있고, 그것을 판별하고 기능을 사용하는 것은 개발자이기 때문에 더욱 많이 공부해서 그런 시각을 갖는 개발자가 되어야겠다고 생각했다.
Keep : 현재 만족하고 계속 유지할 부분
개념적으로 어려워도, 일단 적용해 본 것에 가장 만족스러웠다.
아직 적응하는 단계라고 생각해서 제출하기 위한 노력을 한 것만으로도 만족했다.
Problem : 개선이 필요하다고 생각하는 문제점
P1. 더 깊고 많은 생각을 하지 않은 것 같다.
P2. Git의 사용이 미숙했고 코드 리뷰를 많은 사람과 해보지 못한 점
Try : 문제점을 해결하기 위해 시도해야 할 것
P1. 성능 차이, 어디에다 사용하는 것이 적절한지의 여부 등등을 생각하고 찾아봐야 했어야 했는 데, 이런 부분이 미숙한 것 같고 Git 관리와 README.md를 어떻게 작성해야 더 직관적인 지의 생각을 더 해야겠다.
P2. 코드를 공개 한다는 것이 부끄럽지만, 오프라인 공간에 있는 분들께 코드 리뷰 해달라고 요청해야겠다.
'스터디' 카테고리의 다른 글
| [항해플러스] 콘서트 예약 시스템 (6) | 2024.10.24 |
|---|---|
| [항해플러스] 5주차 WIL (2) | 2024.10.19 |
| [항해플러스] 4주차 WIL (4) | 2024.10.12 |
| [항해플러스]: 챕터 1을 마치고 (솔직 후기를 곁들인) (1) | 2024.10.05 |