" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스들어가며본 글은 JPA 엔티티에서 연관관계를 지정하는 @ManyToOne 과 @OneToMany 사용법에 대해 다루고 있습니다.연관관계에 대한 개념적인 내용은 생략되었으며 사용법만을 주로 다루고 있습니다. 연관관계 주인외래키를 가진쪽이 주인이다.1:N 관계라면 N쪽이 외래키를 가지므로 주인이다.@ManyToOne + @JoinColumn1:N 관계에서 "N" 쪽에 사용하는 어노테이션@ManyToOne을 사용하는 엔티티가 연관관계의 주인이라고 할 수 있습니다.일반적으로 @JoinColumn 어노테이션과 함께 사용됩니다.@JoinColumn 어노테이션은 외래키 컬럼명(name = "xx_id")을 명시해줍니다.fetch = Fetc..

HTML 삽입 미리보기할 수 없는 소스 기존에 알고 있던 스프링 구조 스프링 콘텍스트 밖에서 필터를 거친 후, 디스패쳐 서블릿(프런트 컨트롤러)이 컨트롤러들에게 요청을 위임하는 방식 의문점 우리는 스프링 시큐리티를 사용하면서 스프링 컨텍스트 내부에서 필터를 등록해 사용하는데, 어떻게 스프링 컨텍스트에 도달하기 전에 필터를 거칠 수 있는걸까? DelegatingFilterProxy 현재 필터체인은 크게 2가지가 존재한다. 서블릿 컨테이너의 필터체인 스프링 컨테이너의 필터체인 과거에는 필터는 서블릿 컨테이너에만 존재했으며, 필터를 스프링 컨테이너에서 관리할 수 없었다. 그러나, DI와 같은 기술들이 필터에서도 필요해지면서 DelegatingFilterProxy라는 프록시 호출용 필터를 지원하기 시작하였다. ..
HTML 삽입 미리보기할 수 없는 소스 자바 버전을 명시해야 하는 이유 자바 또는 스프링을 이용한 프로젝트를 진행하다보면 다른사람과 협업하는 경우가 반드시 생긴다. 이 때, 서로 사용하는 Java의 버전이 다르면 컴파일, 빌드 과정에서 오류가 빈번히 발생할 것이다. 이 경우에, 빌드도구인 Gradle의 설정을 통해 Java의 버전을 명시해 줄 수 있다. sourceCompatibility & targetCompatibility 먼저, sourceCompatibility와 targetCompatibility를 사용하는 방법이 있다. sourceCompatibility는 프로젝트에서 사용되는 Java의 문법을 해당 버전으로 제한한다. build.gradle에 sourceCompatibility = '17'와..

HTML 삽입 미리보기할 수 없는 소스 ApplicationContext Spring 프레임워크의 핵심 개념이며, 스프링에서 사용하는 수많은 Bean들을 등록, 관리, 제공하는 IoC Container의 역할을 수행한다. ApplicationContext는 BeanFactory를 상속받아 BeanFactory의 기능(Bean 관리/검색 등) 및 추가적인 기능을 정의해놓은 인터페이스이다. 실제 환경에서는 Tomcat이 Servlet Container 역할을 하는 것처럼, ApplicationContext(의 구현체)가 Spring Container 로써 동작한다. 따라서 ApplicationContext 는 처음 스프링 애플리케이션이 실행될 때, Bean의 설정정보를 읽어오고, 이를 인스턴스화 하여 등록하..

HTML 삽입 미리보기할 수 없는 소스 Web Server 웹 서버란, Client의 요청에 따라서 알맞은 응답을 반환하는 주체이다. 일반적으로 HTTP 또는 그 외의 프로토콜(SMTP, FTP …)을 사용하여 Client와 통신하며, 주로 HTML 문서나 JavaScript 파일 등을 클라이언트에게 전송하게 된다. 대표적인 Web Server 프로그램에는 Apache, Nginx 등이 있다. 웹서버와 클라이언트의 통신과정을 개략적으로 표현해보자면 다음과 같다. 이처럼 Web Server는 요청에 따라서 정적인 데이터를 클라이언트에게 제공하게 된다. 그러나 정적인 데이터를 제공하는 웹 서버만으로는, 동적으로 작동하는 웹 페이지를 서비스하기가 어렵다. 예를 들어, 로그인한 사용자의 이름에 따라 “Welco..
설명 JAVA의 Arrays.sort() 또는 Collections.sort() 메소드를 사용할 때, 정렬 기준을 상황에 맞게 바꾸고 싶은 경우가 있다. 이런 경우 Comparable.compareTo 메소드를 오버라이딩 하거나 Comparator.compare 메소드를 오버라이딩해 정렬 방식을 변경 할 수 있다. 이 글에서는 Comparator.compare 메소드를 오버라이딩 하는 방법에 대해 다뤄보고자 한다. 방법 Arrays.sort(dungeons, new Comparator(){ @Override public int compare(int[] arr1, int[] arr2) { return arr1[0] - arr2[0]; } }); 위처럼 new 키워드로 생성한 Compartor 익명 객체를 ..