WebServer란? WebServer의 예시로는 Apache, NginX등이 있다. 클라이언트의 요청에 따라 HTML, CSS, JS, 이미지 파일 같은 정적파일을 응답하여 제공하는 소프트웨어를 말한다. HTTP프로토콜을 사용하여 클라이언트와 통신한다. Was란?(Web Application Server) Tomcat, JBoss, WebSphere등이 있다. 클라이언트의 요청에 따라 동적인 처리를 담당하는 영역. 로직을 실행한다. 요청의 흐름 WebServer와 Was를 나누는 이유 1. WAS의 부담을 줄여주기위해. 로직을 처리하는 WAS는 그 자체만으로도 할게 많다. 정적파일과 동적파일을 분리함으로써 부담을 줄일 수 있다. (최근에는 WAS의 기능이 좋아져서 굳이 나누지 않아도 되지만, 2, 3의..
SpringBoot 3.0의 개선사항 언젠가부터 Spring Initializr에서 spring 3.0부터만 지원하게 되었다... 그래서 이번 포스트에서는 springboot 3.0에 대해서 알아보도록 하겠다. 참고로 springboot는 java 17이상을 지원하기때문에, java17의 다른점을 알고 싶은 분들은 아래 링크 클릭! 2024.01.11 - [java] - [java] java 17의 새로운 점들! [java] java 17의 새로운 점들! java17 & SpringBoot3.0 2021년 9월 java 17이 새로 나왔다 (LTS버전 - Long-term support) java 11과 비교해서 70가지 이상의 JEP가 더 추가되었다고 한다. *JEP : JDK 개선제안, JDK Enh..
java17 & SpringBoot3.0 2021년 9월 java 17이 새로 나왔다 (LTS버전 - Long-term support) java 11과 비교해서 70가지 이상의 JEP가 더 추가되었다고 한다. *JEP : JDK 개선제안, JDK Enhancement Proposals SrpigngBoot 3.0부터는 JDK 17 이상을 지원한다. 그리고 이제 spring initializr에서 boot 3.0부터 지원한다!!! 그래서 java 17과 springboot 3.0에 대해서 살펴보려고 한다. java17의 주요 개선사항 Collection Factory Method강화 Var keyward 등장 String에 신규 메소드 추가 텍스트 블록 기능 추가 Switch표현식 기능향상 Record D..
Variable used in lambda expression should be final or effectively final 아래와 같이 java 코드를 작성하면 intellij에서 오류를 뱉으며 컴파일되지 않는다. int number = 1234; number = 2; Runnable r = () -> System.out.println(number); 결론부터 말하면, 람다에서는 파라메터가 아닌 외부 변수(free variable, 자유변수)를 사용 할 수 있다. 단, 지역변수는 final이거나 final처럼 사용되어야한다.(effectively final) 그 이유를 알아보자. 변수 변수에는 클래스변수, 인스턴스 변수, 지역변수가 있다. public class test { int iv; // 인스..
Could not locate appropriate constructor on class ... 이러한 에러가 날 때 주요 이유 1. nativeQuery를 써줬는지 확인 @Query(nativeQuery = true) //써줬는지 확인 List getFacilityNativeQuery(); 2. xml로 사용하는경우 application.yml에 xml매핑을 해줬는지 확인 jpa: mapping-resources: - query/named-native-query-sample.xml //확인 3. DTO매핑 맞는지 확인 //패키지 맞는지 확인 //순서대로 써져있어야 함. //Entity의 타입이 아닌, DB의 타입과 맞아야 함 4. Column의 순서가 DTO의 순서와 맞는지 확인 DTO의 constru..
QueryDSL이란? QueryDSL은 오픈소스 프로젝트로 처음에는 HQL을 코드로 작성해줄 수 있는 프로젝트로 시작해서 지금은 JPA, JDO, JDBC, Lucene, Hibernate Search, mongoDB, 자바 컬렉션 등 다양하게 지원한다. JPQL과 달리 문자가아닌 코드로 작성하므로 오류를 덜 수 있고, Criteria보다는 덜 복잡하다는 장점이 있다. http://querydsl.com/static/querydsl/3.6.3/reference/ko-KR/html_single/ Querydsl - 레퍼런스 문서 본 절에서는 SQL 모듈의 쿼라 타입 생성과 쿼리 기능을 설명한다. com.mysema.query.sql.Configuration 클래스를 이용해서 설정하며, Configurati..
Spring Data Jpa는 왜 interface만 생성해줘도 작동하는지에 대한 궁금증이 생겼다. 일단 먼저 spring data jpa의 기본적은 사용법부터 잠깐 보자. Spring Data Jpa사용법 interface JpaRepository를 extends받아서 새로운 interface를 만들어 사용한다. public interface CrudRepository extends Repository { //Repository는 marker repository //CrudRepository는 기본적인 CRUD내용을 담고있음 public interface PagingAndSortingRepository extends CrudRepository {...} //PagingAndSortingRepositor..
Swagger가 뭐지? 우리는 보통 swagger와 swagger-ui를 헷갈린다. 사실 swagger에서는 다양한 툴을 제공하는데, swagger-hub(깃헙처럼 다양한 api를 확인할 수 있다), swagger-ui 등을 제공한다. swagger-ui를 우리는 보통 swagger라고 부르기도 한다. swagger는 open api specification과 연관되어있다. Oepn Api Specification(OAS)는 Restful API를 위한 표준이다. Swagger Specification이라고도 하는 것 같다. Swagger는 이 표준을 준수해서 API를 만들고 소스코드 없이 이해 가능하도록 시각화하는 툴을 제공한다. 그것이 바로 swagger-ui이다. swagger는 기술의 제약을 받지..