# 2021-07-15(Thu)

## Facts (사실, 객관)

* 감사일기를 9일째 적는 것을 성공했다.
* 실무를 시작?하였다. 테스트 과제부터!&#x20;

## Feelings (느낌, 주관)

후아 재원님의 피드백에 감동 받았다. 동시성 처리에 대해서 깨달음을 얻은 것 같아 짜릿했다. 좋은 팀에 들어왔다는 것에 다시 한번 감사한다. 제대로 성장해야지!

재원님이 일하는 방식에서 프로가 일하는 방식이 어떠해야하는지를 느꼈다. 위키로 구조화해서 작업을 공유하고 협업콜을 해주는 스킬이 최고다. 같이 일하고 싶은 느낌이 들게끔, 나도 이 부분을 적극 익혀야겠다.

내가 다른 분들과 오디오가 겹치는 경우가 꽤 있는데, 말하고 싶으면 손 들고 있다가 스무스하게 발언 기회를 얻어서 발언하도록 해보았다. 효과적이었고 스스로를 개선한 것 같아 기분 좋다.

Table lock과 Row lock의 실사용 예를 찾다보니 lock과 트랜잭션 관련 글만 수십편 본 것 같다. 이젠 트랜잭션 레벨에 따라 발생가능한 정합성 에러 유형도 자연스럽게 머리에 들어온 것 같다. dirty read, non repeatable read, phantom read..

## Findings (배운 점)

테스트 환경과 실 환경이 다르므로 결과가 달라질 수 있다는 것을 항상 염두해둬야하는 것을 깨달았다.

![rspec은 잘 통과해서 괜찮은줄 알았다.](/files/-MegqhX2ZSPBNstf2vf5)

트랜잭션 처리를 했을 때와 안했을 때 결과가 달라지기에, 트랜잭션 처리를 통해 동시성 이슈를 해결한 줄 알았는데 오해한 것이었다. 결과적으로 `with_lock` 을 써서 해결했다.

rails `lock`과 `with_lock` 메소드의 차이점에 대해 확인했다.

* 차이점 2가지
  * 원자성을 확보하는지 여부
  * reload 여부

병규님과의 협업을 통해, 가독성을 높이기 위해선 O/X 같은 기호를 쓰는 것이 효과적임을 배웠다.

## Affimation (자기 선언)

* 나는 무지를 인지하여 적극적으로 드러내고,
* 무지를 아는 영역으로 바꾸어내며,
* 결국엔 성장하는 개발자다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://injun-woo30000.gitbook.io/growth-log/daily-review/2021/july/2021-07-15-thu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
