No | Questions | Answer |
---|---|---|
1 | JPA는 무엇인가? | JPA(Java Persistence API)는 Java 애플리케이션에서 데이터베이스를 객체 지향적으로 다룰 수 있도록 하는 ORM(Object-Relational Mapping) 표준 인터페이스입니다. |
기본적으로 SQL을 직접 작성하지 않고도 Entity와 데이터베이스 테이블을 매핑하여 데이터를 저장, 조회, 수정, 삭제할 수 있도록 도와줍니다. Spring Boot에서는 주로 Hibernate가 JPA의 구현체로 사용됩니다. | ||
JPA를 사용하면 자동 SQL 생성, 트랜잭션 관리, 지연 로딩(Lazy Loading) 지원 등의 기능을 활용할 수 있으며, SQL보다는 객체 중심적인 개발이 가능해 유지보수성이 향상됩니다. 하지만, 복잡한 쿼리는 최적화가 필요하고 학습 난이도가 있는 점이 단점입니다. | ||
즉, JPA는 객체와 관계형 데이터베이스를 매핑하여 SQL 없이도 직관적으로 데이터를 다룰 수 있도록 도와주는 기술입니다. | ||
2 | Spring Framework와 Spring Boot의 차이 | Spring Framework는 Java 애플리케이션 개발을 위한 핵심 프레임워크로, 의존성 주입(DI), AOP, MVC 패턴 지원 등을 제공하지만 설정이 복잡하고 많은 설정 파일(XML 또는 Java Config)이 필요합니다. |
반면, Spring Boot는 Spring Framework를 쉽게 사용할 수 있도록 자동 설정(Auto Configuration)과 내장 서버(Embedded Tomcat 등)를 지원하여 개발 생산성을 높인 프레임워크입니다. | ||
Spring Boot의 가장 큰 차이점은 설정이 간소화되어 별도의 XML 설정 없이 빠르게 애플리케이션을 개발하고 실행할 수 있다는 점입니다. 또한, spring-boot-starter-* 라이브러리를 제공하여 의존성 관리를 단순화하고, 단일 jar 파일로 실행할 수 있어 배포가 쉬운 장점이 있습니다. | ||
결론적으로, Spring Framework는 전통적인 방식으로 유연하지만 설정이 많고, Spring Boot는 자동 설정을 통해 개발과 배포를 간편하게 만든 프레임워크라고 할 수 있습니다. | ||
3 | Spring Web MVC의 Dispatcher Servlet의 동작 원리에 대해서 간단히 설명해주세요. | Spring Web MVC에서 DispatcherServlet은 Front Controller 패턴을 기반으로 동작하며, 모든 요청을 받아 적절한 컨트롤러로 전달하는 역할을 합니다. |
요청이 들어오면 DispatcherServlet은 다음과 같은 흐름으로 처리합니다. |
즉, DispatcherServlet은 Spring MVC의 중심에서 요청과 응답을 조율하는 역할을 하며, 컨트롤러와 뷰를 연결해주는 핵심 컴포넌트입니다. | | 4 | Spring Bean Life Cycle에 대해 설명해주세요 | Spring Bean Life Cycle은 Bean이 생성되고 소멸될 때까지의 과정을 의미하며, Spring 컨테이너가 이를 관리합니다.
초기화 및 소멸 단계에서 개발자가 개입할 수 있도록 여러 방법이 제공됩니다.
즉, Spring Bean은 컨테이너에 의해 생성부터 소멸까지의 과정을 거치며, 특정 단계에서 원하는 동작을 수행할 수 있습니다. | | 5 | filter와 interceptor의 차이 | Filter와 Interceptor는 클라이언트 요청을 가로채는 역할을 하지만, 동작하는 레벨과 목적이 다릅니다. Filter는 Servlet 레벨에서 동작하며, DispatcherServlet 이전에 실행됩니다.
Interceptor는 Spring MVC 레벨에서 동작하며, DispatcherServlet 이후에 실행됩니다.
즉, Filter는 보다 범용적으로 Servlet 수준에서 요청과 응답을 가로채고, Interceptor는 Spring MVC에서 컨트롤러 실행 전후의 로직을 처리하는 역할을 합니다. | | 6 | Dependency Injection (방법 3가지) | | | 7 | AOP로 실제 개발한 경험이 있다면 설명해주세요 | | | 8 | maven/gradle의 차이를 설명해주세요 . | | | 9 | 아파치, 톰캣은 각각 멀티 프로세스인가 멀티 쓰레드인가? · | | | 10 | Spring Security 인증은 어떻게 이루어지나요? | | | 11 | 객체지향에 대해서 설명해주세요. | | | 12 | DI 가 뭔지 DI와 객체지향관점을 연결지어서 말하시오. | | | 13 | IoC 컨테이너의 역할은 무엇이 있을까요? | | | 14 | JWT에 대해서 간단히 설명해주세요. | | | 15 | OAuth에 대해서 간단히 설명해주세요. | | | 16 | JWT와 OAuth의 차이는 무엇이 있을까요? | | | 17 | CORS란 무엇이며 이것에 대해서 설명해보세요. 그리고 CORS 에러를 해결한 경험이 있다면 알려주세요. | | | 18 | 인스턴스화 된다라는게 무슨의미인가요? | | | 19 | 제네릭에 대해서 설명해주세요. | | | 20 | 애노테이션에 대해서 설명해주세요. | | | 21 | POJO란 무엇인가요? Spring Framework에서 POJO는 무엇이 될 수 있을까요? | | | 22 | Refresh Token을 사용했을 때 보안에 어떤 점이 좋은지? | | | 23 | Autowiring 과정에 대해서 설명해주세요. | | | 24 | 인터페이스와 추상클래스의 차이점에 대해 설명해주세요. | | | 25 | RESTful이란 무엇이며, 이것에 대해서 아는대로 설명해보세요. | | | 26 | HTTP 메서드와 이것이 하는 역할에 대해서 설명해보세요. | | | 27 | 대용량 트래픽에서 장애가 발생하면 어떻게 대응할 것인가요? | | | 28 | 싱글톤 패턴에 대해서 설명해주세요. | | | 29 | TDD를 알고 있나요? TDD에 대해서 어떻게 생각하나요? | | | 30 | N + 1 문제가 발생하는 이유와 이를 해결하는 방법을 설명해주세요. | | | 31 | String과 StringBuffer에 차이점이 무엇인가요? | | | 32 | MVC에 대해서 설명해주세요. | MVC(Model-View-Controller)는 애플리케이션의 역할을 세 가지로 분리하는 아키텍처 패턴입니다.
Spring Boot에서는 DispatcherServlet이 요청을 받아 적절한 컨트롤러에 전달하고, 컨트롤러는 Service와 Repository를 통해 데이터를 처리한 후, View 또는 JSON 응답을 반환하는 방식으로 동작합니다. MVC 패턴의 장점은 역할 분리로 인해 유지보수가 용이하고 확장성이 뛰어나다는 점입니다. 하지만 구조가 복잡해질 경우 오버헤드가 발생할 수 있습니다. Spring에서는 REST API를 제공할 때 @RestController를 활용하여 View 대신 JSON 형태로 데이터를 반환하는 방식도 많이 사용됩니다. | | 33 | JPA에서 Entity를 설계할때 주의점을 말해주세요. | | | 34 | 데이터베이스에서 인덱스를 사용하는 이유 및 장단점에 대해 설명해주세요. | | | 35 | 트랜잭션에 대해서 설명해주세요. | | | 36 | 배열과 링크드 리스트의 차이를 설명해주세요. | | | 37 | JOIN에 대해서 설명해주세요. | | | 38 | RDBMS vs NOSQL에 대해서 설명해주세요. | | | 39 | 오버라이딩과 오버로딩이 무엇이며 어떤 차이가 있을까요? | | | 40 | 즉시 로딩과 지연 로딩의 차이 | | | 41 | WAS와 WS의 차이 | | | 42 | Call By Value와 Call By Reference 차이 | | | 43 | http VS 웹소켓 차이? | | | 44 | HATEOAS 란 무엇인가? | | | 45 | 가비지컬렉터는 무엇인가? | | | 46 | 메모리에서 힙영역과 스택영역은 무엇인가? | | | 47 | 자바 메모리에서 메소드영역은 무엇을 하는지? | | | 48 | 자바의 최상위 부모클래스가 무엇인지? | | | 49 | 직렬화(serialization)란? | | | 50 | final / finally / finalize() 차이는 무엇인가요? | |