본문 바로가기
캠프/항해 플러스 4기

[7주차] WIL

by 핏차 2024. 5. 4.

”한 번의 실수는 배움이, 두 번의 실수는 실력이 된다.” 

 → 개선 사항 추적과 리마인드를 통해 동일한 문제나 같은 실수를 반복하는 결과를 만들지 않습니다.

”경험이 없다면 창조도 없다.”

→ 경험한 것을 기록해두면 더 잘 활용하기 위한 방법으로 연결시킬 수 있습니다.

“I may be wrong.”

→ 끊임없는 회고를 통해 자기객관화를 달성하고, 자신의 실수와 잘못을 인정할 줄 아는 용기 있는 사람이 됩니다.


 

7주차를 돌아보자.

웹서비스에서 정말정말 중요한 개념이자 구현 포인트인 동시성 처리에 대한 과제를 진행하였다.

로직에서 처리하는 방법(Syncronized, Reentrantlock), DB 인덱스로 처리하는 방법, DB락(낙관적락, 비관적락), 잘 모르지만 네임드 락?, 분산락(Redis, kafka 등)..

동시성 이슈를 처리하는 데에 다양한 구현 방식이 있었다.

그래도 지난 주차들 과제 중에 네임드락과 분산락을 제외하고는 한번씩 접해본 것들이라 나름 수월하게(?) 진행할 수 있었다.

나는 우선 각각의 락 방식에 대하여 알아보고, 현재 서비스 로직에서 락을 적용해야 하는 부분에 어떤 방식이 적합할까에 대해 고민하여 글로 정리해보았다.

그 후 낙관적락, 비관적락, Redis 분산락 위주로 구현을 하고 테스트를 해보며 동시성 처리가 잘 되었는지, 동일한 테스트에 각 방식의 테스트 소요시간이 얼마나 되는지 확인하였다.

이번주 과제였던 것

 

 

Keep

1. 역시나 과제 평가기준에 착실하게 맞춘 나의 수행...

7주차 되니까 조금 지쳐서 일월화 다 손놓고 쉬었지만 그래도 끝까지 책임지고 과제 해낸 나..

 

2. 멘토링 시간 이후 선택하는 과정의 관점이 조금 더 업그레이드 된 것 같다. 각각의 락 방식에는 장/단점이 다 있지만, 충돌이 많다고 해서 무지성으로 이 방식을 쓰자~ 이게 아니다. 이 기능이 어떤 역할을 어떤 흐름으로 수행해야 하는지, 락 획득 실패 시 재시도가 필요한지 아니면 로직을 끝내야 하는지, 이 서비스는 조금 느려도 데이터 정합성이 우선적일지, 이 서비스는 빨리 처리되어야 하는지... 등등 내가 구현하려는 서비스의 방향성을 더 면밀하게 생각해보게 되었다. 물론 아직 너무 한참 멀었지만 이 생각을 시작하게 되었다는 점에서 좋은 것 같다.

 

3. 이번 주차 진행하면서 락들에 대해서 많이 고민해보고, 구현 효과에 대해 생각해보면서 개념적으로 이해가 많이 잡힌 것 같다.

 

 

Problem

1. 내 선택에 근거를 조금 더 분석적인 데이터로 만들면 좋을 것 같다. 과학 실험 결과 데이터 뽑듯이 내 선택에도 근거 데이터가 있어야 한다고 생각하는데, 아직 그게 없는 것 같다. 예를 들어 이번 과제에서도, 변수를 더 두고 시간을 체크하거나, 비교할 데이터를 더 만들어서 확인했어야 했다.

 

2. kafka 방식은 아예 구현 시도를 못했는데, 이것도 그렇게 구현이 어렵지 않다고 들어서 내부 동작을 좀 알아보고 시도해봤으면 좋았을 것 같다. 이 부분이 아쉽다.

 

3. 코드에 구멍이 조금씩 존재한다. 락 key 만들때 key 그룹화를 생각하고 정했어야 했는데 그냥 적어버렸지

 

4. 결국 아직 성능 확인을 하는 방법을 몰라서 어영부영 과제한 듯. 역시 기본 지식이 없어서 많이 부족하다.

 

 

Try

1. 설계와 구현 선택 시에 진짜 조금만 더 깊게 분석해보는 습관 들여보자.

 

2. 물론 블로그나 깃 보고 좋은 코드 벤치마킹해서 구현하겠지만, 그래도 내가 내 코드라고 작성해서 내 플젝에 커밋 푸시했으면 한줄 한줄 설명할 수 있도록 이해하고 넘어가면 좋을 것 같다.

 

3. 성능 체크를 자세하게 해보기

 

4. 지치면 지치지말고 힘들면 힘을 내~~~~ 이제 3주밖에 안남았다 거의 다 왔다

5일 주어진 과제에서 3일 손 놓아버리면 남은 이틀 힘든건 나잖아요... 밤새고 운동 못 가지 말고 미리미리 쪼개서 하자

 

5. 아 맞다 그냥 스크린샷이나 메모만 남긴 트러블들,, 트러블 슈팅 간단하게라도 작성해놓자. 잊어버리겠다.

728x90