티스토리 뷰

2023/7월

23-7-20 木

parkrams 2023. 7. 20. 11:51
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);
        }
        });
}    
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

'2023 > 7월' 카테고리의 다른 글

23-7-23 日 오류 원인 파악 부상  (0) 2023.07.23
23-7-21 金  (0) 2023.07.21
23-7-19 水  (0) 2023.07.19
23-7-17 月  (0) 2023.07.17
23-7-14 金  (0) 2023.07.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함