어쩌다보니 팀원이 전부 남자다.. 어쩌다 보니... 왜... 이렇게 된거지...음... 암튼 생각보다 잘 진행이 되고 있는거 같다. 인프라 설계도도 나름 잘 만들었다고 생각하는데 잘모르겠다.일단 설계도는 다음과 같다.부족한 부분이 많을 수도 있곘지만 이 정도면 나쁘지는 않는느낌이다.아직 피드백을 받지는 않았지만 딱히 크게 지적할 부분은 없을거 같다.다음은 ERD다.테이블이 무려 21개가 나왔다. 내가 담당한 도메인이 6개나 나오긴 했지만.. 그걸 뺀다고 해도 15개... 생각보다 많이 나온거 같다.ERD는 크기가 커서 작성하지는 않았지만.. 뭐.ㅎㅎ 이제 바로 개발을 시작할거 같은데. 빠르게 진행하자.!!
1차,2차가 끝나고 3차 프로젝트가 시작이 되었다.어떤 프로젝트를 하면 대용량 트래픽을 경험할 수 있을까?이건 끼워맞추기라고 생각한다.처음엔 스트리밍 사이트를 만들고 싶다고 말씀드렸고이거에 대해 튜터님께 질문을 드렸더니 매력적이고 괜찮다고 하셨는데 이 기술을 사용하는 곳이 있는지도 생각을 해보라고 하셨다. 물론 서사같은것도 만들어서 질문을 드렸다.암튼 곰곰히 생각해보니까 이건 특정 도메인에만 국한되었기 때문에 특별하게 매력적으로 보이지는 않았다.그래서 나온것이 대규모 IT 모임 사이트다. 우리가 벤치마킹할 사이트는 '멋쟁이 사자들'이라는 대학생 동아리로많은 인원을 수용?하는 IT서비스다. 근데 세션관리같은 경우 디스코드나 다른 플랫폼을 통해 진행이 되는걸로 알고 있다.만약, 이를 제공한다면 좋지 않을까 ..
내가 저번에 재고 시스템에 동시성 적용하기 (1) 관련해서 글을 작성적이 있었다.그때는 재고를 하나만 수정하는 API이기 때문에 데드락이 발생할 가능성은 적었다.하지만 최근에 API를 추가하게 되었다. 고것은 { "stocks": [ { "id": "1b332d6b-fa61-44fa-99b4-3f1c47bbced8", "productQuantity": -5 } , { "id": "8f889c3d-a233-4716-b94a-b854d6265ea8", "productQuantity": 10 } , { "id": "c01cccdb-78a9-4328-ba52-70b3edb2f40d", "productQuantity": -2 ..
프로젝트가 끝나고 리펙토링을 진행하였다. 그리고 프로젝트 고도화를 위해 어떤것을 할 수 있을지 고민해봤다.일단 내가 맡은 도메인으로 진행을 하는것이 좋을거 같다는 생각이 들었다. 여러가지가 있었지만 그중에서 내가 선택한것은 제고 쪽이다. 현재 동시성을 제어하기 위해 비관적락을 사용해놓은 상태다.비관적락에 대해 복습해보자면 비관적락은 락을 앞단에서 거는거라 생각하면 좋다. 그러니까 DB에서 조회되기전에 락을 걸어서 동시성을 제어하는 방법이라고 생각하면 된다. 그렇다면 왜 비관적락인가를 생각해보면 내가 객체라고 말한적이 있었는데 잘못 말했구 DB다.그러니까 DB는 좀 자기주장이 좀 강한 친구라고 생각하면 이해하기 쉽다. 그리고 비관적락은 외부에서 받은거라 생각하면 된다. 즉, 자기주장이 강하니까 외부에서 처..
클린코드.. 이거만큼 학습하긴 어려운건 없을거 같다. 쉬우면서 어렵고 알거 같으면서도 막상하려고 하면 쉽지 않는 뭐 그런느낌이다.내가 생각할때, 고도화보다 더 중요하다고 생각한다. 왜냐하면 코드를 깨끗이 작성하게 되면 추후 확장성도 증가 할 수 있기 때문이다.코드가 과도하게 비대해지면 결국엔 나중에 수정하려고 하면 어떤걸 수정을 해야 하는지 잘 모르는 경우도 많다고 생각한다.그렇다고 해서 이게 습관화가 되어 있지 않기 때문에 나중에 해야지 하면 결국엔 또 안하게 될거 같다.클린코드 책을 보면 다음과 같은 제안을 하였다. 1. 생성자를 중복 정의할 때는 정적 팩토리 메서드를 사용한다.2. 함수는 작게 만들어라!3. 함수는 한 가지만 해라!4.함수 인수 - 플래그 인수는 추하다.5.반복하지 마라! a.k.a..