이펙티브 엔지니어 후기
이펙티브 엔지니어 후기입니다. 지금까지 해온 여러 일들 중에, 단순한 기능을 구현하기 위한 일도 있었고, 팀의 귀찮은 반복 작업을 제거하기 위한 일도 있었고, 동료의 생산성을 올려주기 위한 일도 있었습니다. 팀을 위한 일, 다른 동료를 위한 일을 하는 것은 그 자체로 보람찬 일이지만 그 일을 하는 것이 ‘레버리지’가 좋은 일이라는 것을 이...
이펙티브 엔지니어 후기입니다. 지금까지 해온 여러 일들 중에, 단순한 기능을 구현하기 위한 일도 있었고, 팀의 귀찮은 반복 작업을 제거하기 위한 일도 있었고, 동료의 생산성을 올려주기 위한 일도 있었습니다. 팀을 위한 일, 다른 동료를 위한 일을 하는 것은 그 자체로 보람찬 일이지만 그 일을 하는 것이 ‘레버리지’가 좋은 일이라는 것을 이...
JVM 밑바닥까지 파헤치기 후기입니다. 이 책을 읽게된 계기는 다음과 같은 브런치 글을 접했기 때문입니다. JVM 밑바닥까지 파헤치기 탄생 비화 이런 노력을 통해서 번역을 하신 책이라면 믿고 봐도 되지 않을까라는 생각이 들었고, 출시되자마자 바로 구입해서 읽었습니다. 5월부터 읽었으니 4개월에 걸쳐서 읽었는데 그만큼 책의 내용이 방대...
자바와 스레드 안정성 스레드 안정성이라는 용어는 무엇일까요? Java Concurrency In Practice 에 따르면 다음과 같습니다. 여러 스레드가 한 객체에 동시에 접근할 때, 다음 두 조건을 충족하면서 객체를 호출하는 행위가 올바른 결과를 얻을 수 있는 것입니다. 1. 특별한 스레드 스케줄링이나 대체 실행 수단을 고려할 필요 없다...
자바와 스레드 스레드는 프로세스보다 가벼운 스케줄링 단위입니다. 프로그램에서 스레드를 구현하기 위해서는 3가지 방법이 존재합니다. 커널 스레드 구현(커널 스레드와 프로그램 스레드의 1:1 매핑) 사용자 스레드 구현(커널 스레드와 프로그램 스레드의 1:N 매핑) 하이브리드 구현(커널 스레드와 프로그램 스레드의 M:N 매핑) 자바에서...
자바 메모리 모델과 volatile 키워드 volatile 키워드는 자바 가상 머신이 제공하는 가장 가벼운 동기화 메커니즘이지만, 저를 포함한 많은 개발자들이 synchronized 를 주로 활용하고는 합니다. 이번 게시글에서는 volatile 키워드에 대한 이해도를 높일 수 있도록 내용을 정리해보고자 합니다. volatile 키워드는 2개의 특...
깃헙 workflows 로 테스트 결과를 자동으로 comment 로 남기자 github 에서 pr 을 생성한 후, 테스트 결과를 자동으로 comment 로 남겨줄 수 있도록 actions 를 추가해주자. forked repository 가 아닌 경우 forked repository 가 아닌 경우에는 간단하다. # workflow의 이름을 ...
테스트 싱글 컨테이너 개선기 사이드 프로젝트를 하면서, 테스트 컨테이너를 싱글로 띄우는 형식으로 변경한 경험을 공유하고자 합니다. 사용중인 주요 기술 스택은 다음과 같습니다. Kotlin, Spring Boot, Kotest, MongoDB, TestContainer, Coroutine AS IS : 테스크 클래스 별 MongoDB Co...
함께 자라기 애자일로 가는길 후기입니다. 며칠 전에 이런 아티클을 봤습니다. 박정욱 위시켓 프론트팀 개발 리더 인터뷰 이 글을 읽으니, 나는 개발자로서 어떤 메타인지를 갖고 있는지에 대해서 생각을 해봤습니다. 회사에서는 더 좋은 제품을 만들기 위해서 적극적으로 개선할 지점을 찾는 사람 팀원들과 유대감 형성을 위해서 스몰토크를 즐...
K6 를 활용한 웹소켓 부하 테스트 이런 말이 있습니다. “나를 죽이지 못하는 고통은 나를 더 강하게 만든다.” - 프리드리히 니체 견고한 소프트웨어를 만들기 위해서는 부하 테스트를 통해서 약점을 찾아야 합니다. 롱쿼리, 병목이 되는 응답 등을 여러 시나리오를 통해서 발견하고, 개선할 수 있어야 합니다. ubuntu 환경에서 docke...
최적화 사례 분석 및 실전 대용량 메모리 기기 대상 배포 전략 관리자는 -Xmx 와 -Xms 매개 변수를 지정해서 자바 힙 크기를 12GB 로 고정했다. 그러나, 서버 실행 효율이 기대 이하였다. 원인은 가비지 컬렉션에 있었다. 패러렐 컬렉터를 사용하고 있었는데, 패러렐 컬렉터는 일시 정지 시간보다 처치량에 중점을 두었기에 12G 라는 힙 메모리를...