[면접스터디] 6주차 11/02 수

Hyeseong Kim·2022년 11월 2일
0

스터디

목록 보기
6/8

1. 4차 산업혁명의 다양한 디지털 기술 중 핵심 기술은 무엇이라고 생각하나요? 그렇게 생각한 이유는?

  • 인공지능, 빅데이터, 블록체인, IoT

2. MSA에 대해 설명하시오

MSA(MicroService Architecture)란 각각을 마이크로하게 나눈 독립적인 서비스를 연결한 구조를 말하며, 이러한 특성 덕분에 시스템 전체의 중단 없이 필요한 부분만 업데이트, 배포가 가능합니다. 유연한 대응이 가능해 실시간으로 요구사항을 반영할 수 있습니다.

  • 단점
    • 일반 개발보다 복잡하다 각각 독립적인 서비스로 이루어져 있기 때문에 모듈의 인터페이스를 신중하게 처리해야 하고 제약도 많다.
    • 분산된 서비스마다 분리된 DB의 트랜잭션 관리도 신경 써야 한다.
    • 데이터베이스를 얼마나 할당해야 하는지, 배포할 때 각 서비스 간의 충돌이나 문제가 없는지 미리 확인해야한다.

3. Java 메모리 구조에 대해 설명해보세요

자바의 메모리는 Class Area(Method Area), heap, stack으로 이루어져 있습니다. 클래스 영역에는 static 변수, 전역 변수, 코드에서 사용되는 클래스 정보들이 올라갑니다. 코드에서 사용되는 클래스들을 로더가 읽고 클래스 별로 분류해서 저장합니다. 힙은 new 연산자를 통해 동적할당된 객체들이 저장되고, 메모리는 가비지 컬렉션에 의해 관리됩니다. 스택은 메서드 수행 시마다 프레임이 할당되어 메서드 수행에 필요한 변수(로컬변수)나 중간 결과 값을 임시 기억합니다. 메서드가 종료될 경우에 할당된 메모리가 자동 제거됩니다.

자바의 컴파일 과정

자바의 프로그램이 실행되면 JVM 은 OS로 부터 이 프로그램이 필요로 하는 메모리를 요청하여 할당받습니다. JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리합니다.
자바 컴파일러가(javac) 자바 소스코드를(.java) 를 읽어들여 바이트코드(.class) 로 변환(아직 컴퓨터가 이해할 수 없는 상태입니다. 바이트 코드는 인간이 보기 편한 형태입니다.)시킵니다.
Class Loader 를 통해 class 파일들을 JVM 내부로 로딩합니다.
로딩된 class 파일들은 실행 엔진(Execute Engine)을 통해 기계어(컴퓨터가 알아들을 수 있는 언어)로 해석됩니다.
해석된 바이트 코드는 메모리 상(Runtime Data Area)에 배치되어 실질적인 수행을 하게됩니다.
이런 실행과정 중에 JVM은 Thread Synchronization 이나 GC(Garbage Collection) 같은 작업을 수행하게 됩니다.

4. 데이터베이스 튜닝과 방법

DB 튜닝은 데이터베이스의 구조나 데이터베이스 자체, 운영체제 등을 조정하여 데이터베이스 시스템의 성능을 향상시키는 작업을 의미합니다. 튜닝은 DB 설계 튜닝 -> DBMS 튜닝 -> SQL 튜닝의 단계로 진행할 수 있습니다.

0개의 댓글