221011 TIL 사소하지만 중요한 차이
·
성장이야기/TIL
백엔드에서 회원가입 유효성 검사를 진행하기 위해 테스트를 작성하는데 해결이 되지 않는 문제가 있었다. 이름을 입력하지 않았을 때 오류 메시지가 잘 나오는지 테스트를 하는데 이름을 빈칸으로 하고 테스트를 해도 테스트가 통과가 되지 않는 상황이였다. 문제 상황 회원가입 시 이름을 입력하는데 빈칸이면 안되고 3~7글자 사이의 한글만 입력해야 하기 때문에 스프링의 @Valid어노테이션을 이용해 아래 같이 Dto클래스에서 유효성 검사를 진행했다. 그리고 이름이 빈칸일 때 테스트를 진행하는데 이름이 빈칸이면 "이름을 입력해주세요"라는 메시지가 나오게 했지만 밑에 오류 메시지를 보면 "이름을 다시 확인해주세요"라는 다른 조건(3~7글자 사이의 한글만 입력)이 틀렸을 때의 메시지가 나왔다. 그래서 @NotBlank와 ..
221010 TIL 자바스크립트 실력 높이기
·
성장이야기/TIL
리액트를 하다가 보면 자바스크립트 문법을 틀려서 오류를 접하는 경우가 많다. 얼마 전에만 해도 객체로 리턴하는 값을 배열로 받으려고 했던 것과 push메서드를 사용해서 원본 배열을 변경해 발생한 오류 등등 여러 가지 자바스크립트 사용이 미숙해서 낭패를 겪은 적이 몇 번 있다. 그래서 이런 상황을 하루빨리 극복하기 위해 야심 차게 준비한 책이 있다. 얼마 전에 홀맨님이 2기분들에게 추천해준 자바스크립트 책인데 아무래도 나도 사서 공부해야 할 필요가 있어서 구매를 했다. 2장까지 읽은 상황인데 원래 책을 빠르게 읽지 못하는데 이 책은 생각보다 빠르게 읽고 있다. 며칠 전에 공부했던 호이 스팅이라는 개념도 나오고 원본 배열을 조작하면 안 되는 이유, 그리고 모르고 있었던 것들도 꽤나 있어서 재미가 있는 것 같..
221008 TIL 호이스팅(hoisting)이란?
·
성장이야기/TIL
금요일에 2기분들 코딩 인터뷰 때 호이스팅이라는 개념에 대한 질문이 나왔다. 사실 호이스팅이라는 단어를 난생처음 들었는데 호이스팅이 면접의 단골 질문이라고 하셨다. 호이스팅이 뭔데 단골 질문일까?? 한번 알아보자 호이스팅(hoisting) 호이스팅을 간단하게 말하면 함수가 실행되기 전에 안에 있는 변수들을 범위의 최상단으로 올리는 것을 말한다. 자 백날 말하는 것보다 코드 한번 쳐보는 게 이해가 훨씬 빠르니 코드를 한번 보자 var number = 1; console.log(number); 자 위 코드에서 콘솔에 찍히는 값은 뭘까? 당연히 1이다. console.log(number); var number = 1; 그러면 위 코드에서 콘솔에 찍히는 값은 뭘까? undefined가 콘솔에 나오는 것을 확인할..
221007 TIL @ResponseBody, @RestController
·
성장이야기/TIL
어제 Dto클래스의 getter 메서드의 이름에 get을 뺐을때 발생했던 문제의 원인을 파악하기 위해 오늘 공부하고 정리한 내용이다. 우선 문제상황은 getter 메서드의 이름에 get을 뺐을때 그에 해당하는 값을 responseBody에 전달되지 않는 상황이다. 밑에 사진에서 원래는 id값도 전달이 되야하는데 Dto클래스의 getter인 getId 메서드의 이름을 get을 빼고 그냥 id로 바꾸고 실행한 결과값이다. @ResponseBody 그러면 responseBody에 대해서 먼저 알아봐야 할 필요가 있었다. 서버에서 클라이언트로 응답을 보낼 때는 데이터를 responseBody에 담아서 보내야 한다. 클라이언트에게 응답을 보내는 컨트롤러에서 @ResponseBody라는 어노테이션을 사용하면 자바의..
221006 TIL 돌다리도 두들겨 보고 건너라
·
성장이야기/TIL
오늘 메인으로 구현했던 기능은 상품 주문 내역을 불러오는 기능인데 이전에 상품 내역을 불러오는 코드를 작성해놨기 때문에 비슷한 맥락으로 생각보다 금방 구현할 수 있었다. 순조롭게 상품 주문 내역에서 특정 주문 내역을 클릭 시 세부 정보를 얻어오는 기능도 구현하는데 주문내역의 id값만 받아오지 못하는 상황이 발생했다. 주문 내역의 아이디로 세부 정보에 접근하기 때문에 아이디 값을 받아오는 게 필요했는데 받아오지 못하니 세부 정보를 볼 수 없었다. 백엔드에서 dto로 id값을 전달하게 했는데 받아오는 값을 출력해서 확인해보면 id 빼고 모두 가져오는 것을 확인했다. 너무나도 아이러니하게 무조건 필요한 id값만 빼놓고 가져오니까.. 그래서 id를 생성을 하지 않는건가 생각을 했지만 주문 내역의 entity에 ..
221005 TIL 방법의 차이
·
성장이야기/TIL
어제 구현했던 페이지네이션 기능을 뭔가 정석대로 구현하지 않은 것 같아서 아침부터 계속 눈에 밟히고, 이게 맞나 싶은 찝찝함을 갖고 있었다. 기능을 구현할때 그 기능을 구현하기 위한 코드의 방법은 여러 가지가 있겠지만 나는 정답이 있을 거라고 생각을 하고 있었다. 그래서 페이지 네이션이라는 기능을 구현해도 정답에 가까운 코드가 아니라고 생각을 했기 때문에 찝찜함이 남아있었다. 내 코드가 정답이 아니라고 생각한 이유는 지금까지 코드를 배울때 아샬 님의 강의를 보면서 배웠는데 내가 페이지네이션을 구현하기 위해 쓴 코드가 이때까지 아샬님이 작성했던 코드와 거리가 있었기 때문에 구현해도 구현한 것 같지 않은 느낌이 있었다. 근데 오늘 노아트레이너님의 말씀을 듣고 그 찝찝함을 좀 덜 수 있었다. 내가 원하는 기능..