본문 바로가기

분류 전체보기151

TIL 230622 : Dto에 값을 넣어보자 (RequestBody, ModelAttribute) 문제 : Controller에서 Dto에 값이 넣어지지 않았다. 항상 이런 건 강의 잘 보고 따라하며 과제를 하고 있는데, 똑같이 했는데 안된다. 바로 저기에 log를 넣어보았는데, null로 나온다. 시도 @ModelAttribute @ModelAttribute 어노테이션을 달아보았지만 소용없었다. 분명 강의에서는 생략했었다. 아마도 이는 @RequestParam 혹은 @ModelAttribute 중 하나가 자동으로 적용되며 생략이 가능했었을텐데, 받는 데이터는 원시타입이 아니기에 @ModelAttribute로 이미 적용 중이었을 것이다. 그러니 이미 @ModelAttribute달고도 오류가 나고 있던 것이니 아무런 효과가 없었을거라는 뜻. @RequestBody 혹시나 하는 마음에 @RequestBo.. 2023. 6. 22.
TIL 230621 : 뭘 모르면 사소한 것에도 휘둘린다 문제 발생 DataIntegrityViolationException: not-null property references a null or transient value : com.sparta.springauth.entity.User.email] with root cause 분명 똑같이 했다고 생각했는데 오류가 뜨면 너무 허망하다. User 엔티티를 db에 저장하는 과정에서 해당 오류가 떴다. Not NULL 칼럼인 email에 NULL이 들어왔다는 뜻. 시도 RequestDto에는 잘 들어왔다 멤버 값도 잘 받아져 있다 email칼럼만의 문제는 아니다 이렇게 바꿔보면 이번엔 password가 문제로 나온다. DataIntegrityViolationException: not-null property ref.. 2023. 6. 21.
TIL 230620 : 쿠키, 세션, 토큰, JWT 인터넷을 하는 내 컴퓨터에는 쿠키가 접속하는 사이트 서버에는 세션이 있다. 다른 방법으로는 내 컴퓨터에 JWT라는 토큰을 가지고 있다. 인증과 인가 인증 : 아~ 이런 분이시군요! 인가 : 이런 분이라고 하셔도 이건 안됩니다. 이 둘의 차이를 우선 명확히 해야한다. Authentication, 인증. : 특정 사이트에서의 회원임을 확인받는 과정. Authorization, 인가. : 이후 사이트의 여러가지 기능에 접근할 때 인증받은 걸 토대로 허가해주는 것. 쿠키와 세션 쿠키가 브라우저에 저장되면 해당 웹사이트를 방문할 때마다 자동으로 Request에 실어 보낸다. 도메인별로 작동한다. (네이버에서 받은 쿠키는 네이버에만 보냄) 유효기간이 있다. http프로토콜은 stateless하기 때문에 요청을 보낼.. 2023. 6. 20.
TIL 230619 : Spring은 그저 도구. (IoC/DI, 3 Layer, 영속성 컨텍스트(flush commit 차이), 클래스 리터럴, URL주의점.. 강의를 집중해서 듣는 기간에는 새로운 정보들이 홍수처럼 쏟아진다. 새롭게 배운 내용, 배우면서 심화하고 싶은 내용, 어렵진 않아도 복잡한 내용 등. 이 기간에만 다양한 내용들을 포스팅에 정리하며 체득하고자 한다. 처음 배운 개념들 3 Layer Architecture 패턴이 보이니까 개발자 조상님들이 나눠놓음. Controller : 프론트엔드에서 받은 http요청들이 한 눈에 보기 쉽다. 데이터를 넘겨받는 방법들이 몇가지 있다. Service : 거의 주요하게 개발될 파트. 실제 서비스 관련된 로직들이 담긴다. Repository : DB와 연동되는 로직들. Spring Data JPA를 통해 편리하게 이용이 가능하다. Spring Data JPA 사용방법이 조금 독특하다. 해당 Repository클래.. 2023. 6. 20.
WIL 230618 : Spring..? FACTS 이번 일주일 동안 있었던 일, 내가 한 일 : 스프링이라는 프레임워크를 드디어 써봤다. 엄청난 기초부터 시작했고 아직은 응용이 불가능한 수준. 더불어, 웹제작에 용이한 라이브러리도 같이 사용해봤다. MySQL의 기초를 배워봤다. 새로운 느낌이라 적응하는 데 조금 시간이 걸린다. FEELINGS 나의 감정적인 반응, 느낌 : 너무나 기초를 배운것 같아서 아직은 얼떨떨하다. 현업에서 어떻게 활용될 지 기대된다. 아직 모르는 용어들이 머릿 속에서 혼재된 느낌이다. 반복하며 친해져야할듯 하다. FINDINGS 그 상황으로부터 내가 배운 것, 얻은 것 : 과거에서부터의 시행착오를 통해 지금 현업에서의 기술들이 완성되고 있다고 생각한다. 시행착오 이전부터 학습하는 것 같다. 이러한 불편한 점들이 있어서 .. 2023. 6. 19.
TIL 230614 : 실행은 같아도 코드는 다르다. 튜터님의 코드로부터 배운 보고 배운 점 : 같은 기능을 구현해도 코드는 너무 다르다. 오랜시간 축적된 지혜를 잘 흡수해야할 듯 하다. 오늘은 그저 강의 들으며 배운 것들 다음에 내가 적용하기 위해 정리해본다. 삼항연산자 활용 Long maxId = memoList.size() > 0 ? Collections.max(memoList.keySet()) + 1 : 1; 삼항연산자라는 걸 완전히 잊고 있다가 강의 도중 만났는 데, 다시 보이게 된다. 만약 저걸 안했더라면 아래처럼 코드를 했을 것이다. Long maxId = 0; if(memoList.size() > 0){ maxId = Collections.max(memoList.keySet()) + 1; } else { maxId = 1; } Map -> L.. 2023. 6. 19.