반응형
1. Servlet, ServletContainer, ServletContext 1) ServletServlet은 웹에서 들어오는 요청을 자바로 처리해서 동적인 웹 페이지를 만들어주는 기술입니다.public class HelloServlet extends HttpServlet {}위와 같이 HttpServlet을 상속받아 구현됩니다.Servlet은 ServletConainer에 의해 관리되며 init() -> service() -> destroy()의 라이프싸이클을 가집니다.init(): Servlet이 초기화(new)될 때 호출됩니다.service(): 클라이언트의 요청을 처리하는 메서드입니다. 분기에 따라 doGet(), doPost() 등을 실행합니다.destroy(): Servlet이 종료될 때 ..
1. 리플렉션(Reflection)자바의 리플렉션은 런타임 시점에 클래스의 내부 구조(클래스, 메서드, 필드, 생성자 등)에 접근하고 조작할 수 있게 해주는 기능입니다. ExampleData exampleData = new ExampleData();// 일반적인 방법으로 메소드 호출exampleData.hello();// ReflectionClass dataClass = exampleData.getClass(); String methodName = "hello"; // 이부분에서 동적으로 수정가능Method helloMethod = dataClass.getDeclaredMethod(methodName);helloMethod.invoke(exampleData);위 코드는 자바 리플렉션을 사용하..
1. 로그(Log)로그(Log)는 프로그램이나 시스템이 실행되는 동안 발생하는 다양한 이벤트, 오류, 상태 정보를 기록하는 데이터입니다. 이를 통해 문제 해결, 성능 분석, 보안 감시 등에 활용할 수 있습니다. 하지만 로그를 사소한 것까지 모두 기록하면 어플리케이션 성능에 영향을 미치게 됩니다. 따라서 로그 메시지의 중요도와 우선순위에 따라 로그 레벨을 나누고 체계적으로 관리하는 것이 필요합니다. 1.1. 로그 레벨(Log Level) 이해하기 일반적으로 알려진 로그 레벨은 DEBUG, INFO, WARN, ERROR, FATAL 순으로, 순서대로 갈수록 로그 레벨이 높아집니다. 레벨이 높다는 의미는 시스템에 영향을 미치는 흔치 않은 문제나 비정상적인 상황을 나타내며, 중요한 조치가 필요한 상태를 ..
1. 문제 설명Springboot의 @RestController는 Jackson을 사용하여 객체를 JSON으로 자동으로 직렬화 시킵니다.(return 시점에)이때 직렬화 대상의 Domain이 연관관계가 있고 지연로딩을 사용한다면 다음과 같은 문제가 발생합니다. 예를 들어, 다음의 코드를 실행한다면@Getterpublic class Course { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long courseId; @Column(name = "title", length = 50) private String title; @ManyToOne(fetch = FetchType.LAZY) @JoinColu..
1. Hibernate 프록시 객체 JPA의 영속성 컨텍스트를 통해 User 정보를 조회할 때, 연관된 Team 정보도 함께 가져올 수 있습니다. 그러나 Team 정보가 당장 필요하지 않은 경우, 이를 지연 로딩(Lazy Loading) 방식으로 처리할 수 있습니다. 이때 Hibernate는 Team 객체 대신 프록시 객체를 반환하여 실제 데이터 조회를 필요 시점으로 지연시킵니다. getReference()를 통해 프록시 객체를 생성할 수 있습니다. 이 프록시 객체는 실제 엔터티를 상속하며, 필요한 시점에 실제 데이터를 조회합니다.User findUser = em.getReference(User.class, user.getId());System.out.println("class = " + findU..
| 내 블로그 - 관리자 홈 전환 |
Q
Q
|
|---|---|
| 새 글 쓰기 |
W
W
|
| 글 수정 (권한 있는 경우) |
E
E
|
|---|---|
| 댓글 영역으로 이동 |
C
C
|
| 이 페이지의 URL 복사 |
S
S
|
|---|---|
| 맨 위로 이동 |
T
T
|
| 티스토리 홈 이동 |
H
H
|
| 단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.