Skip to content

Backend-Core-Lab/Backend-Core-Study-1th

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 

Repository files navigation

Backend-Core-Study-1th

☕️ Java

JVM

  1. Java 파일이 실행되는 과정을 설명해주세요
  2. JVM의 구조에 대해 설명해주세요
  3. JVM이란 무엇이고 왜 사용하나요?
  4. 클래스와 인스턴스는 JVM내에서 어떻게 동작하나요?
  5. JVM의 ClassLoader에 대해 설명해주세요
  6. JVM의 Runtime Data Area에 대해 설명해주세요
  7. 클래스의 생명주기에 대해서 설명해주세요
  8. OutOfMemoryError와 StackOverFlowError는 언제 발생하나요??

GC

  1. GC가 무엇이고 왜 필요한지 설명해주세요.
  2. Major GC와 Minor GC에 대해 설명해주세요.
  3. Stop the world 이벤트가 무엇인지 설명해주세요.
  4. GC 튜닝은 왜 필요한지, 어떤 방법으로 하는지 설명해주세요.

🔍 Test

  1. AssertJ란 무엇이며, JUnit과 AssertJ를 함께 사용하는 이유를 말씀해주세요.
  2. 단위테스트에서 AAA는 무엇을 의미하나요?
  3. Spring Context 캐싱의 원리를 알려주세요
  4. 팀에서 어떤 방식으로 테스트를 작성했나요?

FIRST 원칙

  1. FIRST 원칙이란 무엇이며, 각각의 원칙을 설명해 주세요.
  2. 단위 테스트를 작성하는 데에 FIRST원칙이 중요한 이유를 설명해주세요.
  3. FIRST 원칙 중 가장 중요하다고 생각하는 원칙이 무엇인가요?

테스트 더블(Test Double)

  1. 테스트 더블이란 무엇이며 종류로는 무엇이 있나요?
  2. 각 종류의 테스트 더블(Stub, Fake, Dummy, Spy ,Mock)은 언제 사용하나요?
  3. 테스트 더블 중 Stub과 Mock 차이를 설명해주세요.
  4. 테스트 더블 중 Spy는 어떤 상황에서 사용되나요?

Mockito

  1. 자바의 Mockito 라이브러리에 대해서 설명해주세요.
  2. Mockito 라이브러리에서 각 테스트 더블 방식을 사용하는 방법은 무엇인가요?

🍃 Spring

Bean

  1. 스프링의 Bean이란 무엇이고 Bean은 어떻게 정의되고 관리됩니까?
  2. 스프링에서 Bean의 생명주기에 대해 설명해주세요
  3. 스프링에서 Bean의 스코프(scope)는 어떤 것들이 있으며, 각각의 의미에 대해 설명해주세요
  4. @Component, @Service, @Controller, @Repostiory의 차이를 설명해보세요
  5. Bean 의존성 주입 방법은 어떤것들이 있나요?
  6. @Bean과 @Component의 차이와 언제 사용하는 것이 좋을까요?
  7. @Controller와 @RestController의 차이는?
  8. 스프링에서 Bean의 스코프(scope)는 어떤 것들이 있으며, 각각의 의미에 대해 설명해주세요.

DispatcherServlet

  1. DispatcherServlet이란 무엇이고, 왜 사용하나요?
  2. DispatcherServlet이 요청을 처리하는 흐름을 설명해 주세요.
  3. HandlerAdapter를 사용하는 이유는 무엇인가요?

Interceptor / Filter

  1. Filter, Interceptor에서 각각 어떤 로그를 찍을까요?

Transaction

  1. @Transactional 어노테이션에 대해 설명해주세요.
  2. @Transactional 어노테이션 외에 트랜잭션을 구현하는 방법은?
  3. @Transactional 어노테이션의 동작 원리에 대해 설명해주세요.
  4. 선언적 트랜잭션 방식을 사용하는 이유는 무엇인가요?
  5. @Transactional 어노테이션으로 트랜잭션이 적용되지 않는 경우는?
  6. Transactional은 모든 예외에 대해서 트랜잭션이 롤백되나요?
  7. @Transactional의 readOnly 옵션을 true로 설정하는 이유는 무엇인가요?
  8. Transactional 설정이 readOnly=true 임에도 flush가 발생하는 경우는?
  9. Transactional의 전파에 대해 설명해주세요.

🗄️ Database

Transaction

  1. 트랜잭션이란 무엇인가요?
  2. 트랜잭션의 ACID에 설명해주세요.

격리 수준 (Isolcation Level)

  1. 트랜잭션 격리 수준이 무엇인가요? 어떤 격리 수준이 있나요?
  2. 트랜잭션 격리 수준이 낮을 때 발생할 수 있는 문제는 무엇인가요?
  3. 트랜잭션 격리 수준을 변경해야하는 경우는 무엇이 있을까요?
  4. 애플리케이션 레벨에서 PHANTOM READ를 방지할 수 있는 방법은?
  5. MySQL에서 격리 수준이 REPEATABLE READ임에도 Phantom Read가 발생하지 않는 이유는?

