Tech News
[TechNews] 유용한 개발 관련 아티클 및 영상 #27
망나니개발자
2024. 7. 5. 10:00
반응형
1. 유용한 개발 관련 아티클 및 영상 #27
마이크로소프트 해저 데이터센터 셧 다운 결정
- Microsoft가 해저 데이터 센터(프로젝트 Natick) 를 더 이상 운영하지 않기로 결정했음
- 데이터 센터의 수중 배치 가능성 테스트를 위해 스코틀랜드 바다 아래에 거대한 튜브를 설치하고 여러 가지 요소를 테스트했음
- 산소가 아닌 질소로 채운 해저 데이터 센터는 육상 데이터 센터에 비해 고장률이 8분의 1에 불과해서 데이터 센터를 인간 생활 환경과 분리하면 열로 발생하는 전통적인 문제를 많이 해결할 수 있을 것으로 전망했음
- 마이크로소프트는 해저 데이터 센터 사용을 중단한 이유에 대해서는 공개하지 않고, 단지 이 프로젝트에서 얻은 교훈을 다른 사례에 활용할 것이라고 함
출처: https://www.facebook.com/1037158560/posts/10229671742471315/?mibextid=xfxF2i&rdid=rDFTZNF9KOke54KD
Outside-In TDD로 구현하는 코드 예시
- outside-in TDD로 엔드포인트(Controller)에 대한 E2E 테스트로 시작해서 내부(application, domain)로 들어가면서 필요한 인터페이스를 반복/점진적으로 찾아가면서 Mock을 적용해서 테스트를 동작시키고
- 필요한 인터페이스를 다 찾은 후에는 빠른 개발을 위해 Fake (In Memory Adapter)를 구현하고
- 외부로 나오면서 Mock을 Fake로 치환하면서 테스트가 동작하도록 함
- 모든 기능이 동작하면 Fake를 실제 DB를 사용하는 Adapter로 치환했을 때 부드럽게 동작해야 함
- 핵심
- JPA Entity 등을 다루기 위해 다양한 Interface를 만들어서 application, domain의 의존성을 복잡하게 하지 말고
- Facade(Port Interface)를 하나의 주요한 행위에 대해서 발견, 정의, 사용한다.
- Facade의 구현체(Adapter)는 다양한 jpa repository, dao 등을 사용할 수 있다.
- JPA Repository는 Java Interface이지만 실제로는 구현체임
- Facade에 대한 구현을 Map 등을 이용하여 구현하여 모든 기능이 동작함으로 테스트를 통해 확인하고
- 마지막 JPA Mapping 등을 통해 Real Implementation을 제공하면 기존의 모든 테스트가 거의 변경 없이 부드럽게 동작하는 것을 경험하게 됨
출처: https://msbaek.github.io/codetemplate/outside-in-tdd.html
너무 똑똑한 사람이 되지 않기
- 10년전, 20년전 똑똑했던 사람들은 대부분 개발자를 직업으로 선택하지 않았고, 10년 전의 모습을 봤다면 아무도 토스, 배민, 쿠팡 등에에 지원하지 않았을 것임
- 하지만 거대한 회사가 되기 전까지의 모든 회사는 다 부족하고 부정적인 모습들이 많음
- 따라서 누군가를, 특정 직군을, 어떤 조직을 섣불리 판단 하지 않고, 무던하게 조금 지켜볼 필요가 있음
- 항상 현명한 선택만 한다던가, 예리하다던가 하는 것이 사실은 결과까지 가는 과정에서의 조금의 불편함도 참지 못하여 제대로 된 결과를 계속해서 보지 못하는 사람을 의미하는 것일 수도 있음
- 지금의 내 눈의 불편함들도 개선할 수 있다면 개선하되, 그렇지 못한다고 해서 섣불리 실망하고 포기하는 그런 똑똑한 사람이 되지는 말자
출처: https://jojoldu.tistory.com/785
Chrome DevToolsTips
- 서버 API가 준비되지 않은 상황에서 API를 호출하면 404 등이 발생할 수 있음
- DevTools에서 API 조회 요청만 필터링하여 조회할 수 있음
- 그리고 해당 API에 대한 더미 데이터를 반환하도록 조작할 수 있음
출처: https://youtube.com/watch?v=KxjGYcHZ_uI
구글 내부에서 사용하는 VCS 툴(Jujutsu)
- 구글 개발 조직은 Git이 아닌 독자적으로 개발한 버전 관리 시스템(VCS)을 사용 중임
- 해당 도구는 Jujutsu (aka JJ)로, 최근에 오픈 소스로 공개되었음
- Jujutsu는 구글 개발팀이 선호하는 트렁크 기반 개발(trunk-based development)을 더욱 수월하게 해주며, Mercurial, Sapling, Pijul 등 Git 이후에 등장한 최신 VCS들의 장점들을 제공함
출처: https://x.com/dylayed/status/1807789146704150998?t=iljvR9lUfvhcjuWUrr_Sjw&s=31
반응형