늦었다 생각했을 때가 가장 빠른 2024년 회고
4월이면 작년 회고를 하기에 많이 늦었지만 지금이 제일 빠른거다. 요약 나의 2024년은 개발 외적으로 주로 성장하고, 나의 가정에 있어 큰 결정을 한 해였다. 결혼 날짜를 정하고 다양한 독서 및 업무 관리 영역이 주로 성장했다. 2025년에는 개발자로서 더 성장하고 좋은 가정을 꾸리고자 한다. 그러기 위해서는 개발 공부를 열심히 하면서 지속적으로 ...
4월이면 작년 회고를 하기에 많이 늦었지만 지금이 제일 빠른거다. 요약 나의 2024년은 개발 외적으로 주로 성장하고, 나의 가정에 있어 큰 결정을 한 해였다. 결혼 날짜를 정하고 다양한 독서 및 업무 관리 영역이 주로 성장했다. 2025년에는 개발자로서 더 성장하고 좋은 가정을 꾸리고자 한다. 그러기 위해서는 개발 공부를 열심히 하면서 지속적으로 ...
배경 업무 중 동시성처리하는 이슈가 많아 다양한 방법으로 동시성 처리가 필요했습니다. ex. 한 유저에게만 포인트 지급하는 이벤트에서 한 유저가 여러 기기로 동시 접근하는 상황 포인트 지급은 API호출로 처리하기 때문에 롤백으로 대응할 수 없다. 그래서 동시에 접근이 불가능하도록 설정이 필요하다. 동시성 이슈 해결 방안 1. DB unique k...
부가 설명 entity에 ID가 있으면 persist가 아닌 merge 방식으로 작동한다. repository는 DAO보다는 collection에 가까운 개념이다. (why? collections에서 내부의 값을 꺼낸 다음에 변경하면 다시 add나 put을 하시나요?? -> No) repository에서도 다시 add나 put하지 않기 때문...
부가 설명 테스트하기 쉬운 부분과 어려운 부분을 분리해야 테스트코드를 작성하기 좋습니다. 분리한 후 도메인 객체에 대해서만 먼저 테스트코드를 작성합니다. (로직은 서비스레이어가 아닌 도메인에 개발해야 합니다.) 분리된 것으로 생성한 것(ex. random, shuffle, 날짜)은 파라미터로 전달받습니다. TDD 리팩토링을 위한 과도기 단계에서는 ...
15. 자바 9와 미래 자바 9는 ‘모듈과 그 나머지’ 모듈은 소프트웨어를 개발/배포하는 완전히 새로운 방식이라서 하나씩 단계적으로 도입하기가 쉽지 않음 15.1 자바 9에서 소소하게 개선된 기능 15.1.1 코드 캐시 세그먼트화 자바 9부터 코드 캐시 성능을 개선코자 다음 항목별 영역으로 분리 인터프리터 등의 논메서드 코드(컴파일러 ...
14. 고성능 로깅 및 메시징 14.1 로깅 제품급 로깅 시스템을 선정 시 바람직하지 않은 안티 패턴 10년짜리 로거: 누군가 이미 로거를 잘 설정해놨다. 뭐 하러 다시 만드나? 그냥 편하게 갖다 쓰면 되지 프로젝트 전체 로거: 누군가 프로젝트 각 파트마다 다로 로거를 재구성하지 않아도 되게끔 로거를 감싸놓았다. 전사 로거: 누군가 ...
13. 프로파일링 프로파일링은 여러 가지 접근 방식이 있지만, 그중 다음 두 가지가 일반적 실행 할당 13.1 프로파일링 개요 JVM 프로파일링/모니터링 툴은 보통 저수준의 인스트루먼테이션(instrumentation, 다른 프로그램 또는 객체를 입력받아 대상 프로그램의 여러 지점에 끼워 넣고 원하는 로직을 실행하거나 특정 수치를 계...
12. 동시 성능 기법 12.1 병렬성이란? 요즘의 멀티코어 세상에서는 암달의 법칙이 연산 태스크의 실행 속도를 향상 시키는 핵심 요소 어떤 연산 태스크가 병렬 실행이 가능한 파트와 반드시 순차 실행해야 하는 파트로 구성된다면 순차 실행 파트를 총 S, 총 태스크 소요 시간은 T 필요한 프로세서는 얼마든지 자유롭게 쓸 수 있다는 가정하게 프로...
11. 자바 언어의 성능 향상 기법 개발자가 성능 튜닝할 때 고려해야 할 부분?? 네트워크 연결, I/O, DB 등의 애플리케이션 외부 요인 다음으로 병목을 일으킬 공산이 가장 큰 부분이 바로 코드 설계 성능에 민간함 개발자는 반드시 마음에 새겨두어야 할 코드의 기본 원칙 데이터를 애플리케이션에 어떻게 저장할지 어떤 알고리즘이 가장 효울적일지...
10. JIT 컴파일의 세계로 10.1 JITWatch란? 개발/데브옵스 담당자가 JITWatch를 이용하면, 애플리케이션 실행 중에 핫스팟이 실제로 바이트코드에 무슨 일을 했는지 이해하는 데 도움이 됨 JITWatch는 객관적인 비교에 필요한 측정값을 제공 JITWatch가 하는 일은, 실행 중인 자바 애플리케이션이 생성한 핫스팟 컴파일 상세...