TIL-20210220

2021. 02. 20.
  • 알고리즘 스터디를 했다. 오랜만에 재개했다. 한 분은 이직에 성공하셨는데도 적극적으로 참여해주셔서 고마웠다.
  • 백기선님이 진행하신 우아한 스프링 부트를 시청했다. 빠르게 개괄적으로 진행되어 굵직한 부분만 머릿속에 남은 것 같다. 다행히 유튜브에 따로 페이지당 하나의 영상으로 진행하신다고 하니 참고해봐야겠다.

    • 메이븐의 parent라는 것으로 버전을 오버라이드 할 수 있다고 하는데, IDE에서 명시적으로 표현을 해주는 것이 참 괜찮아보였다. 반면, 그레이들은 어떻게 하는건지 찾기가 쉽지 않았다. BOM이라는게 힌트인 것 같은데 한 번 알아봐야겠다.
    • 실행 환경(내장 서버같은)까지 포함하여 바로 실행할 수 있는 jar를 fat jar 혹은 uber jar 라고 한다고 한다. 처음 알았다. 이 것도 알아봐야 할 것 같다.
    • application.properties를 여러군데 배치할 수 있는데, 어디에 있는지에 따라 우선순위가 달라진다고 한다. 같은 옵션은 오버라이딩 된다.
    • 도커 부분을 놓쳤는데, docker dive 라는 툴이 있다는 것 같다. 계층형 이미지로 만들면 필요한 부분, 예를 들어 서버 환경은 그대로인데 빌드 파일만 달라질 경우 그 것만 바꿔 끼울 수 있도록 해주는 것 같다.
    • actuator와 부트 admin이라는 것으로 관리를 할 수 있다고 한다. 이건 사용 예시 같은 것을 찾아봐야 할 것 같다. 실 사용에서는 시큐리티로 감싸주는 것이 필수라고 한다.
  • 백기선님 스터디도 시청했다.

    • 버퍼를 컵으로 비유해주셨는데, 숟가락으로 국물을 뜨는 것과 국자로 국물을 뜨는 것으로도 설명할 수 있을 것 같다. 이렇게 간단한 언어로 설명하는 사람들은 참 대단한 것 같다.
    • 채널은 양방향 통신이 가능하다고 한다.
    • 다이렉트 버퍼와 논-다이렉트 버퍼가 있다고 한다. 논-다이렉트는 JVM 안에서 버퍼를 사용하는 것이라 버퍼 생성 속도가 빠르지만 속도가 느리다. 따라서 빈번하게 사용해야 할 경우 유리하다. 하지만 한 번 띄워놓고 계속 사용할 경우는 속도가 느리다. 이럴 경우 다이렉트 버퍼가 유리한데, jvm 밖에 있는 메모리를 사용하는 것이라고 한다. 즉 시스템 레벨에서 사용할 수 있게 되는 것인데, JVM에서 허용하는 것 보다 훨씬 크고 빠르다. 예전에 NIO소켓을 이용할 때 바이트 버퍼에 allocateDirect를 본 적이 있었는데 이 것이 바로 그것이다! 테스트 해봐야겠다. 아무튼 이런 부분을 imdg(in memory data grid)라고 부른다고 한다. https://blogs.oracle.com/javamagazine/creating-a-java-off-heap-in-memory-database 를 보면 도움이 된다고 한다.
    • java io가 데코레이터 패턴의 대표적인 예시라고 한다. 계속 덧붙여서 사용하는 그런 느낌인 것 같았는데 이렇게 들으니 또 새롭다.
    • 직렬화를 이삿짐 싸는걸로 설명해주셨다. 대단하다.
정대화
DaeHwa_Jeong@outlook.com

Powered with by Gatsby 2.0