
ResourceLoader는 Spring Boot에서 resources 폴더 아래에 있는 리소스 파일을 읽어오기 위해 사용하는 클래스 입니다. 아래와 같이 classpath:로 경로를 입력하면 해당 경로에 있는 리소스를 읽어오고 Resource 객체로 full path까지 가져올 수 있습니다. ResourceLoader resourceLoader; Resource resource = resourceLoader.getResource("classpath:" + schemaFilePath); resource.getURI().getPath(); 여기서 classpath: 는 target의 classes를 root로 하는 경로 입니다. chemaFilePath는 schema/ParquetSchema 값을 넣어주면..
목차 호스트 파일을 작성하다 보면 간혹 안되는 경우가 있어 삽질을 하는 경우가 많습니다. 별것 아니지만 이게 한번 삽질을 하다보면 시간을 엄청 소진하게 됩니다. 이런 삽질을 최소화 하기위해 호스트 파일 규칙에 대해 알아보도록 하겠습니다. 1. 호스트 이름 규칙 호스트 이름에는 영문자, 숫자(0 ~ 9), 하이픈('-') 문자만 사용할 수 있습니다. 호스트 이름의 첫 문자에는 하이픈을 사용할 수 없습니다. 호스트 이름의 마지막 문자로 하이픈을 사용할 수 없습니다. 2. 호스트 개수 제한 hosts파일에는 IP 주소 하나에 여러 호스트 이름( alias )를 지정할 수 있습니다. 이때 제약사항이 있는데 운영체제에 따라 다릅니다. 2.1 MAC 한줄에 1021 문자를 사용 할 수 있고, 한 IP 주소에 최대 ..

