주특기 심화 TIL 3 - 나는 우리 조원들과 함께 살아남아야해

LIHA·2023년 2월 22일
0

항해99

목록 보기
47/54
post-thumbnail

(이런 부장님 멘트는 대체 누가 넣는 것인가. 왜 부끄러움은 항상 나의 몫인가)

  • 테스트 코드가 이쁘게 정리되는 이유 - @Nested 때문!

누가 인텔리제이한테 한글좀 가르쳐줘요 - 한글 인코딩 깨짐 해결방법

한글을 모르는 인텔리제이 때문에 뭘 테스트했는지 알아볼 수 없다면 인코딩을 바꿔줍시다.

  1. Alt + Shift + S를 눌러 Settings 진입 > Editor > File Encodings 진입 >
    Project Encoding과 Default encoding for properties files 를 모두 UTF-8로 바꿔줍니다.
    x-windows-949가 대체 뭐람? 에잇

  1. Alt + h를 눌러 Help메뉴 열기 > Edit Custom VM Options... 진입 >

-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8

을 입력해주고 닫읍시다.

  1. Alt + F를 눌러 File메뉴 열기 > Invalidate Caches... 진입 >

캐시는 삭제하셔도 되고 안하셔도 됩니다. 저는 한번은 삭제했었음.
Invalidate and Restart를 눌러줍시다.

문맹 인텔리제이에게 한글 의존성 주입을 완료했습니다. 빠밤.


원빈 멘토님의 강의 정리

  • @Mock이 붙은 객체를 @InjectMoks가 붙은 객체에 주입시킬 수 있다고 생각하면 된다.

  • @Around("execution(public com.sparta.myselectshop.controller..(..))") ? 이게 뭐에요?
    ->Myselectshop의 모든 컨트롤러 부분에 다 동작을 시키겠단 얘기.

  • AOP Proxy가 뭐에요? 으으 모르겠어요! 😵😵😵😵
    -> TestDataRunner같은 경우는 AOP를 타는 구조가 아니었고 Dispatcher servlet에서 바로 ProductController로 넘어가는 구조였기 때문에 AOP가 잡아채지 못한다. 그래서 API 수행시간이 등록되지 않았던 것!
    이건 그냥 '아 저기를 안 지나갔구나' 정도로만 생각하면 된다.

  • execution ~~ 은 또 뭐에요? 포인트컷? 🤯🤯🤯🤯
    -> 포인트컷은 실행될 장소를 의미함.


영철 매니저님의 코칭은 언제나 옳지. 오늘도 주옥같은 조언들🤩

  • 필터 관련해서는 정말로 뭔가 외우거나 이해하거나 할 필요가 없다. 그게 전부임. 필터이름에 다 써있음. 스프링 시큐리티가 어려운 이유는 확장성이 높기 때문임. 프레임워크 자체에 대한 이해도도 필요치 않음.

  • 다만 알아야 하는건 Transaction에 대한 처리가 필터에서 하는거랑 서비스에서 하는거랑 좀 다름. OSIV라고 함.
    -> Lazy loading과 fetch loading. fetch join 이라는 키워드에 대해 알아볼 것. 이게 더 중요함.

  • 의도하지 않은 쿼리가 날아가거나 의도하지 않은 데이터 변경이 있는게 트랜잭션때문임. 트랜잭션에 대해 공부해봐야 함.

  • 롤백이 필요한 로직엔 무조건 트랜잭션이 필요함. 트랜잭션이 끝나면 커밋이 되기 때문에 주의해서 걸어줘야함.

  • 트랜잭션에 readOnly를 붙이면 플러시를 안함.

  • Service 거의 모든 부분에 @Transactional이 붙어서 지저분한가요? 그러면 Class 맨 위에 한개만 걸어주면 Service 전체 함수들에 다 적용된다.
    -> 만약 readOnly=true가 필요한 부분이 있다면 거기만 새로 적용해주면 된다.
    뭔가 CSS같은 느낌이구먼?🥴

  • 저 어디가 Many인지 모르겠어요! ManytoMany가 될 수도 있지 않을까 싶고 머리가 아파요😵
    -> 당장 필요한게 뭔지에 주목해서 만들 필요가 있음 - 이건 진짜 훈련밖에 없다!
    -> Many가 어디든 좋으니 아무데나 한번 걸어놓고, 안되거든 돌아가서 다시 만드는 한이 있더라도 일단 시도해보는게 좋다.

  • 동작되지 않는 코드에 대한 경험이 더 중요하다! 다음에 응용도 안되고. 실패를 많이 해봐야한다. 틀리는 것을 두려워하지 말것.

  • 의외로 나는 지식에 대한 구조화나 그런건 꽤 잘 되어 있다고. 농담이 아니라 정말 잘 되어 있다고. 훈련만 하면 되니까 많이 해보라고 하셨다.

  • 영철 매니저님은 Spring을 선택하신 동기가...?
    -> JAVA를 해보기도 했고, CSS는 싫었다. 그래서 일단 프론트는 재낌.
    -> Node는 레퍼런스가 적었다. 한국이 자바 공화국이라고 하니까~ 하는 취업에 대한 부분도 꽤 있었다.


마인드셋에 대한 고민들 - 영철 매니저님의 답변

Q. 맞는 코드를 한번에 치지 못하면 안될것 같다는 생각이 들어요. 뭔가 안 돌아가면 아 역시 난 빡대가린가? 하는 생각에 손을 못 대겠고,
그래도 도전해볼까? 하기엔 알지도 못하는 주제에 자기합리화 하는것 같아요. 괜히 손대는건가 싶고... 어쩌죠? 😩😵🤒

A. 자기합리화 하면 어때서요? 나쁠거 없다고 보는데.
토론이 힘든 이유가, 자기 공부를 부정당하는게 힘드니까 그래요. (그런데 매니저님은 좀 많이 내려 놓으셨다고.)
IT업계는 어차피 모든 걸 알 수는 없어요. 내 지식이 언젠가는 부정이 당하는 날이 옵니다. 그걸 좀더 일찍 겪는다고 생각하세요.
이 공부를 하는게 너무 어렵다 느껴진다면, 지금까지 너무 쉬운 공부만 해왔던건 아닌가... 라고 생각해 보는 것도...
혼자 일하는 개발자는 확실히 발전이 느립니다. 이건 확신할 수 있음.

profile
갑자기 왜 춤춰?

0개의 댓글