Sanghun

동기와 비동기 연동 [주니어 백엔드 실무지식]

동기와 비동기 연동 ⚡ 저자는 기능개발을 할 때, 실행되는 순서를 떠올린다고 했다. 우리도 프로그램을 짜면서 플로우를 생각하기 때문에 이 점은 굉장히 자연스러운 것이다. 아래는 그 생각의 과정을 코드로 나타낸 것이다. 딱봐도 동기적인 실행 방법이라는 것을 알 수 있다. 사용자를 찾고 암호를 비교하고 포인트를 지급하고 로그인 히...

외부 연동이 문제일 때 살펴봐야 할 것들 [주니어 백엔드 실무지식]

외부 연동이 문제일 때 살펴봐야 할 것들 🔗 인터넷 초창기와 달리 외부 연동이 서버 개발에 있어 필수 요소가 되었고, 마이크로서비스를 도입하는 기업이 늘면서 내부 서비스 간 연동도 복잡해지고 있다. 이로 인해, 신경 써야 할 품질 문제도 늘고 있다. 책의 사례에서는 A은행이 가입 과정에서 필요한 정보 인증을 위해 외부 서비스를 호출했는데, 외부...

성능을 좌우하는 DB 설계와 쿼리 [주니어 백엔드 실무지식]

성능을 좌우하는 DB 설계와 쿼리 🚀 서버 성능 문제의 가장 큰 주범은 역시 데이터베이스(DB)인 경우가 많다. 특히 사용자가 늘어나고 데이터가 엄청나게 쌓이면서 DB의 CPU 사용률이 90%에 육박하고 쿼리 실행 시간이 하염없이 길어지는 현상이 나타난다면, 우리 서비스의 DB 성능이 심각하게 저하되었다는 신호로 봐야 한다. 이런 문제는 주로 ...

느려진 서비스, 어디부터 봐야 할까 [주니어 백엔드 실무지식]

느려진 서비스, 어디부터 봐야 할까 🚀 서비스가 느려졌을 때 가장 먼저 확인해야 할 지표들과 성능 개선 방법에 대해 알아보자. 처리량과 응답 시간 통상적으로 응답시간이 10초 이상? → 성능이 나쁘다 성능 저하가 있으면 가장 눈에 띄는 현상은 결과가 늦게 표시되는 것이다 다양한 지표 중 응답 시간과 처리량이 서버 성능과 관련된 주요 지표다 ...

자바 지연로딩과 동기화 문제 [CS 면접 박살내기]

자바 지연로딩과 동기화 문제 🎯 자바에서 멀티스레드 환경에서 객체를 초기화할 때 가장 까다로운 부분이 바로 지연로딩(Lazy Initialization)이다. 심지어는 Effective Java에서도 잘못된 예시가 있었다 ㅋㅋㅋ 이번에는 지연로딩에서 발생할 수 있는 동기화 문제와 해결 방법에 대해 차근차근 알아보자. Effective Java의 잘...

자바 메모리 구조 완전 정리 [CS 면접 박살내기]

자바 메모리 구조 완전 정리 🧠 자바를 배우면서 가장 헷갈렸던 부분이 바로 메모리 구조였다. 변수가 어디에 저장되는지, 객체는 어떻게 관리되는지, static 변수는 왜 다른 곳에 저장되는지… 이번에는 JVM의 메모리 구조를 차근차근 파헤쳐보자. JVM 메모리 구조 개요 📊 JVM(Java Virtual Machine)은 메모리를 크게 3개의 주...