일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 자바면접
- 공유락
- 백엔드
- Spring
- 네트워크
- 개발자기술면접
- 면접준비
- 기술면접
- 운영체제
- 배타락
- DB
- 자바8
- java
- Application
- 기술면접대비
- 개발자면접
- 스트림
- hashcode
- 알고리즘
- 객체지향언어
- stream
- http
- 자바기술면접
- lock
- 백엔드면접
- 데이터베이스
- 자바
- equals
- 스프링
- jpa
- Today
- Total
목록기술면접 (5)
IT인으로 살아남기
동기 방식으로 외부 서비스를 호출할 때 외부 서비스 장애가 나면 어떻게 조치할 수 있나요? 외부 서비스 장애로 인해 응답이 오래 걸린다고 했을 때 외부 API 응답으로 대기하는 자원들이 운영 서버 내부에 쌓이면서 성능에 악영향을 줄 수 있습니다. 이를 해결하기 위한 가장 기본적인 방법은 타임아웃을 설정하는 것입니다. 크게 타임아웃에는 커넥션 타임아웃과 리드 타임아웃, HTTP 커넥션 풀 타임아웃을 설정해 볼 수 있습니다. 다음과 같이 특정 서비스의 장애가 전체 서비스에 영향을 주는 경우는 어떻게 해결할 수 있을까요? 🤔 1. A 서비스, B 서비스, C 서비스 연동 코드가 HTTP 커넥션 풀을 공유한다.2. A 서비스의 장애로 응답 시간 지연이 발생하는 경우 2-1. 풀에 남은 커넥션이 점점 줄어..
동일성과 동등성에 대해서 설명해주세요. 동일성과 동등성은 객체를 비교할 때 중요한 개념입니다. 자바에서는 이 두 개념을 equals() 메서드와 == 연산자를 통해 구분할 수 있습니다.equals()와 ==의 차이는 무엇인가요? equals()는 객체의 내용을 비교하는 반면, ==는 객체의 참조(레퍼런스)를 비교합니다. 따라서 두 객체의 내용이 같더라도 서로 다른 객체라면 equals()는 true를 반환할 수 있지만, ==는 false를 반환합니다. 동등성(Equality)은 뭔가요? 동등성은 논리적으로 객체의 내용이 같은지를 비교하는 개념입니다. 자바에서는 equals() 메서드를 사용하여 객체의 동등성을 비교합니다. Apple 클래스를 예시로 보면, Object.equals 메서드를 오버라이딩하여 ..
equals와 hashCode는 왜 함께 재정의해야 할까요? equals와 hashCode 메서드는 객체의 동등성 비교와 해시값 생성을 위해서 사용할 수 있습니다. 하지만, 함께 재정의하지 않는다면 예상치 못한 결과를 만들 수 있습니다. 가령, 해시값을 사용하는 자료구조(HashSet, HashMap..)을 사용할 때 문제가 발생할 수 있습니다. subscribes = new HashSet(List.of(subscribe1, subscribe2)); // 결과는 1개여야하는데..? 2개가 나온다. System.out.println(subscribes.size()); } class Subscribe { private final String email; ..
로그와 메트릭을 설명해주세요. 로그는 서버가 동작할 때 서버의 상태와 동작 정보를 시간 경과에 따라 기록된 결과입니다. 로그는 시스템의 오류와 문제들을 쉽게 찾아낼 수 있도록 도와줍니다. 반면, 메트릭은 시스템의 성능과 상태에 대한 통계적인 정보를 의미합니다. 메트릭을 잘 수집하면 시스템의 현재 상태를 손쉽게 파악할 수 있고, 사업 현황에 관한 유용한 정보를 얻을 수 있습니다. 가령, 메트릭은 DAU, Retension, CPU 사용량, 메모리 사용량 등이 있습니다. 로그와 메트릭을 수집해 보신 적이 있나요? 🤔아래부터는 예시로 생각해주세요! 각자 진행하신 프로젝트 상황에 맞는 답변을 생각해 주세요. 😀스프링 부트 액추에이터를 사용해 메트릭을 생성하고 프로메테우스에 저장한 다음 그라파나로 시각화한 ..
JVM의 구조와 동작 원리JVM은 Java 애플리케이션을 실행하기 위한 가상 머신으로, OS와 독립적으로 동작하며 바이트코드(Bytecode)를 해석하고 실행하는 역할을 합니다.1. JVM의 주요 구성 요소JVM은 크게 다음과 같은 주요 컴포넌트들로 구성됩니다.Class Loader.class 파일을 로드하고, 메모리에 적재하는 역할로딩(Loading) → 링크(Linking) → 초기화(Initialization) 단계로 진행Lazy Loading 방식으로 필요할 때 클래스를 로드부모-자식 계층 구조를 가지며, Bootstrap ClassLoader → Extension ClassLoader → Application ClassLoader 순으로 동작Runtime Data Area (메모리 구조)JVM의..