반응형

JAVA/JAVA | Spring 학습기록 66

[Spring] 스프링이 태어난 이유_서블릿, JSP로 만든 MVC의 한계

김영한님의 스프링 입문과 기본편을 듣고, 스프링 mvc편을 들으며 Servlet, JSP를 하면서 느낀 점은 요즘은 스프링 프레임워크가 도입돼서 정말 다행이라는 점이다. 이렇게 느낀 이유를 아래에 포스팅해보겠다. Servlet을 하면서 사실 나는 6개월 정도 전에 Spring을 아예 모르고 단순히 웹개발을 해보고 싶다는 마음에 커리큘럼을 알아보다가 완전 쌩 Servlet부터 배워보려고 Servlet을 처음 접한 적이 있다. 그 때 당시 내가 짜던 코드는 회원가입 서비스를 만들어보려고 책을 참고해서 변형해 만들어본 코드였는데, MemberDAO, MemberVO, MemberServlet 세 개의 클래스 코드를 열심히 짠 기록이 깃헙에 남아있어 코드를 가져와보았다. 아래 코드는 HttpServlet을 상속..

[Spring] lombok의 @Builder와 JpaRepository를 도입해보았다

저번에 만든 회원 CRUD 프로젝트에 새로운 기능들을 추가하고 테스트코드를 돌려보았다. 기능들을 추가하면서 현재까지 내가 배운 것들을 포스팅해보겠다. @Builder, 왜 쓰는걸까? Getter, Setter를 쓰는 이유가 바로 필드변수를 함부로 수정하는 것을 방지하기 위해서인데, @Builder를 쓰는 이유 또한 그렇다. 우리는 흔히 lombok을 사용할 때, Entity 위에 @Getter를 사용하는 것은 많이 볼 수 있지만, @Setter를 사용하는 경우는 거의 보지 못했다. 나는 얼마전까지만 해도 @Setter를 사용하는 것이 테스트 코드 등 여러모로 편해서 자주 사용해왔었는데, 이 때 문제점이 발생한다. Setter 메소드를 사용하면, (lombok에서 아무런 설정을 하지 않는 이상) 다른 데서..

[Spring] CRUD 기능 실습 중 @DeleteMapping 관련 에러

저번에 포스팅한 CRUD 실습을 이어하던 중, @DeleteMapping으로 삭제하려던 중 아래 사진과 같은 에러가 발생하였다. This application has no explicit mapping for /error, so you are seeing this as a fallback. 1. 패키지 관계? 만약 스프링부트를 처음 실행했을 때 이 에러가 발생한다면 (또는 컨트롤러 메소드가 아무것도 실행이 안된다면) 위 에러는 보통 스프링부트 메인 클래스가 Controller, Service 등 스프링 빈들이 위치하고 있는 패키지의 상위 패키지에 없을 때 발생하는 에러라고 한다. 그러나 나는 @GetMapping은 실행이 잘되는 상황이기도 하고, 패키지 구조관계도 멀쩡했기 때문에 위와 같은 이유는 아니었..

[Spring] MySQL+JPA+Spring+Gradle 회원조회 Read 실습

환경세팅하는 부분은 이 포스팅에서 볼 수 있다. kth990303.tistory.com/46 [Spring] MySQL+JPA+Spring+Gradle 환경설정 및 실습 그동안 백준 풀면서 스프링 공부를 소홀히 한 게 느껴져서 오랜만에 스프링 공부도 할 겸, 간단한 회원조회 실습을 해보기로 했다. 말그대로 기초적인 간단한 실습을 복습 겸 하는거라, Domain에 M kth990303.tistory.com 아직 이 코드들은 github에 올리지는 않았다. github에 올리게 된다면 포스팅 수정 후 추가하겠다. MVC 디자인패턴을 최대한 준수하기 위해 위와 같이 Domain, Repository, Controller, Service로 나누어서 코드를 짰다. 회원 엔티티에 있어야 할 정보들을 살펴보기 위해 ..

[Spring] Spring boot Test 코드 작성해보기 (TDD 연습)

스프링 강의를 들으면서, 그리고 주변 개발자들이 포스팅한 것을 보면서 tdd의 중요성을 조금씩 느끼곤 있었지만, 에러가 뜰까봐 두려움 때문에, 그리고 직접 스프링 실행해서 db를 직접 cmd창으로 확인해보면 된다는 합리화때문에 test폴더에서 test 코드를 작성한 적이 없었다. kth990303.tistory.com/46 [Spring] MySQL+JPA+Spring+Gradle 환경설정 및 실습 그동안 백준 풀면서 스프링 공부를 소홀히 한 게 느껴져서 오랜만에 스프링 공부도 할 겸, 간단한 회원조회 실습을 해보기로 했다. 말그대로 기초적인 간단한 실습을 복습 겸 하는거라, Domain에 M kth990303.tistory.com 그러나, 오늘 위 포스팅의 다음버전을 마저 하기 위해 crud 기능이 제..

[Spring] MySQL+JPA+Spring+Gradle 환경설정 및 실습

그동안 백준 풀면서 스프링 공부를 소홀히 한 게 느껴져서 오랜만에 스프링 공부도 할 겸, 간단한 회원조회 실습을 해보기로 했다. 말그대로 기초적인 간단한 실습을 복습 겸 하는거라, Domain에 Member(회원)밖에 없으며, CRUD 중 R(Read) 기능만 잘 되게 만들어보았다. 하다가 막히는 부분은 아래 내 깃헙에 있는 crud 간단하게 만들어봤던 코드를 참고하면서 하였다. github.com/kth990303/RoastChickenSoup kth990303/RoastChickenSoup 회원조회 및 게시판. Contribute to kth990303/RoastChickenSoup development by creating an account on GitHub. github.com 환경세팅 일단 s..

반응형