전체 글35 Jakarta Servlet을 알아보자 다음 내용은 Jakarta EE에서 제공하는 공식 튜토리얼 문서, 그리고 Jakarta Servlet 6.1 문서를 바탕으로 작성되었음을 알립니다. 서블릿은 HTTP 응답을 자바 객체로 받고 반환하는 프레임워크이다. 서블릿은 `jakarta.servlet`에 있는 `Servlet` 인터페이스를 반드시 상속하여야 한다. `GenericServlet`은 `Servlet`의 기본 구현체이며, `HttpServlet`이 이를 상속하고 있다. 서블릿 컨테이너는 웹 서버 또는 웹 앱 서버의 일부로, 서블릿을 관리하고, 요청과 응답을 가공하여 서블릿으로 넘겨주고 받는 역할을 한다. Jakarta Servlet에는 Filter가 존재하며, ServletRequest 등이 서블릿을 향하기 전 Filter를 먼저 거치게 .. 2025. 5. 12. Jakarta EE를 알아보자 Jakarta EE는 자바 엔터프라이즈 에디션으로, 서버 개발 플랫폼이다. 2017년 자바 8 발표 이후 오라클 사에서 Java EE 개발을 이클립스 재단으로 이관했으며, 이클립스 사에서 Java EE를 Jakarta EE로 개명하고 이어서 명세를 개발하고 있다. Jakarta EE는 다양한 명세를 가지고 있다. Servlet, JSP, JPA 외 기타 등등 기능 각각의 명세가 존재하며, 이 기능들을 모아 플랫폼, 그리고 프로파일이라는 이름의 명세 모음을 제시하고 있다. 기능 명세 대부분을 모은 것을 Platform이라고 부르며, 웹의 주요 기능을 모은 것을 Web Profile, 핵심적인 웹 기능만을 모아둔 것을 Core Profile이라고 부른다. Jakarta EE는 단순히 명세이며, 이를 구현한 .. 2025. 5. 10. JDK를 공부하는 법을 알아보자 openjdk.org의 JDK 문서 또는 oracle의 JDK 문서에서 각 버전 별 신규 기능이 무엇이 있는지 확인할 수 있다. JEP에 포함되지 않은 추가 기능들은 오라클 측의 문서에서 확인할 수 있다. 신규 기능은 JEP를 통해 확인할 수 있으며, Preview가 붙은 JEP는 아직 성숙하지 않은 기능들을 의미한다. 이 프리뷰 기능들을 통해 앞으로 JDK에 어떤 새로운 기능들이 추가될 것인지 확인할 수 있다. JEP는 Java Enhancement Proposal, 즉 자바 개선 제안으로, 앞으로 추가됐으면 하는 기능들을 제시하는 곳이다. 그 외 기타 확인하기 좋은 사이트들을 하단 링크에 추가해뒀다. 참고자바 뉴스레터 - https://inside.java자바 유튜브 - https://www.yout.. 2025. 5. 9. Jakarta Persistence를 알아보자 Jakarta Persistence는 Jakarta EE에서 내는 공식 자바 EE 명세서 중 하나다. 그 중 ORM과 관련한 명세를 가리킨다. 명세에 대한 내용은 다음 문서에서 확인할 수 있다. 스프링을 사용하고 있다면 한 번쯤은 접해봤을 Spring Data JPA에서 사용하는 `@Entity`, `@Id` 따위가 해당 명세서를 기반으로 구현된 내용이다. 구현체는 Hibernate 사에서 구현했으며, 스프링 생태계에서 해당 구현체를 활용하여 내부를 구성하고 있다. 본디 Jakarta Persistence에서 엔티티를 관리하기 위해선 `EntityManager`라는 인터페이스를 통해 엔티티를 관리하나, Spring Data 측에서는 `CrudRepository` 등의 인터페이스로 리포지토리를 추상화해두고.. 2025. 5. 9. 스프링 프레임워크 `@Async`를 알아보자 @Async를 사용하면 해당 메소드는 비동기로 실행이 된다. 반환값이 void거나, Future인 경우에만 비동기가 적용되며, 그 외의 경우에는 비동기로 실행되지 않고 무시된다. 스프링 프레임워크에서 제공하는 ListenableFuture와 Java 8 이후에서 제공하는 CompletableFuture도 비동기를 제공한다. 아래는 예시 코드이다.@Servicepublic class VirtualService { private final Logger logger = LoggerFactory.getLogger(VirtualService.class); @Async public CompletableFuture DoSomething(int n) throws InterruptedException {.. 2025. 5. 6. 이전 1 ··· 3 4 5 6 다음