- 상대의 머릿속을 그리는 일이 중요하다. - 회사 내에서 협상의 목표는 보다 가치있는 존재가 되는 것. - 내 가치가 높아질수록 더 높은자리로 올라갈 수 있고, 해고의 위험이 줄어들기 때문. - 이력서를 넣을때도 상대방의 머릿속을 그리고 점진적으로 다가갈것. - 목표달성을 위한 정보를 수집할것. - 표준을 활용할것. 표준뒤에 있는 핵심을 파악할 것. - 상상력을 발휘해서 그들 뒤에 있는 욕구를 파악하고 충족시킬 것 - 제 3자를 활용할 것,
8 퍼센트는 핀테크 기업이다. 핀테크 기업에게 제일 중요한 것은 신뢰다. 사고는 곧바로 고객의 손실로 이어지거나 적어도 고객의 신뢰 저하로 이어진다. 때문에 견고하고 사고없는 프로그래밍이 매우 중요하다. 이에 따라서 계좌의 잔액과 거래내역의 잔액 무결성이라던지, 1억건이 넘어가더라도 손실이 없고, 빠르게 찾을 수 있는 부분에 대한 고려가 필요하다.
극단적으로 보수적으로 잡도록 할것이다.
1. drf 도입을 통해 view 단 코드 정리 --> 했음.
2. 테스트 코드 작성 -->12.11 하는 중
3. 거래내역 1억건에 대한 풍부한 고려 및 잔액 무결성에 대한 고려를 할 것. -->했음.
과제를 하면서 이러한 생각을 차분하게 했다면 좋았겠지만, 시간에 쫓기고 팀원들과 함께하느라 못했으므로,, 리팩토링하면서도 해야겠다는 생각에 정리한다.
1. 문제의 해석
1) 왜 이러한 문제를 줬을까?
8 퍼센트는 핀테크 기업이다. 핀테크 기업에게 제일 중요한 것은 신뢰다. 사고는 곧바로 고객의 손실로 이어지거나 적어도 고객의 신뢰 저하로 이어진다. 때문에 견고하고 사고없는 프로그래밍이 매우 중요하다. 이에 따라서 계좌의 잔액과 거래내역의 잔액 무결성이라던지, 1억건이 넘어가더라도 손실이 없고, 빠르게 찾을 수 있는 부분에 대한 고려가 필요하다.
극단적으로 보수적으로 잡도록 할것이다.
2. 문제의 해결
1) 잔액 무결성
트랜잭션의 무결성을 유지하도록 설계가 되어야한다.
이러기 위해서는 원자성, 일관성, 고립성, 지속성이 유지가 되어야한다.
(1) 원자성이 보장되기 위해, atomic을 수행한다.
기본적으로 장고는 auto_commit이다.
이에 따라 해당 계좌에 가서, 잔액을 바꾸고 거래내역을 등록하는 이 2가지 행위가 한번에 이루어져야하지만, 각각 이루어질 우려가 있으므로, **with transaction.atomic()**을 넣어줘야 한다.
(2) 일관성 같은 경우는 테이블이 생성될 때 명시되므로, 크게 신경 쓸 필요없다.
(3) 고립성을 보장하기 위해, 동시성 제어를 한다.(concurrency control)