티스토리 뷰

Tech News

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

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

 

 

 

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


PR 생성될때, 자동으로 이미지 용량 최적화 하기

  • TinyPNG를 API형태로도 사용할 수 있고, 이를 자동화한 Github-Actions가 있음
  • 해당 기능을 활용하면 다음과 같은 절차로 이미지 용량 최적화가 진행됨
    1. PR이 만들어지거나 새로운 commit이 푸시될때
    2. png/jpg로 끝나는 확장자파일에 대해서
    3. tiny png api를 통해 이미지를 최적화하고
    4. 최적화된 이미지로 commit 처리

 

출처: https://medium.com/prnd/pr-생성될때-자동으로-이미지-용량-최적화-하기-918a1470ab5f

 

 

 

An Introduction to Invoke Dynamic in the JVM

public class Main { 
    public static void main(String[] args) {
        long lengthyColors = List.of("Red", "Green", "Blue")
          .stream().filter(c -> c.length() > 3).count();
    }
}
  • 위와 같은 코드를 보면, filter에 Predicate 타입으로 파생된 익명의 inner class를 생성하여 전달할 것이라고 예상하지만, 실제로 그렇지는 않음
  • 대신 invokedynamic instruction이 활용되며, 특별한 static 메서드를 생성하여 invokedynamic을 통해 해당 메서드를 호출함
  • 내부적으로는 다음과 같은 흐름을 통해서 메서드 호출이 처리됨

 

 

출처: https://www.baeldung.com/java-invoke-dynamic

 

 

 

Four pitfalls of hill climbing(A/B 테스트의 4가지 함정)

  • Local Maxima
    • 지역적 최고점에 도달해 훨씬 더 큰 보상을 받을 수 있는 Global Maxima(전역적 최고점)에 도달할 기회를 놓칠 수 있음
  • Emergent maxima
    • A/B 테스트를 짧게 돌리거나 혹은 네트워크 효과를 완벽하게 포착하지 못하면, 처음에는 나빠 보였던 변화가 장기적으로는 좋을 수 있음을 놓침
  • Novelty Effects
    • 새 기능이 단기적으로는 고객의 관심을 끌 수 있지만, 장기적으로는 흥미롭지 않거나 심지어 부정적일 수 있음
  • Loss of Differentiation
    • 더 우세한 경쟁자와의 차별점을 상실하여 고객이 떠날 수 있음

 

출처: https://chris-said.io/2016/02/28/four-pitfalls-of-hill-climbing/

 

 

 

TDD & DDD from the Ground Up Live Coding by Chris Simon

  • 구현 방식
    • 처음에는 200 OK만 확인하는 것으로 시작
    • 점차 더 의미있고, 복잡한 validation을 점진적으로 추가하면서 구현도 점진적으로 구체화함(“As the tests get more specific, the code gets more generic.”)
    • return "", id 할당 등으로 테스트를 성공시켜나가다가 마지막에 JPA Mapping을 추가함
  • 리팩터링
    • 미리 리팩터링하는게 아니라 동작하는 코드가 나오면 그때 리팩터링을 함
    • 거의 다음 기능 구현 시작 바로 전에 리팩터링
    • 그럼 XXXTests에는 DDD, DSL 스러운 테스트 코드만 남아서 가독성 향상에 도움이 됨
  • 기타
    • forwards.sh, backwards.sh라는 스크립트를 만들어 놓고 설명을 하면서 커밋 해시를 변경해가면서 설명함
    • 메소드 이름을 DDD Ubiquitous Language를 고려해서 명명함
    • 이 분의 테스트는 철저하게 유닛 테스트(고객에게 가치를 제공하는 행위)임. 개발자 테스트는 없음
    • 단위테스트는 solitary test가 아니라 sociable test여야 하고, 개발자/프로그래머가 아닌 고객에게 가치를 제공하는 테스트여야 함
  • 추가 정리
    • 유비쿼터스 언어
      • 고객이 사용하는 용어를 이해하고, 그 용어를 코드에 녹여라
    • TDD의 빅스텝
      • 한번에 빅스템을 가면 시간을 줄여줄 것 같지만 실제로는 그렇지 않음
      • 지나치게 큰 스텝으로 인해 버그가 생기고, 문제가 생긴 지점을 찾느라 헤매게 됨

 

출처: https://www.facebook.com/story.php?story_fbid=10233201338919934&id=1364553364

 

 

 

크라우드스트라이크 업데이트로 인한 글로벌 BSOD 대란

  • 사이버 보안 기업 크라우드스트라이크(CrowdStrike)의 업데이트가 전 세계적으로 IT 대란을 초래했음
  • 이번 업데이트로 인해 다수의 윈도우 10 시스템이 블루스크린오브데스(BSOD)를 겪으며 작동 불능 상태에 빠졌음
  • BSOD 오류는 업데이트된 팔콘 센서와 특정 윈도우 시스템 프로세스 간의 충돌에서 비롯된 것으로 보임

출처: https://www.dailysecu.com/news/articleView.html?idxno=157910

 

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/11   »
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
글 보관함