티스토리 뷰
반응형
1. 유용한 개발 관련 아티클 및 영상 #31
바이럴은 과학이다 (Effects of Viral Coefficient, Retention Rate, and Cycle Time on Viral Expansion)
- 한 명의 감염자가 한 명을 초과하여 감염시켜야 한다
- 바이러스에 감염된 고객이 감염상태로 머물러야 한다
- 몇 명을 감염시키느냐 보다 얼마나 빠른 시간내에 감염시키는가가 더 중요하다
- ‘해피 바이러스’의 확산은 일반 바이러스 감염과 다르다
- 해피 바이러스는 자발적 전파에 의해 확산된다
- 해피 바이러스의 전염성은 누가 전파했느냐에 따라 달라진다
- 해피 바이러스의 전염성은 얼마나 많은 (주변) 사람들이 감염되었냐에 따라 달라진다
자바 쓰레드와 JVM의 쓰레드 동작 '기본부터 살펴보기'
- 비데몬 쓰레드와 데몬 쓰레드
- 비데몬(non-daemon) 쓰레드는 끝까지 실행된다. main 쓰레드는 비데몬 쓰레드의 좋은 예다. main()의 코드는 System.exit()가 프로그램을 강제로 종료하지 않는 한 항상 끝까지 실행된다.
- 데몬(daemon) 쓰레드는 그 반대로, 기본적으로 끝까지 실행할 필요가 없는 프로세스다.
- 쓰레드 우선순위와 JVM
- 우선순위는 JVM 구현에 따라 그리고 운영체제의 구현에 따라 제각기 다르며 각각 기본값에 따라 쓰레드 우선순위를 처리함
- MAX_PRIORITY로 설정했음에도 이 쓰레드가 가장 먼저 실행된다고 단정할 수는 없고, 실행 순서는 무작위임
출처: https://www.itworld.co.kr/news/342913#csidx969315ae8f26bad97b9b8ab0bb72477
리더십으로의 정원사
- Team of Teams에서는 자율 기반의 조직에서 리더십 모델 가운데 하나로 정원사를 언급함
- 짜여진 대로 움직이는 것이 아닌 정원이라는 공간에서 큰 틀을 잡아주는 존재로써의 정원사임
- 자연이라는 환경은 내가 원하는 대로 만사가 이뤄지는 것이 아님. 잘 되는 것도 있고, 망하는 것도 있지만 정원이라는 큰 틀에서 각자가 의미를 보탬
- 정원사는 정원을 통해 바라던 것들이 바라던 대로 흘러가도록 방향을 잡아주는 역할을 함
- 변화의 시대에 큰 조직은 정원에 비견됨
- 단위 팀들이 제 몫을 해줘야 하지만, 땅을 일구고 거름을 주는 것처럼 팀이 최고의 기량을 발휘할 수 있는 환경을 조성하는 것이 리더의 역할임
- 물론 상황 변화에 맞춰 조정이 필요한 경우에 조직 변화를 실행할 수도 있어야 함
- 리더는 의미이자 의미가 흘러가는 변화의 방향성을 제시해야 함
출처: http://www.chidoo.me/index.php/2024/05/06/gardener-as-a-leadership/
왜 KB국민은행만 유독 IT비용·인력이 많은가?
- 국민은행은 현재 국내 은행권에서는 거의 유일하게 1990년대에 금융권에 풍미했던 ‘IBM 메인프레임’ 기반의 주전산시스템 환경을 여전히 가동중임
- 주전산시스템이 낙후됐다는 의미가 아니라 2000년대 이전 '안정성'을 중시했던 올드 타입이란 의미에서의 문제임
- 반면 농협, 신한, 하나, 우리, 부산은행 등 대부분의 은행들은 지난 2010년을 전후해, IBM 또는 유니시스 메인프레임 환경에서 벗어나 유닉스(UNIX)기반 오픈환경 체제로 주전산시스템을 전환해 현재에 이르고 있음
- IBM 메인프레임 OS가 이제는 국내 금융권에서 희귀한 사례가 되다보니 관련 기술 전문가들이 없어지고, 이 때문에 국민은행이 외부에서 관련 개발 전문가를 쉽게 구하기도 힘든 상황일 것임
- 결국 IBM 메인프레임 기반의 주전산시스템 환경에서 벗어나지 못한 과거의 선택이 현재의 국민은행 IT집행예산과 IT인력 구조의 비효율이 초래되고 있다는 추론이 가능함
- 현재 국민은행은 지난해 7월부터 ‘코어뱅킹 현대화(Core Banking Modernization) 2단계’에 착수한 상태임
출처: https://www.ddaily.co.kr/page/view/2024071818090454749
리팩토링을 위한 통합 테스트 from 무신사 테크 블로그
- 통합 테스트가 필요한 이유
- 구현 세부 사항에 밀접하게 작성될 수밖에 없던 단위 테스트 코드는 쉽게 망가지고 유지보수가 어려움
- 느린 실행 속도와 복잡한 환경 설정이 필요하지만, 넓은 범위의 코드를 실행하는 만큼 회귀 방지가 뛰어나며 무엇보다 리팩토링 내성이 강해 쉽게 망가지지 않음
- 적용했던 테스트 기법
- 통합 테스트의 대상으로 UseCase 구현 클래스를 지정함
- 테스트 환경을 실제 환경과 유사하게 구성함(Testcontainers)
- 빠른 테스트 작성을 위하여 Golden Master Testing을 채택함(Snapshot Test, Approval Test, Characterization Test와 동일)
- 기타 인사이트를 얻었던 부분
- Database Rider라는 도구를 사용하여 DB의 상태를 캡처하고 비교할 수 있음
- 준비된 데이터셋을 활용하여 DB 를 특정 상태로 설정해주는 기능 이외에도, DB 의 상태를 추출하여 데이터 검증에 활용 할 수 있음
@DBRider
@SpringBottTest
class OutboundFacadeTest {
@Autowired
OutboundFacade sut;
@DataSet(value = "db/prepare.json")
@ExpectedDataSet(value = "db/expected.json", ignoreCols = {"last_modified_at"}) // last_modified_at 컬럼은 비교하지 않습니다.
@Test
void someTest() {
sut.some();
}
}
출처: https://medium.com/musinsa-tech/리팩토링을-위한-통합-테스트-cd23498918a7
반응형
'Tech News' 카테고리의 다른 글
[TechNews] 유용한 개발 관련 아티클 및 영상 #33 (3) | 2024.08.16 |
---|---|
[TechNews] 유용한 개발 관련 아티클 및 영상 #32 (0) | 2024.08.09 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #30 (0) | 2024.07.26 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #29 (0) | 2024.07.19 |
[TechNews] 유용한 개발 관련 아티클 및 영상 #28 (0) | 2024.07.12 |
댓글