20240903의 TIL

Yellta·2024년 9월 3일
0

TIL

목록 보기
67/89
post-custom-banner

더티코드

프로젝트를 고치다가 치명적인 결함을 발견했다.

엉망진창 Annotation


@Controller  
@Slf4j  
@RequiredArgsConstructor  
@RestController

이미 RestController를 사용하는데 또 Controller를 중복해서 넣는다거나...

엉망진창 코드들

private void alertFoodInfoToDb (ArrayList < Map > delMap) {  
  
    for (Map<String, String> map : delMap) {  
        customFoodRepository.deleteBymineId(map.get("id"));  
        log.info("deleted Food data ={}", map);  
    }  
}  
private void alertMachineInfoToDb(ArrayList<Map> delMap) {  
  
    for (Map<String, String> map : delMap) {  
        customMachineRepository.deleteBymineId(map.get("id"));  
        log.info("deleted Machine data ={}", map);  
    }  
}

위의 친구들은 어디에서도 사용되지 않는 친구들이었다...
게다가 Controller에 있는 애들이다.
DB와 연결해서 삭제하는 로직을 Controller에 넣어놓은 것

지켜지지 않은 단일책임 원칙

    private final AlertLoading2 alertLoading;  
    private final MachineLoadingAndEnterZenput machineLoadingAndEnterZenput;  
    private final CustomMachineRepository customMachineRepository;  
    private final FoodLoadingAndEnterZenput foodLoadingAndEnterZenput;  
    private final CustomFoodRepository customFoodRepository;  
    private final MyJsonParser myJsonParser;

API를 리턴하는 결과만 줘야하는 Controller에서 마주한 수 많은 의존성들... 심지어 Db와 통신하는 의존성이 있다.

더티코드 개선

  1. RestController가 있는데 Contronller를 사용한다던가
  2. Controller에서 @Transaction을 사용한다던가!!!
  3. 단일책임 원칙을 지키지 않는 녀석들 단일책임 원칙 지키도록 변경해주기...

위의 과정을 거치고 있는 중이다. 생각보다 리팩토링 시간이 꽤 걸릴 듯 하다. Controller리팩토링이 끝나면 이제 Service Refactoring으로 들어가야하니까 말이다 ㅋ (로직이 너무 지저분해요)

더티코드 회고...

내가 이렇게 끔찍한 코드를 짯었는지 생각하지 못했었다. ㅋ
하지만 반대로 그때 당시에 내가 할 수 있는 최선을 한 것이라고도 생각한다. 그때와 지금은 다르니까 그때 당시에 나에게는 저게 최선이었을 것이다. 그리고 다행인건! 지금 개선안을 알고있는 것!

Stack과 Queue

백준문제링크
재귀, dfs, bfs를 통해서 노드를 탐색하는 문제이다.
문제를 풀다보니 궁금한게 생겼는데
Stack을 사용해서 dfs로 풀때와 Queue를 사용해서 bfs를 풀때의 차이이다.
내가 알기로는 bfs가 LinkedList를 사용하니까 시간 복잡도는 똑같아도 메모리르 더 많이 먹을것이라고 생각했는데 의외로 아니었다.
Stack이 더 많이 사용하는 경우가 있고 반대로 Queue가 더 많이사용하는 경우가 있었다.
왜 그런지 아직 사유는 못찾음 ㅠ

환경적인 요인(물리 하드웨어 서버)

백준 자체의 서버때문인 경우도 있는 것 같다. 아마도 음... 서버에서 돌릴 때 환경에 따라 문제가 생겼기 때문?...

오늘의 데일리 로그

아침 노가리가 좀 많았던 듯 그리고 What I learn은 깜빡하고 안적었다


REVIEW

바쁘다 바빠 바쁘다 바빠
그래도 계획한거 지키려고 열심히 노력중...
그래도 바쁘다 바빠 바쁘다 빠빠 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ


#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

profile
Yellta가 BE개발해요! 왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜 가 제일 중요하죠
post-custom-banner

0개의 댓글