0806 일기, 기본기에 대해서

dropKick·2020년 8월 6일
0

공부 기록

목록 보기
41/67

오늘 하루종일 두통이 있어서 낮에 쭉 쉬다 노트북 켰는데
모 라이브가 가장 관심있는 주제로 진행해서 내가 잊지 않기 위해 기록함

프레임워크와 기본기

흔히 신입이나 인턴 공고를 보면 인턴임에도 스프링 MVC를 사용해 본 경험, 스프링 프레임워크 사용해서 프로젝트를 해본 경험, 객체지향 경험 등을 요구하는데
과연 이것들이 원하는 진짜 그 컷, 기준선은 어디일까?
진짜로 인턴이 스프링 MVC를 가지고 구성해본 걸 원하는걸까?
내부의 '스프링 기술과 패턴'을 이해한 걸 원하는걸까?
아니면 더 더 깊은 자바 자체의 이해를 원하는걸까?

오늘 듣게 된 이야기를 요약하면 기술과 패턴을 알면 좋다, 몰라서 손해보는 것은 없다.
하지만 그 안의 원리를 이해해야 한다.

  • 자바 기본을 다 안다고 생각하고 스프링 프로젝트를 시작하거나 레퍼런스를 참고하게 되면 무조건 막히는 부분이 있다
  • DI / IOC
    이 두가지를 그럼 찾아보게 될텐데 들어가다보면 싱글톤 패턴이 나올거고
    실제 자바에서 자신이 알고있던 싱글톤 패턴에서 넘어가 Double Checked Locking
    그리고 스프링 빈까지 넘어가게 될 것
  • IOC를 하다가 다이나믹 프록시 -> 리플렉션 -> AOP
  • IOC -> 서블릿 -> 컨테이너 -> 스프링 MVC
  • 기술 자체를 아는가 모르는가, 사용해봤나 아닌가가 중요한 게 아님
    스프링에서 IOC가 어쩌고 Bean Scope가 어쩌고 이런거에 집중하기보다
    왜 그 기술들이 구현 됐는지를 생각
  • 스프링과 JPA를 사용해봤다고 했을 때
    "~~에서는 리플렉션을 적용하면 어떨까요?"와 같이 말했을 때 이 대화가 이루어져야만
    공부를 제대로 한 것이라고 생각한다

번외

  • 병렬 프로그래밍 관련
    대부분 직접 멀티스레드를 만들어 프로그래밍 안함, 진짜 서버 자체를 만드는 게 아니면
    그러니 일단 스레드 세이프 등의 병렬 프로그래밍 문제 해결과 기본에 집중

내 생각

그럼 기업에서 그런 경험을 요구하는 건 너 진짜 스프링 써봤니가 아닌
스프링 해봤네? IOC 뭔지 아니? 그럼 IOC가 왜 나왔는지 아니? 그게 자바 언어 자체에서 어떤 기술인지 아니?라고 묻는걸까..
아무튼 대략적인 감은 잡고 있었는데 오늘 명확히 정리가 되어간 기분

0개의 댓글