도도한 개발자

[TIL] 2023/09/19 본문

TIL

[TIL] 2023/09/19

Kiara Kim 2023. 9. 19. 23:43

🐈‍⬛ 오늘 공부한 내용

  • <클린코드> 13장 동시성
  • nGrinder로 부하 테스트
  • 쿼리 정리 및 인덱스 설정 이유 작성
  • 백준 1939 중량제한 
  • MVC 미션 step2 리뷰 반영

 🐾 느낀 점 & 배운 점

<클린코드> 13장 동시성

동시성에 대한 오해 3가지

1. 동시성은 항상 성능을 높여준다.

> 항상 그렇지 않다. 대기 시간이 아주 길어 여러 스레드가 프로세서를 공유할 수 있거나 여러 프로세서가 동시에 처리할 독립적인 계산이 많은 경우에만 높아진다.

2. 동시성을 구현해도 설계는 변하지 않는다.

> 단일 스레드 시스템과 다중 스레드 시스템을 설계가 다르다. 무엇과 언제를 분리하면 시스템 구조가 많이 달라진다.

3. 웹 또는 EJB 컨테이너를 사용하면 동시성을 이해할 필요가 없다.

> 컨테이너가 어떻게 동작하는지, 어떻게 동시 수정, 데드락 등과 같은 문제를 피할 수 있는지를 알아야만 한다.

 

동시성에 대한 타당한 생각

1. 동시성은 다소 부하를 유발한다.

2. 동시성은 복잡하다.

3. 일반적으로 동시성 버그는 재현하기 어렵다.

4. 동시성을 구현하려면 흔히 근본적인 설계 전략을 재고해야 한다.

 

    이 장을 다 읽진 않았지만 이 부분을 짚고 넘어가는 것이 중요하다고 생각했다. 근데 사실은 아직도 이 말들이 잘 와닿지 않는다. 그래서 가볍게 읽어볼 요량이다. 

 

nGrinder로 부하 테스트

    5차 데모데이까지 해야 할 요구사항 중 톰캣 설정을 하고 그 이유를 공유해야 하는 부분이 있다. threads max, max connections, accept count 이 세 가지를 설정해야 하는데 판단 기준을 부하 테스트로 했다. 툴은 nGrinder로 오늘 처음 들어봤다. 근데 다들 어떻게 알고 사용한걸까..

 

쿼리 정리 및 인덱스 설정 이유 작성

    우리 프로젝트의 조회 api가 날리는 쿼리를 정리하고 각 쿼리에 인덱스가 있는지, 없다면 왜 없는지에 대한 이유를 작성했다. 근데 문제는 내가 아직 인덱스를 잘 모른다. 그래서 이번주엔 인덱스 엄청 파볼거다. 슬퍼할 시간이 없댜..

    like 검색 시 단어 앞에 % 붙어있으면 인덱스를 탈 수 없어 인텍스를 사용하지 않는다. <- 오늘 배운 것 중 제일 의미있는 것

 

 백 1939 중량제한

    코코닥이 준비한 최강우테코5기알고리즘초박살내기!!로 어제 알고리즘 문제를 풀었다. SET1 에 다섯 문제 있었는데 네 문제는 어제 풀었고 마지막 문제인 중량제한은 오늘 캠퍼스에 남아 풀었다. DFS BFS랑 이분탐색 문제 많이 풀어봐야겠다. 문제를 봤을 때 어떤 알고리즘을 사용하는 것이 좋을지에 대한 견문이 없는 듯.

 

MVC 미션 step2 리뷰 반영

    어떤 상황에서 for문을 쓰고 어떤 상황에서 Stream을 쓰는지에 대한 판단 기준이 필요해보인다. for문의 경우 계산 로직 이상의 일들을 수행해야한다거나 return 문을 사용해 메서드를 빠져나가야 할 때, break continue문으로 블록 바깥의 반복문을 종료하거나 건너뛰고자 할 때 쓰면 좋을 것 같다. 반면 Stream은 원소들의 시퀀스를 일관되게 변환 또는 필터링하거나하나의 연산을 사용해 결합하거나, 컬렉션으로 모으고자 할 때 쓰는 게 좋겠다. (근데 이걸 이제...?)

 

    이것보다 DispatcherServlet에 오버라이드한 init() 메소드가 있고 DispatcherInitializer가 있는데 DispatcherServlet에서 필요한 값들을 어디서 초기화 하는지에 대해 고민이 많았다.그래서 init() 메소드를 비우고 Initializer에서 초기화 해줬는데 디노(리뷰어)가 init() 메소드를 활용할 수 있지 않을까라는 리뷰를 해줘서 다른 init() 메소드에서 초기화를 진행했다. 다 이유가 있어서 오버라이드 한 거겠지? 하면서.

 

    눈 뜨자마자 리뷰가 온 걸 봤는데 도통 시간이 안나 못했었다. 막상 리뷰 반영해보니 그리 오래 걸리지 않았는데 오늘 좀 많이 바빴다.

💭 감정회고

요즘 뭔가 공부를 한 건지 안 한 건지 잘 모르겠다. 만족스럽지 않은 학습...쩝.

'TIL' 카테고리의 다른 글

[TIL] 2023/09/20  (0) 2023.09.20
[TIL] 2023/09/14  (0) 2023.09.14
[TIL] 2023/09/13  (1) 2023.09.13
[TIL] 2023/09/12  (3) 2023.09.12
[TIL] 2023/09/11  (0) 2023.09.11