Lock

  1. 데이터베이스에서 S-lock과 X-lock에 대해 설명해주세요
  2. MySQL에서 사용되는 락에 대해 설명해주세요
  3. 2단계 락킹이란 무엇인가요?
  4. MVCC란 무엇이고, 락과는 어떤 차이가 있나요?
  5. 데드락이란 무엇이며, DB에서는 어떻게 해결하거나 예방할 수 있나요?
  6. 낙관적 락과 비관적 락의 차이점은 무엇인가요?
  7. 비관적 락을 걸 때 주의 사항은?
  8. 분산 잠금이란 무엇이고, 언제 사용하는 것이 좋을까요?

Index

  1. 인덱스란 무엇인가요?
  2. 인덱스에서 사용하는 자료구조를 설명해주세요.
  3. B-Tree와 B+-Tree의 차이점은?
  4. 복합 인덱스를 설정할 때 성능에 영향을 미치는 요소에 대해 설명해주세요.
  5. 인덱스가 존재함에도 불구하고 쿼리에서 사용되지 않는 경우를 설명해주세요.
  6. 데이터베이스 쿼리가 여러 개의 인덱스를 사용할 수 있는 경우, 어떤 기준으로 인덱스가 선택되나요?
  7. 실행 계획 분석 방법을 알려주세요.

파티셔닝/샤딩

  1. 파티셔닝과 샤딩에 대해서 설명해주세요.
  2. 파티셔닝과 샤딩을 각각 어떤 데이터에 적용하면 좋을까요?

파티셔닝

  1. 파티셔닝 키를 선택하는 기준을 설명해주세요.
  2. 파티션 프루닝이란 무엇인가요?

🔗 JPA

  1. EntityManagerFactory와 EntityManager의 차이점은 무엇인가요?
  2. 영속성 컨텍스트란 무엇이며, 그 역할은 무엇인가요?
  3. 영속성 컨텍스트는 언제 생성되고 종료되나요?
  4. 영속, 준영속, 비영속의 차이점을 말해주세요.
  5. 1차 캐시, 2차 캐시에 대해 설명해주세요.
  6. 영속성 컨텍스트를 통해 얻을 수 있는 이점에 대해 설명해 주세요.
  7. Flush와 Clear의 차이점은 무엇인가요?
  8. 영속성 컨텍스트는 언제 자동으로 플러시되나요?
  9. 지연 로딩 예외가 발생하는 경우와 해결 방법은 무엇인가요?
  10. IDENTITY, SEQUENCE, TABLE ID 전략의 차이와 각각 어느 상황에서 사용하는지 설명해주세요.
  11. IDENTITY ID 생성 전략이 쓰기 지연이 안되는 이유가 무엇인가요?

🐱 Tomcat

동시성

  1. 동시성 문제란 무엇이며 왜 발생하나요?
  2. Race Condition이란 무엇이며 언제 발생하나요?
  3. 스레드 안전(Thread-Safety)이란 무엇이며, 이를 지키기 위한 4가지 원칙으로 무엇이 있나요?
  4. volatile 키워드에 대해서 설명해주세요
  5. Java의 synchronized 키워드는 어떻게 작동하나요?
  6. Atomic객체와 그 원리에 대해서 설명해주세요
  7. Deadlock(교착 상태)이란 무엇이며, Java에서 이를 어떻게 방지할 수 있나요?
  8. Java에서 동시성을 보장하기 위해 어떠한 해결책들이 존재하는지 설명해주세요

🛜 Network

TCP/IP

  1. TCP와 UDP의 가장 큰 차이점은 무엇이고, 각각 언제 사용하나요?
  2. TCP는 신뢰성을 어떻게 보장하나요?
  3. UDP가 TCP보다 빠른 이유는 무엇인가요?
  4. QUIC는 어떻게 신뢰성을 보장하나요?

HTTP/HTTPS

  1. HTTP/1.1의 성능 한계는 무엇인가요?
  2. HTTP/2는 HTTP/1.1의 어떤 문제를 해결했나요?
  3. HTTP/3는 왜 TCP가 아니라 QUIC(UDP 기반)를 사용하나요?
  4. HTTPS는 HTTP에 무엇을 추가한 것인가요?
  5. HTTPS 통신 과정(핸드셰이크)을 설명해보세요
  6. HTTPS에서도 패킷을 가로채면 내용을 볼 수 없나요?

👥 Member

kysub99 Avatar Sung-june27 Avatar phk1128 Avatar
kysub99 Sung-june27 phk1128

About

Backend-Core-Study-1th

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors