티스토리 뷰

Tech News

[TechNews] 유용한 개발 관련 아티클 및 영상 #29

망나니개발자 2024. 7. 19. 10:00
반응형

 

 

1. 유용한 개발 관련 아티클 및 영상 #29


Domain Events에 대하여

  • Domain Events의 정의와 중요성
    • 시스템 내에서 중요한 특정 액션이나 상태 변경을 표현함
    • 이는 전체 애플리케이션에 영향을 줄 수 있으며 특정 도메인이나 특정 영역에 밀접하게 연관되어 있음
    • 현실의 절차와 이벤트를 소프트웨어에 매핑하여 구조적이고 모듈화된 아키텍처를 구성할 수 있게 해줌
  • Domain Events의 장점
    • 디커플링: 애플리케이션의 서로 다른 파트들이 독립적으로 이벤트 컨슘으로 통신함
    • 추적가능성과 감사: 애플리케이션에서 중요한 이벤트의 로그 역할을 함
    • 유연성과 확장성: 변경사항을 보다 쉽게 구현하고 다른 부분에 영향 없이 기존 기능을 수정할 수 있음

 

출처: https://dev.to/ben-witt/domain-events-2772

 

 

 

nektos/act

  • Github Actions를 로컬에서 실행할 수 있게 도와주는 오픈소스
  • act 명령어를 입력하면 .github/workflows/ 에서 실행 가능한 액션들을 찾음
  • 내부적으로 Docker API를 활용하여 필요한 이미지들을 pull 받고 빌드하게 해줌

출처: https://github.com/nektos/act

 

 

 

Default Argument인가? Default Parameter인가?

  • 아규먼트와 파라미터의 정의
    • 아규먼트: 함수로 실제 전달된 값을 의미함, val foo = bar(10)에서 10이 아규먼트임
    • 파라미터: 함수로 전달 placeholder를 의미함, fun bar(x: Int)에서 x가 파라미터임
  • 무엇이 올바른 표현인가?
    • 파라미터는 변수를 의미하므로 “default parameter”는 말이 되지 않음
    • 그리고 파라미터는 기본값을 가질 수 있으므로 “default parameter value” 또는 “default value”가 문맥상 의미에 맞음
    • “default argument” 역시 이치에 맞지 않는데, 전달된 값이 없을 때 “default value”가 사용되는 것이지 엄밀히는 “argument”는 아니기 때문임
    • 하지만 호출자가 argument를 전달하지 않았을 때 이 값을 argument로 사용한다는 관점에서는 어느 정도 이해할 수 있음
  •  결론
    • 애매하지만 default argument가 default paramter보다는 올바른 표현이므로, default argument라는 용어를 사용하자!

 

 

 

 

Java Language Features - Spring 2024 Edition

  • Project Embers: 생산성을 높이기 위한 언어 고도화
    • 작업 목록
      • Swith Expressions, Text Blocks, Records, Pattern matching for instanceof, Sealed classes, Pattern matching for switch, Record Patterns, String Templates, Unnamed classes & instance main methods, Unnamed variables & patterns, Statements before super(…)
    • Nots
      • 문법(syntax) 혹은 보일러플레이트(boiler-plate)에 대한 것이 아님
      • 단순히 작은 독립적인 기능을 추가하는 것이 아님
    • Reality
      • 프로그래머의 의도를 드러내도록 하고자 하는 것임(항상 가독성에 초점을 둠)
      • 새로운 스타일의 자바 프로그래밍이 가능하도록 하는 것임
      • 항상 호환성에 초점을 둠
  • 개발 트렌드
    • oop는 과거 모놀리스의 시대에 번영했는데, 오늘날 프로그래밍 단위는 점점 작아지고 있음
    • 그리고 특정한 타입 스키마(json 등)에 덜 강력하게 결합되며, 교환되는 것이 객체가 아닌 순수 데이터에 가까워졌음
    • OOP의 힘의 균형이 이동하였음. OOP의 강점(복잡한 엔티티나 바운더리 등)이 덜 중요해지고, OOP의 약점(순수한 데이터)이 더욱 중요해짐
    • 비즈니스 엔티티와 처리를 모델링하기 위해 클래스를 사용하는 것에서 데이터를 모델링하기 위해 클래스를 사용하도록 변화중(Data Oriented Programming)
    출처: https://www.youtube.com/watch?v=Kr3W0oGnelA

 

 

 

HotSpot vs. OpenJ9: performance comparison

  • OpenJ9은 IBM에 의해 개발된 JVM으로, fine-tuned된 것을 기본 핫스팟과 비교하면 시작 시간, 지연 시간, 처리량, 메모리 공간 측면에서 성능이 뛰어나다고 함
  • 단순 OpenJ9 도입 만으로도 많은 메모리 절약 효과를 얻을 수 있고, 튜닝을 통해 이를 극대화할 수 있음

 

 

출처: https://bell-sw.com/announcements/2022/06/28/hotspot-vs-openj9-performance-comparison/

 

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함