본문 바로가기

공부 기록63

var VS let VS const var VS let VS const 2009년에 ECMAScript(ES5) 버전을 발표했던 Ecma International은 2015년에 ECMAScript 6을 발표하는데 이를 줄여서 ES6라고 한다. 대표적으로 ES6에는 변수를 var에서 let과 const로 구분해서 선언하고 함수 정의를 간결하게 할 수 있는 화살표함수 등의 새로운 기능이 아주 많이 제공하게 된다. 그래서 아직도 변수 선언할 때 var를 사용하고 있다면 ES6문법인 let, const를 사용하자. var 요즘은 대부분 ES6문법을 지키기 때문에 var가 자주 보이진 않지만 옛날 프로젝트들은 변수를 선언할 때 무지성 var를 많이 사용했다. 이제는 var 사용을 권장하지 않는다! name = 'minsu'; console.log(.. 2022. 6. 14.
null VS undefined null VS undefined 비슷하면서도 비슷하지 않은(?) null과 undefined의 차이점에 대해 알아보자. null null은 변수 선언과 동시에 값(value)을 할당할 수가 있다. 즉, null은 값인데 존재하지 않는, 비어있는, 알 수 없는 값이다. 예를 들어, hello라는 변수에 아직 인사말을 못정해서 어떤 값을 할당해야 할지 모르겠다면 null을 넣어주면 된다. null의 타입은 object다. 타입은 object이지만 string, number, bigint, boolean, symbol, null, undefined는 모두 원시형 값이다. let hello = null; //변수 선언 console.log(hello); //null console.log(typeof hello).. 2022. 6. 13.
양식 다시 제출 확인 팝업창 개발을 하면서 어드민 페이지에서 ‘새로고침’이나 ‘뒤로가기’를 눌렀을 때 아래와 같은 팝업창이 나와서 당황했습니다. 그렇다면 왜! 이러한 팝업창이 뜬걸까?? 원인은 간단합니다. 원인이 뭘까?? 바로 post 방식을 사용했기 때문입니다. form submit()으로 post 요청을 하고 리다이렉트를 하지 않으면 새로고침시 똑같은 url 주소로 post 요청을 하기 때문에 "정말 이대로 다시 post 요청할 것인지" 물어보는 것입니다. 제 개인적인 추측이지만 post 요청의 경우에는 민감한 데이터를 담고 있기 때문에 재요청시 정말로 다시 post 요청할 것인지 물어보는 것 같습니다. redirect가 아닌 forward를 해도 같은 팝업창이 발생할 수 있습니다. 잠깐 개념을 살펴보자. 검색이나 페이지 이동할.. 2022. 1. 14.
[스프링 부트로 게시판 만들기] 11. 댓글 기능, Remember Me 댓글 댓글의 대댓글은 구현하지 않고 댓글만 만들도록 하겠습니다. domain 패키지에 reply 패키지를 만들어 Reply 엔티티를 생성합니다. Reply 클래스 package com.azurealstn.blogproject.domain.reply; import com.azurealstn.blogproject.domain.BaseTimeEntity; import com.azurealstn.blogproject.domain.board.Board; import com.azurealstn.blogproject.domain.user.User; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.No.. 2021. 7. 24.
[스프링 부트로 게시판 만들기] 10. 조회수, 페이징과 검색 조회수 증가 이번엔 게시글의 조회수를 구현해보도록 하겠습니다. (간단합니다!) BoardRepository 클래스 public interface BoardRepository extends JpaRepository { @Modifying @Query("update Board p set p.count = p.count + 1 where p.id = :id") int updateCount(Long id); } 수정 반영을 위한 @Modifying를 사용합니다. @Modifying에 대해 자세히 알아보려면 clearAutomatically에 대해서 알아보는게 좋을 듯 합니다. BoardController 클래스 @RequiredArgsConstructor @Controller public class BoardC.. 2021. 7. 23.
[스프링 부트로 게시판 만들기] 09. 게시글 CRUD Board 테이블 만들기 게시판 정보를 담을 Board 테이블을 만들도록 하겠습니다. 폴더 구조 Board 클래스 package com.azurealstn.blogproject.domain.board; import com.azurealstn.blogproject.domain.user.User; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; @Builder @Getter @AllArgsConstructor @NoArgsConstructor @Entity public class Board extends Ba.. 2021. 7. 22.