티스토리 뷰

2023/8월

23-8-3 木

parkrams 2023. 8. 3. 11:42
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개월 셀프로젝트

이거 너무 어렵넹

  • 화면 살짝 수정 - 시스템 로그

보충수업 9 : 40 ~ 11 : 40

  • 옵셔널 자바의 널 포인트 익셉션 에러 처리를 하기 위해 나온 타입
  • boardInfo 수정
  • 게시글 상세보기를 위한 보드인포 수정
          <!--          23-8-3 수정-->
    function showDetail(obj){
      let id = $(obj).children().first().text();   // obj의 첫번째 자식의 텍스트를 가져온다.
      console.log(id);
      let url= "/board/boardDetail/" + id;
      location.replace(url);   // 추출한 아이디를 url에 붙인 후 이동

    }
  • boardDetail.html
<th:block layout:fragment="script">
  <script th:inline="javascript">
    function deleteBoard(obj){
      //23 - 8 - 3
      let id = obj.dataset.id;
      console.log(id)

      let url = "/board/delete/" + id;
      location.replace(url)
    }
  • 블락안에 넣어준다.

///

  • 삭제, 수정 스크립트
<th:block layout:fragment="script">
  <script th:inline="javascript">
    function deleteBoard(obj){
      //23 - 8 - 3
      let id = obj.dataset.id;
      console.log(id)

      let url = "/board/delete/" + id;
      location.replace(url)
    }

    function updateBoard(){
      // 먼저 할건 수정을 none 하고 저장을 보이게 해야 한다
      //  인라인은 옆으로 쌓이고 블락은 밑으로 쌓인다
      $('#saveBtn').css('display','block'); // 앞에는 속성, 뒤에는 값  -- 원래는 none 이었는데 블락으로 바꿔줨
      $('#updateBtn').css('display', 'none'); // 수정을 누르면 수정 부분이 안보이게 된다
      $('.form-control').attr('disabled', false); // att = 속성 인풋태그들의 속성
    }

    // updateBoard랑 반대로 설정
    function saveBoard(obj){

      // 서버로 데이터를 넘기는 부분
      let id = obj.dataset.id
      let url = "/board/update/";
      let boardDto  ={
        id:id,
        title:$('#title').val(),
        content:$('#content').val(),
      }
      $.ajax({
        url : url,
        type : 'PATCH',
        data : JSON.stringify(boardDto),
        dataType : 'json',
        contentType : "application/json;charset=UTF-8",
        cache : false,
        success : function(){
          $('#saveBtn').css('display','none');
          $('#updateBtn').css('display', 'block');
          $('.form-control').attr('disabled', true);


          // 뒤로 가기 버튼을 막는  부분  ( 앞으로 가게 변경 )
          history.pushState(null, null, location.href);
          window.onpopstate = function (event){  // 이게 뒤로가기 버튼
            history.go(1);
          }
        },
        error : function (){

      }
      })


    }
  </script>

</th:block>


-- 컨트롤러 부분

    // 23-8-3 게시판 상세보기, 삭제, 수정
    @GetMapping(value = "/boardDetail/{boardId}")
        public String boardDetail(@PathVariable Long boardId, Model model){
        model.addAttribute("boardDetail",boardService.showDetail(boardId));
        return "/pages/boards/boardDetail";
    }

    @GetMapping(value = "delete/{boardId}")
    public String boardDelete(@PathVariable Long boardId){
        boardService.deleteBoard(boardId);
        return "redirect:/board/info";
    }


    @PatchMapping(value = "/update")
    public ResponseEntity<Object> boardUpdate(@RequestBody BoardDto boardDto){
        boardService.updateBoard(boardDto);
        return new ResponseEntity<Object>(boardDto.getId(), HttpStatus.OK);
    }
뒤로가기 버튼 자바스크립트 문법
  • 뒤로가기 버튼 막기
      // 뒤로 가기 버튼을 막는  부분 
      history.pushState(null, null, location.href);
      window.onpopstate = function (event){
        history.go(1);
  • static을 붙이면 클래스명에서 메서드를 바로 사용할 수 있게 만들 수 있다.

  • 인스턴스는 반드시 new를 사용

운동

  • 부상 휴식

궁금한 것

내일 할 것

프로젝트

운동

해결하려고 노력 중

-- 더 공부할 것

-- 모르는 것

공부할 키워드

  • 스프링 빈, 스프링 컨테이너, 의존성 주입
  • JPA영속성 컨텍스트
  • viewResolver
  • url /uri-
  • HTTP Pro- \tocol
  • REST ful
  • 다음 차시까지 공부해오실 내용은
  • http 프로토콜 (중요 mozila docs 확인할 것)
  • [demo 프로젝트] thymeleaf layout 구조 확인 및 공부

7월 넷째 주 키워드

@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
부트스트랩 컴포넌트
fontAwesome - 태그

8월 첫째 주 키워드

http 프로토콜 (중요 mozila docs 확인할 것)
[demo 프로젝트] thymeleaf layout 구조 확인 및 공부

Builder 패턴
@Builder 클래스 레벨에서 사용할 때 @NoArgsConstructor
modelMapper api
자바 기본 자료구조
자바 제네릭

23-8-2

JAVA Optional 객체
th:each, th:data-id

728x90

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

23-8-6  (0) 2023.08.06
23-8-5  (0) 2023.08.05
23-8-4  (0) 2023.08.04
23-8-2 火  (0) 2023.08.02
23-8-1 火  (0) 2023.08.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
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
31
글 보관함