Tech News
[TechNews] 유용한 개발 관련 아티클 및 영상 #22
망나니개발자
2024. 5. 31. 10:00
반응형
1. 유용한 개발 관련 아티클 및 영상 #22
코루틴 입문용 영상(비동기로부터 우리를 구원해줄 코루틴)
- 코루틴에 대하여
- 비동기 프로그래밍을 위한 동시성 프로그래밍 라이브러리
- 코루틴은 기존 서브 루틴과는 다르게 루틴에서 빠져나오는 탈출구가 여러 곳이 존재함
- 따라서 비동기 프로그래밍에서 탈출구를 통해 다른 작업을 할 수 있으며, 결과가 반환되면 다시 와서 작업하는 방식으로 동작함
- 이를 통해 동기 방식의 코드로도 연속적인 작업이 가능해짐
- 코루틴의 장점
- 코루틴은 스레드 위에서 작업을 처리하는 경량 스레드임
- 코루틴은 JVM Heap 영역에 생성되며, 스레드의 메모리 공간을 사용하기 때문에 컨텍스트 스위치 비용이 상대적으로 적음
- 코루틴 스코프
- 코루틴 스코프는 생명주기를 관리하는 개념으로, 코루틴의 실행을 구조화하고 실행되는 컨텍스트를 제공하여, 코루틴의 수명 관리를 용이하도록 사용됨
- 구조적 동시성은 코루틴의 생명주기를 해당 코루틴을 시작한 스코프 생명주기에 연결시키는 개념임
- 이로 인해 코루틴이 시작된 스코프가 자동으로 모든 코루틴이 취소되거나 완료될 때까지 기다려서 리소스 누수 방지나 예상치 못한 시점에서 실행되는 것을 막아줌
- 코루틴 디스패처
- 서버 사이드의 다양한 작업들에 맞게 효율적으로 작업을 처리하기 위한 스코프
- 디스패처는 스레드 풀을 보유하고, 연산에 최적화된 스레드 풀을 관리함
출처: https://www.youtube.com/watch?v=w_kRlfhNb3c
static의 오해와 진실(feat. k6, VisualVM)
- static 변수나 메서드는 두 영역 중 Metaspace 영역에 저장됨
- static 변수나 메서드는 속한 클래스와 같은 생명주기를 가는데, 해당 클래스가 로드될 때 Metaspace 영역에 저장되고, 언로드될 때 GC의 대상이 되어 메모리가 해제됨
- JVM에서 클래스를 언로드하는 경우는 매우 드물기 때문에 계속 메모리를 차지하고 있는 것임
- static 키워드가 참조하는 인스턴스들은 계속 Heap 메모리를 차지하고 있으므로 사용을 주의해야 함
출처: https://velog.io/@jeong_hun_hui/static의-오해와-진실feat.-k6-VisualVM
@Transactional(readOnly=true) 속성에 관하여
- MySQL의 경우, @Transactional(readOnly=true)인 상황에서 데이터를 저장하려고 하면 에러가 발생함
- H2의 경우, @Transactional(readOnly=true)인 상황에서 데이터를 저장하려고 하면 에러는 발생하지 않고 저장은 되지 않음
- 이는 JDBC 스펙 문서를 보면 알 수 있음
- readOnly 플래그가 데이터를 변경하는 쿼리를 실행했음에 대한 검사를 의미하지 않음
- 대신 성능 최적화를 위해 JDBC 드라이버에게 힌트를 전파하기 위해 전달되는 것임
S3 비용에 관한 일화
- 어떤 개발자가 작업 중 S3 버킷을 만들어 두었는데, 며칠 뒤에 S3 PUT 요청으로 인해서 1,300 달러의 비용이 나왔음
- 확인해보니 어떤 오픈소스 프로젝트에서 백업용 버킷으로 지정한 기본 버킷 이름이 하필 이 사람이 만든 이름과 똑같았고, 해당 오픈소스를 가져다가 추가 설정없이 사용한 사람들의 모든 요청이 이 버킷으로 들어왔음
- 물론 권한이 없으니 이 요청은 모두 4xx 응답을 주며 접근이 거부되지만, AWS는 이러한 거부 요청에 대해서도 요금을 부과했음
- 이 이슈는 온라인에 퍼져서 AWS에까지 전달되었고, AWS의 Chief Evangelist인 Jeff Barr는 트위터에서 이런 일은 없어야 한다며 곧 대응하겠다고 발표하며 얼마 지나지 않아 HTTP 3xx/4xx 무단 요청에 대해서는 과금하지 않도록 변경해서 발표함
출처: https://careerly.co.kr/comments/105128?utm_campaign=user-share
웹의 창시자, 팀 버너스리의 사과
- 그는 웹 주소의 “//”가 사실 불필요하다고 고백하였음
- 모든 주소에 //를 추가해야 했기 때문에 시간, 인쇄, 종이 그리고 저장 공간이 낭비되었음
- 팀 버너스 리는 인터넷 주소 앞부분의 슬래시를 붙인 것에 대해 인터넷 사용자들에게 사과했음
출처: http://news.bbc.co.uk/2/hi/technology/8306631.stm
반응형