티스토리 뷰
728x90
스프링 단축키 꿀팁
alt 두번 누르면 그 창 이
alt +1 프로젝트 창 키고 끄기
▶ 인덴트 : Tab(인덴트), Shift+Tab(인덴트 취소)
인덴트는 들여쓰기를 말한다. Tab키는 들여쓰기를 Shift+Tab은 들여쓰기 취소를 할 때 눌러주면 된다.
▶ 자동 인덴트 : Ctrl+Alt+I
코드 전체에 자동 인덴트를 적용하고 싶다면 Ctrl+A키를 눌러 코드 전체 영역을 선택해 주고 그 다음 Ctrl+Alt+I키를 눌러주면 된다.
▶ 사용처 찾기 : Alt+F7(찾기), Ctrl+B(빠른 찾기)
함수를 사용하고 있는 사용처를 찾을 때 Alt+F7(찾기)키 혹은 Ctrl+B(빠른 찾기)키를 눌러주면 된다.
Alt + insert -> 겟셋 같은 소스 검색
▶ 꿀 팁 : Ctrl + shift + enter ( 자동 닫기, 괄호 완성 기능? 애매 하다 싶을 때 눌러주면 자동 마무리)
▶ 세팅 창 : Ctrl + alt + s
▶ 변수명 한번에 바꾸기 : shift + f6
▶ 메소드 안에 들어갈 변수명 확인 : Ctrl + p
▶ 람다로 변환 : alt + enter -> Replace with lambda
▶ Refactor This : Shift + Ctrl + alt + T
▶ lnline Method : Ctrl + alt + N
▶ Test 클래스 생성 : Ctrl + Shift + T
▶ 값 일괄 변경 : Ctrl + Shift + R
함수 합치는 메서드?
오늘 한 것
공부
4개월 셀프로젝트
- 서류 작성 진행
- 디비 설계서, 프로그램 설계서 및 인터페이스 설계서
- 디비설계서
- 게시판, 직원
- 프로그램 설계서
- 직원, 게시판
- DB 날 코드
셀프로젝트 진행 시 리액트 미사용 으로 스프링 부트 공부 재 시작
보충수업
- ajax
@RequestParam은 하나의 값만 받아 오는
@ModelAttribute는 객체 단위로 값을 받아 오기 가능 , 하나도 가능
@ResponseBody
- 여기서 Body는 HTTP 바디
- 클라이언트가 받을 때는 반드시 body 에 닮겨서 옮겨져야 한다
- 반환 값을 response 바디에 넣어서 보내주겠다는 뜻
이렇게 맞춰줄 수 있다 생략 가능
서버-
consumes=MediaType.APPLICATION_JSON_VALUE
뷰 -
contentType : 'application/json', // List 컨트롤러는 application/json 형식으로만 처리하기 때문에 컨텐트 타입을 지정해야 합니다.
바디에 얹어 보낸다 = 제이슨 타입으로 직렬화
리퀘스트 바디 - 요청에 의한 바디
@RequestBody
get은 url에 파라미터를 얹어서 간다
- ajax -- Get 요청인 경우 에러
- url에 닮는 값이 없어서 에러 발생
@ResponseBody
@RequestMapping(value="/map_get", method=RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
public Map<String, Object> map_get(@RequestBody DataSet dataSet){
logger.info("Request Map_Get.... - {}", dataSet);
Map<String, Object> response = new HashMap<String, Object>();
response.put("username", dataSet.getUsername());
response.put("password", dataSet.getPassword());
return response;
}
- ReponseEntity는 바디가 포함 되어 있어서 @ ResponseBody 생략가능
- 상태코드를 함께 보내고 싶을 때 ResponseEntity 사용
- 서버
@ResponseBody
@RequestMapping(value="/entity", method=RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> entity(@RequestBody DataSet dataSet){
logger.info("Request Entity.... - {}", dataSet);
Map<String, Object> map = new HashMap<String, Object>();
map.put("username", dataSet.getUsername());
map.put("password", dataSet.getPassword());
//응답과 함깨 HttpStatus를 지정할 수 있습니다.
ResponseEntity<Object> response = new ResponseEntity<Object>(map, HttpStatus.OK);
return response;
}
- 뷰
function ajaxEntity(){
var dataSet = new Object();
dataSet.username = "kdevkr";
dataSet.password = "kdevpass";
$.ajax({
type : 'POST', // method
url : 'entity', // POST 요청은 데이터가 요청 바디에 포함됩니다.
async : 'true', // true
data : JSON.stringify(dataSet),
contentType : 'application/json',
//dataType : [응답 데이터 형식], // 명시하지 않을 경우 자동으로 추측
success : function(data, status, xhr){
_response.html(JSON.stringify(data));
},
error : function(error){
console.log("error", error);
responseError(error);
}
});
}
- Post라도 URL 에서 파라미터를 받아올 수 있다.
@RequestMapping(value="/entity_nobody_param", method=RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> entity_nobody_param(@RequestBody DataSet dataSet, @RequestParam String param){
logger.info("Request Entity Nobody.... - {}", dataSet);
logger.info("param {}",param);
Map<String, Object> map = new HashMap<String, Object>();
map.put("username", dataSet.getUsername());
map.put("password", dataSet.getPassword());
//응답과 함깨 HttpStatus를 지정할 수 있습니다.
ResponseEntity<Object> response = new ResponseEntity<Object>(map, HttpStatus.OK);
return response;
}
- 뷰
function ajaxEntityNobodyParam(){
var dataSet = new Object();
dataSet.username = "kdevkr";
dataSet.password = "kdevpass";
$.ajax({
type : 'POST', // method
url : 'entity_nobody_param?param=kdevkr@gmail.com', // POST 요청은 데이터가 요청 바디에 포함됩니다.
async : 'true', // true
data : JSON.stringify(dataSet),
contentType : 'application/json',
//dataType : [응답 데이터 형식], // 명시하지 않을 경우 자동으로 추측
success : function(data, status, xhr){
responseJson(data);
},
error : function(error){
console.log("error", error);
responseError(error);
}
});
}
- https://cofs.tistory.com/404 (ajax 총정리 )
- https://velog.io/@sisofiy626/JavaScript-Ajax%EC%99%80-XHR%EA%B0%9D%EC%B2%B4%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 (xhr)
- https://developer.mozilla.org/ko/docs/Web/HTTP/Headers
async(default:true)
Type : Boolean
- 기본적으로 비동기 요청
dataType (default: Intelligent Guess (xml, json, script, or html))
Type: String
- 서버에서 받을 데이터 형식을 지적한다. 지정하지 않으면 MIME 타입을 참고하여 자동 파싱된다.
method (default: 'GET')
Type: String
- 요청할 HTTP 메서드이다. (POST, GET, PUT)
timeout
Type: Number
- 요청에 대해 밀리초 단위로 타임아웃을 설정할 수 있다.
- 너무 오래 지연 되면 끊어 주기 위한
xhr (default: ActiveXObject when available (IE), the XMLHttpRequest otherwise)
Type: Function()
XMLHttpRequest 콜백 사용
- QueryStringParameter = url에 실려 움직이는 파라미터
운동
- 헬스
- 오늘 어깨
- 수영
- 안감
궁금한 것
내일 할 것
- 스프링 빈, 스프링 컨테이너, 의존성 주입
- JPA영속성 컨텍스트
- viewResolver
- url /uri
- HTTP Protocol
- REST ful
공부
프로젝트
운동
해결하려고 노력 중
-- 더 공부할 것
-- 모르는 것
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- App
- commit 에러
- @RequestParam
- th:selected
- @reqeustBody
- mircrosoft visual studio
- C
- JPA
- optional
- CheckBox
- 셀프로젝트
- selectbox
- reactApp
- 다중체크박스 처리
- C언어
- 씹어먹는 C 언어
- React
- SCP
- 아이디
- 체크박스
- 서버전송
- ID
- findFirstBy
- 받아오기
- 다른데서 react
- @Builder
- 제약조건
- react 시작 오류
- 셀렉트박스
- reactStart
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함