본문 바로가기

전체 글65

[ tibero ] 티베로 쿼리 실행계획 1. 실행 할 쿼리에 식별 할 수 있는 문자열을 추가 해 SELECT 쿼리를 실행 한다. 이번 예제로는 'QUERY' 라는 문자열을 식별할 수 있도록 추가해 SELECT 했다. SELECT 'QUERY', COLUMN1, COLUMN2 FROM {TABLE}WHERE 1=1; 2. 쿼리 실행 후 해당 문자열 값을 v$sql 테이블에서 조회한다.select * from v$sql where sql_text like '%QUERY%'; 3. 위 결과에서 조회 된 'SQL_ID' 를 하단의 실행계획 결과 조회 쿼리 SQL_ID 조건문에 값을 매핑해 쿼리를 실행한다.SELECT SUBSTRB(TO_CHAR(ID), 1, 3) || LPAD(' ', LEVEL * 2) || UPPER(OPERATION) |.. 2025. 1. 20.
HTTP 메시지 컨버터 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 사용하면 편리하다. @ResponseBody -> HttpMessageConverter 종류 선택해 값을 반환하게 된다. 스프링 MVC 는 다음의 경우에 HTTP 메시지 컨버터를 적용한다. - HTTP 요청 : @RequestBody, HttpEntity(RequestEntity) - HTTP 응답 : @ResponseBody, HttpEntity (ResponseEntity) Message Converter는 스프링 MVC 구조에서 @RequestMapping을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdapter가 핸들러에 있는 요청 데이터 정보를 보고, Argument Resolver를 통해 필요한 객체를 생성.. 2023. 12. 9.
Spring - 요청/응답 매핑 1. 매핑 정보 @Controller - 반환 값 String -> 뷰 이름으로 인식 => 뷰를 찾고 뷰가 랜더링 됨 @RestController - 반환 값 String -> Http 메시지 바디에 바로 입력 @RequestMapping - url 호출 -> 해당 메서드가 실행 되도록 매핑 - http 메서드 GET / HEAD / POST / PUT / PATCH / DELETE 매핑 가능 @PathVariable 경로 변수 - 파라미터 조회 - 다중 가능 2. HTTP 요청 데이터 조회 1) GET - 쿼리 파라미터 - 메시지 바디 없이 Url의 쿼리 파라미터에 데이터 포함해서 전달 - 검색, 필터, 페이징 등에서 많이 사용하는 방식 2) POST - HTML Form - 메시지 바디에 쿼리 파라미.. 2023. 12. 9.
@RequestBody와 HttpEntity<> /** @RequestBody 어노테이션 * 스프링은 이미 요청 본문을 해당 메서드의 매개변수 타입으로 변환해주는 역할을 수행 * json 또는 다른 형식으로 요청한 요청 본문을 객체로 변환하는 작업까지 자동으로 처리 * .getBody()를 직접 호출할 필요 X */ /** HttpEntity * .getBody() 메서드를 호출하여 요청 또는 응답 본문을 직접 얻어와야 함 * 로 타입 제한을 주어 객체 변환 */ 2023. 12. 3.
Http바디 messageConverter : @RequestBody - @RequestRequest HttpEntity로 .getBody 메서드 호출 => 바디에 있는 값을 String으로 변환 위 HttpEntity 기능을 @RequestBody 어노테이션 하나로 바로 처리 가능 요청 - @RequestBody : request 바디 정보 편리하게 조회 가능 응답 - @ResponseBody ** 바디를 조회/반환하는 것일 뿐 요청 데이터 처리와는 관련 없음 (@RequestParam, @ModelAttribute) ** 정리 요청 파라미터 조회 기능 : @RequestParam, @ModelAttribute HTTP 메시지 바디 직접 조회 기능 : @RequestBody 2023. 12. 3.
port 충돌 - cmd 관리자로 pid 삭제(윈도우,맥) [윈도우] 1) cmd 관리자 모드로 접속 2) netstat -ano 입력 3) 사용중인 port번호와 pid 번호 리스트 확보 4) 충돌 되는 port번호를 사용하는 pid 번호 확인 5-1) 작업관리자 - 서비스 - pid 우클릭 - 삭제 5-2) 강제적 방법 : taskkill /f /pid [맥] 2) sudo lsof -i : 3) 강제적 방법 : sudo kill -9 ** 강제적 방법의 경우, cmd에서 접근 제한 걸려 삭제 실패할 수 있는데, 이 땐 관리자 권한으로 접속하면 된다. ** 이래도 안 될 때는 충돌 되는 port번호를 바꾸는 것으로 종결.. (더 나은 방법이 있다면 알려주세요 ,, ) 2023. 10. 10.
맥북 h2 실행 - 터미널 1) h2로 접근 2) chmod 권한 부여 + bin 접근 + h2.sh 실행 chmod 755 ./bin/h2.sh 끝 2023. 10. 9.
인텔리제이 실행 버튼 비활성화 문제 해결 (build.gradle) jdk 11 환경에서 인텔리제이 여러가지 환경 설정을 11로 맞춰주었는데, 아무리 구글링을 해보며 환경설정을 따라 해 봐도 인텔리제이 실행 버튼이 활성화 되지 않아서 애를 먹었다. -_- 원인은 build.gradle 에서 java의 sourcreCompatibility 가 '17'로 되어있었음. '11'로 변경했더니 아주 잘 된다. 2023. 10. 5.
이클립스 + svn + Tibero 보호되어 있는 글 입니다. 2023. 10. 4.
h2데이터베이스 실행 안 됨 해결 윈도우 H2 데이터베이스 실행 초반에 h2.bat 실행 오류 (velog.io) 윈도우 H2 데이터베이스 실행 초반에 h2.bat 실행 오류 오류 상황 인프런 김영한님 '스프링 입문 스프링부트' 강의 섹션 6-1 H2 데이터베이스 설치 3분 50초 경에서윈도우의 경우 h2.bat을 실행하는 부분에서 cmd에서 실행해도 크롬 창에서 페이지가 뜨지 velog.io 위의 블로그 참고했다. cmd 관리자 권한으로 들어가서 해당 경로로 접근 후, h2.bat해주면 끝 잘 뜬다 2023. 8. 4.
섹션2. 스프링 웹 개발 기초 1. 정적 컨텐츠 1) 내장 톰캣 서버가 요청을 받아 스프링에 넘긴다. 2) 스프링은 컨트롤러를 우선순위로 찾아본다. 이후 내부에 있는 resources 속 일치하는 파일 명을 찾는다. 3) 반환한다. 2. MVC와 템플릿 엔진 : 템플릿 엔진으로 랜더링 된 HTML을 고객에게 전달 1) 내장 톰캣 서버가 요청을 받아 매핑 되는 컨트롤러를 우선적으로 찾는다. 2) model에 담은 데이터를 스프링이 viewResolver에 던진다. 3) viewResolver가 templates/파일명을 찾아 타임리프 템플릿 엔진에 던진다. 4) 타임리프 템플릿 엔진이 HTML로 변환 후 브라우저에 던진다. 3. API : Json으로 변환 후 객체 반환 [@ResponseBody사용될 시] 1) Http의 Body에 .. 2023. 7. 28.
섹션1. 스프링부트 Gradle Jar 빌드 & 실행 Spring-Boot 와 Gradle을 이용하여 Jar 파일을 빌드하고 실행하는 방법! ** 터미널에서 프로젝트에 접근 후 gradlew.bat build 했을 때 build 폴더가 생기지 않아 애를 먹었다. [SpringBoot] Gradle Jar 빌드 & 실행 (IntelliJ, Terminal) (tistory.com) [SpringBoot] Gradle Jar 빌드 & 실행 (IntelliJ, Terminal) Spring-Boot + Gradle 사용하여 Jar 파일 빌드 & 실행 방법 웹개발을 진행하다보면 만들어놓은 코드들을 빌드하여 배포까지 진행을 한다. 이때 사용하는 방법중 하나인 Jar 파일 빌드 후 실행 까지 테스 lucas-owner.tistory.com 위의 블로그를 참고하여 다행.. 2023. 7. 28.