유튜브에서 방송한 자료입니다. https://www.youtube.com/watch?v=pWXJliHyh38
개발 이야기 유튜브 리스트는 다음과 같습니다: https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg
4. (오늘의 논쟁) 기능 공장에서 일하고 있다는
12가지 신호(1)
• https://cojette.github.io/featurefactory/
• 1. 측정 도구 없음. 팀에서 자신들이 한 일의 영향도를 측정하지 않는다.
• 2. 잦은 팀과 프로젝트의 변경(팀 테트리스라고도 부른다). 팀에서 소명이나
계획을 따르게 되지 않고, 기능이나 프로젝트를 할당받게 된다.
• 3. 성공 전시. 효과에 대한 논의 없이 “성과”에 대해 이루어진다.
• 4. 드문 (알려진) 실패와 업무 파편. 어떠한 기능도 사라지지 않았다. 실제로
나타난 결과가 아닌 초기 성공 지표에 의해 기능을 만든다.
• 5. 중요 지표에 대한 고려 없음. 고객과 업무 결과에 대한 논의가 별로 일어
나지 않는다.
• 6. 회고하지 않는 PM. 제품 매니저가 프로젝트에 대해 내린 결정이 잘 된 것
인지에 대해 정기적으로 고려하지 않고 목표치와 현재 수치를 비교하지도 않
는다.
5. (오늘의 논쟁) 기능 공장에서 일하고 있다는
12가지 신호(2)
• 계속됨
• 7. 우선순위 중독. 엄격한 우선순위(무엇이 효과가 있는지를 결정함)와 검증
(이런 일이라면 어떨까 . 정확히는, 해야 하는 지를 결정함) 간에는 불일치가
존재한다.
• 8. 수정 없음. 일이 한 번 “이루어지면”, 양적, 질적 데이터 기반으로 이를 돌
아볼 시간 따위 없이 팀은 곧바로 다음 “프로젝트”에 착수한다.
• 9. 손을 떼는 문화. 앞선 프로세스가 “손을 떼는 시점”에 위치하면 아이템은
“개발 준비” 상태가 된다.
• 10. 대형 배치. 실험에 대한 의무없이, 기능이 점진적으로 배포되는 대신 하
나의 큰 배치로 서비스에 실린다.
• 11. 선행 수익 몰이. 기능을 추가하는 이유는 새로운 거래를 따내기 위해서
다.
• 12. 반짝이는 것들. 리팩토링 작업이나 (기술, 업무, 의사 결정 등의) 부채를
줄이는 것에 대한 낮은 가시성.
6. (생산성) 윈도우에서 VSS를 활용해 락 걸린
파일 복사
• https://www.raymond.cc/blog/copy-locked-file-in-use-with-
hobocopy/
• VSS(Volume Shadow Service)는 윈도우에서 파일 스냅샷을 잡아 복사하
는 기능 → 락 걸린 파일도 복사나 백업이 가능하게 만드는 특성
• 명령행을 사용할 경우 hobocopy 추천
• 포렌식 기능을 갖춘 OSForensics나 PC Hunter에도 주목
7. (개발) 하나의 메모리 누수를 잡기까지
• https://d2.naver.com/helloworld/1326256
• 메모리 누수를 잡는 데 필요한 도구
• 확인 후 범위를 좁히기 위한 탐색
• 코드 분석
• 결론: 동기화 주의!
8. (개발) GNU sort로 IP 주소 정렬하기(1)
• 다음과 같은 주소가 있다고 가정하면…
• sort addresses.txt 명령을 내릴 경우
$ cat addresses.txt
129.95.30.40
5.24.69.2
19.20.203.5
1.2.3.4
19.20.21.22
5.220.100.50
$ sort addresses.txt
1.2.3.4
129.95.30.40
19.20.203.5
19.20.21.22
5.220.100.50
5.24.69.2
9. (개발) GNU sort로 IP 주소 정렬하기(2)
• 그렇다면 -n 옵션을 동원! 하지만 문제 발생
• 해법(짧은/긴)
$ sort -n addresses.txt
1.2.3.4
5.220.100.50
5.24.69.2
19.20.203.5
19.20.21.22
129.95.30.40
$ sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 addresses.txt
1.2.3.4
5.24.69.2
5.220.100.50
19.20.21.22
19.20.203.5
129.95.30.40
또는 $ sort -V
(-sort=version)
11. 개발자를 위한 동향 파악(1)
• https://snyk.io/blog/jvm-ecosystem-report-2020/
12. 개발자를 위한 동향 파악(2)
• 요약 정리
* 셋 중 한 명은 오라클 JDK를 사용
* 50%가 상용 서비스에 오픈JDK를 사용
* 셋 중 두 명은 자바 SE8을 사용
* 넷 중 한 명은 자바 11을 상용 서비스에 사용
* 10% 미만의 개발자만 상용 서비스를 활용
* 5% 개발자는 코틀린을 핵심 개발에 활용
* 50% 개발자가 스프링 부트를 사용
* 셋 중 두 명은 빌드에 Maven을 사용
* 열 명 중 여섯 명은 젠킨스를 사용
* 셋 중 두 명은 인텔리제이를 사용
* 셋 중 한 명은 깃랩을 사용