✏️ 2022-12-14 Today I Learn

@mitoconcrete · December 14, 2022 · 4 min read

[TodayKeywords] 오늘 공부한 키워드

  • AOP(Aspect Oriented Programming) : 관점지향프로그래밍이라는 뜻으로, 객체지향프로그래밍 방식을 보완하는 프로그래밍방식이다. 로직 중 공통된 로직이나 반복되는 부분을 관점이라는 개념으로 분리하는 것이다. 코드의 모듈화가 아닌 분리이다.

[NextKeyworks] Study Queue

  • HTTPS
  • SOLID
  • loop label
  • CSV
  • 파일입출력
  • UML
  • UTC
  • epoch time / Instant time
  • MVC
  • URL ClassLoader
  • Secure ClassLoader
  • JNI
  • GC
  • HOF
  • 자바 해시코드(hashCode)
  • OSI 7 계층
  • PCB
  • 스프링 설계철학
  • RESTful
  • 준 영속성
  • 지연로딩
  • 프록시객체
  • jpa - mybatis 의 차이
  • orm - mapper 의 차이
  • 쿠키/세션/로컬 스토리지
  • HttpMessageConverter

[회고] 221214 : 알고리즘 성장(?)과 스프링구현 고민..

어제 아침에 풀려다가 포기한, 옹알이(2)문제를 다시 풀었다. 내가푸는 방식에 대해 계속 의심하면서 풀다보니 계속 막히는 부분이 있었다. 이건 기존에도 문제 풀 때 계속 느끼던 느낌이었는데, 보통은 이런 느낌이 들면 거의 문제를 포기했었다. 반복문에 대한 종료시점이 명확하지 않고, 피벗을 굉장히 많이 사용해서 이게 맞나 하는 의심이 들었다. 지속적으로 고민하다보니, 알고리즘 반복문 종료시점이 명확해졌고, 많은 피벗을 차례대로 컨트롤하니 문제가 풀렸다! 넘지못할것같은 기분을 이겨내고, 시간안에 문제를 풀어내니 자신감이 상승했고, 뿌듯했다. 어제보다 한단계 성장한 것 같아서 좋았다.

이후에는 숙련 2차 과제를 구현하는데, 많은 시간을 소요했다. 역할이 명확이 분리되어있기때문에, 1차적으로 구현하는 것은 어렵지 않았다. 하지만, 같은 로직이 반복되는 것을 효과적으로 분리시키기 위한 방법을 리서치하느라 오후시간을 낭비했다.. 보통 AOP를 사용해서 관점을 분리시킨다던데, aop는 로깅이나 인증같은 방식을 선호하는 것 같았다. 즉, 뭔가를 return 해서 사용하는 방식은 AOP에서 선호되지 않는 것 같았다. 객체지향 디자인패턴도 찾아보았는데, 내 상황에 맞는 적절한 케이스를 찾지못했다.

공통로직을 떼어내지 못하니 유지보수하는데 시간이 많이 소요되었다. 한곳만 고치면 되는 것을 여러로직을 모두 변경해주어야했다. 아직 예외처리 및 README.md 가 미흡한 곳이 있고, api 문서도 보완해야하는 부분이 있어 내일은 미흡한 부분을 우선적으로 보충하는데 집중하려고 한다. 로직분리는 지속적으로 고민하고 보완해야하는 부분이기 때문에, 더 나은방안을 고민해보다 적당한 방법이 생각나면 적용하려고한다.

@mitoconcrete
어제보다 조금 더 성장하기 위해 기록합니다.