목차 1. Mac local IP 주소 확인 MAC 터미널에서 ifconfig 명령으로 IP 주소를 확인합니다. 6번째 줄에 192.168로 시작하는 주소가 로컬 IP 주소입니다. 2. 윈도우 hosts 파일 수정 hosts 파일을 수정하기 위해 메모장을 "관리자 권한으로 실행" 합니다. C:\Windows\System32\drivers\etc에 있는 hosts 파일을 엽니다. hosts 파일의 마지막 줄에 Mac 로컬 IP 주소와 host 이름을 원하는 대로 지정합니다( machost ) 3. DNS 캐시 삭제 수정한 hosts 파일을 바로 적용할 수 있도록 DNS 캐시를 삭제합니다. 4. MAC 로컬 서버 접속 앞서 저장한 host 이름으로 MAC 로컬에 수행되고 있는 서버에 접속합니다. ( host..

목차 Network 탭 Frontend의 통신 부분을 디버깅을 하기 위해 Network 탭을 많이 사용합니다. Chrome 맞춤 설정 및 제어( 우측 상단 점 3개짜리 아이콘 ) > 도구 더 보기 > 개발자 도구 메뉴에 들어가면 Network 탭을 확인할 수 있습니다. Network 탭에서는 아래와 같이 브라우저에서 주고받는 Transaction 들을 보여줍니다. 각 Transaction이 언제 보내졌고 언제 응답이 왔으며 요청, 요청 응답의 여러 정보를 보여줍니다. 그리고 요청을 보다 보면 Frontend 단에서 병렬로 여러 요청을 보냈음에도 많은 요청들이 회색으로 표시된 것처럼 대기하다가 앞선 요청들이 처리되고 난 뒤에야 이후의 요청들이 순차적으로 발송되는 것을 확인할 수 있습니다. Stalled 그..
JUnit에서 Repository 테스트를 하기 위해, @SprintBootTest 대신에 @DataJpaTest 를 사용하여 테스트 코드를 작성 중인데 h2 대신에 실제 DB를 연동하려고 하지만 막상 실행해보면, h2 데이터베이스에 계속 연결이 되는 것을 보게 됩니다. 그래서 db 관련 profile이 의도한 대로 적용이 안되나 싶어서 mysql을 위한 profile도 활성화를 해보았지만 항상 h2 데이터베이스로 연결을 합니다. 2021-10-15 12:22:29.402 INFO [-] [main] a.m.s.SegmentBrowserApplicationTests : The following profiles are active: mysql-default-db 2021-10-15 12:22:30.390 ..
목차 select절에 조회 대상을 지정하는 것을 프로젝션 이라고 합니다. 프로젝션을 하는 여러 방법에 대해서 알아보도록 하겠습니다. 전체 또는 일부 컬럼 Projection QMember member = QMember.Member; List result = jpaQueryFactory.select(member) .from(member) .fetch(); List result = jpaQueryFactory.select(member.name) .from(member) .fetch(); List result = jpaQueryFactory.select(member.name, member.addr) .from(member) .fetch(); fetch의 리턴 타입이 List 타입 이기 때문에 select에 넘..
목차 Query 클래스 쿼리를 작성하기 이전에 몇 가지 인터페이스와 클래스에 대해 간단히 살펴보겠습니다. JPQLQuery 인터페이스는 JPQL 쿼리를 위한 Query 인터페이스이며, JPAQuery 클래스는 JPQLQuery 인터페이스를 구현한 클래스이며, 쿼리를 작성하고 실행하는 역활을 합니다. JPAQueryFactory도 JPAQuery를 생성해주는 factory클래스입니다. 결국은 JPAQuery를 사용하든, JPAQueryFactory를 사용하든 JPAQuery를 사용하는건 마찬가지 이지만, JPAQuery를 생성할 때 누가 더 간략하나 정도의 차이가 있어 코드 가독성 측면에서 Factory를 사용하는 것이 더 좋고, 많은 snippets 코드들이 Factory를 사용하므로 Factory를 사..
목차 QueryDSL 이란? QueryDSL은 비표준 오픈소스 프레임워크로 JPQL을 편하게 작성하도록 도와주는 빌더 클래스 모음 입니다. 코드기반이고, 단순하여 가독성이 좋아 사용하기가 좋습니다. 그리고 컴파일 시점에 오류 발견이 가능하고, 자동완성도 지원하여 실무에서 JPA 사용시 많이 사용되고 있는 프레임워크 입니다. 대부분의 쿼리를 QueryDSL로 작성할 수 있지만 JPQL에서 지원하지 않는 쿼리는 QueryDSL에서 작성할 수 없습니다. 예를 들어, UNION을 지원하지 않고 FROM 절에 서브쿼리를 지원하지 않습니다. 그래서 간혹 JPQL로 간단하게 쿼리를 작성할 수 있는 부분을 QueryDSL로 추가 작업을 통해서 구현하기도 합니다. QueryDSL 구현 Spring Data JPA에서 Q..
목차 1. GET 요청 1.1 단일, 복수 파라메터 @GetMapping(path = "/search") public ResponseEntity search(@RequestParam(name = "q") String queryText, @RequestParam(required = false) String mode){ return ResponseEntity.ok( searchService.search(queryText, mode) ); } GET /search?q="home"&mode="quick" 와 같이 값을 받는 컨트롤러 입니다. @RequestParam을 선언을 하면, 해당 변수로 쿼리 파라메터로 값이 넘어오게 됩니다. name = "q" 으로 쿼리 파라메터의 이름을 지정하거나 required = ..
WHERE에 조건들이 많은 경우, 같이 처리를 해줘야하는 조건의 경우 괄호 () 를 써서 묶어 줍니다. AND, OR의 우선 순위를 알고 있으면, 불필요하게 괄호 () 를 사용 하지 않아도 됩니다. 결론 부터 말하자면, AND가 OR 보다 우선 순위가 높습니다. WHERE (id != '' AND name != '') AND ( ( home = '강남구' AND transport = '버스' ) OR ( home = '송파구' AND transport = '지하철' ) OR ) WHERE (id != '' AND name != '') AND ( home = '강남구' AND transport = '버스' OR home = '송파구' AND transport = '지하철' OR ) 위의 2가지 WHERE ..
- Total
- Today
- Yesterday
- maven
- Kibana
- Spark
- error
- Postman
- plugin
- install
- Linux
- logstash
- JPA
- tomcat
- Size
- Log
- docker
- scala
- Filter
- AWS
- intellij
- elasticsearch
- JSON
- gradle
- mac
- Git
- Java
- apm
- SpringBoot
- Container
- Index
- spring boot
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |