풀스택 - 스프링부트 CH2 숙제

김진아·2024년 8월 27일

스프링부트

목록 보기
2/6

깃 링크


참고사진





1차 요구사항 구현

  • [✅] 유저가 루트 url로 접속시에 게시글 리스트 페이지(http://주소:포트/article/list)가 나온다.
  • [✅] 리스트 페이지에서는 등록 버튼이 있고 버튼을 누르면 http://주소:포트/article/create 경로로 이동하고 등록 폼이 나온다.
  • [✅] 게시글 등록을 하면 http://주소:포트/article/create로 POST 요청을 보내어 DB에 해당 내용을 저장한다.
  • [✅] 게시글 등록이 되면 해당 게시글 리스트 페이지로 리다이렉트 된다. 페이지 URL 은 http://주소:포트/article/list 이다.
  • [✅] 리스트 페이지에서 해당 게시글을 클릭하면 상세페이지로 이동한다. 해당 경로는 http://주소:포트/article/detail/{id} 가 된다.
  • [✅] 게시글 상세 페이지에는 id에 맞는 게시글 데이터와 목록 버튼이 있다. 목록 버튼을 누르면 게시글 리스트 페이지로 이동하게 된다.

[추가기능]

  • 목록페이지에서 제목 옆에 글마다 등록된 답변 개수 표기
  • 최신순으로 글 목록 나열
  • 답글 기능
  • 페이징 기능
  • 글 등록할때 제목과 내용 입력값 검증하고 오류발생 시, 오류메세지 표출


미비사항 or 막힌 부분

  • 답변 등록할 때도 입력값 검증 & 오류메세지 표출을 하고 싶었으나 못했음


MVC 패턴

  • 사용자가 보는 페이지(View), 데이터 및 비즈니스 로직 처리(Model), 사이에서 둘을 제어해주는 컨트롤러(Controller)로 나뉘어 이루어진 디자인 패턴
  • 세가지 분야 및 영역으로 나뉘어서 관심사 분리
  • 유지보수와 확장이 용이한 효율적인 개발이 가능


스프링에서 의존성 주입(DI) 방법 3가지 방법

  1. 생성자 주입: 'final'로 의존성을 강제, 불변성 보장. 객체가 생성될 때 필요한 의존성을 생성자를 통해 주입
  2. 세터 주입: 세터 메소드에 '@AutoWired' 어노테이션을 사용. 객체 생성 후 세터 메소드를 통해 의존성을 주입
  3. 필드 주입: 필드에 직접 '@AutoWired' 어노테이션을 사용.


JPA의 장점과 단점

장점

  • 메서드 호출만으로 쿼리 가능.
  • DBMS의 종류에 상관없이 메소드 동일.
  • 간단한 메서드를 사용함으로서 유지보수 용이

단점

  • 성능이 직접 sql문을 사용하는 것보다는 저하
  • 복잡한 쿼리문을 메소드만으로 처리하기는 힘듬


HTTP GET 요청과 POST 요청의 차이

GET

  • url에 전송될 데이터를 담은 쿼리문을 함유하여 서버에 요청하는 통신 방법
  • 문법 : https://url.com?param=1&param=2&...
  • 이미지, css, js와 같은 정적 컨텐츠는 변경될 일이 적어서 반복적인 요청할 필요가 없게 캐시를 통해 불필요한 요청을 줄인다.
  • 주로 서버 리소스의 검색에 사용
  • 보안이 취약

POST

  • 전송될 데이터를 HTTP body에 담아 요청
  • 전송되는 데이터는 길이 제한이 없어, 대용량 데이터 전송가능
  • 주로 서버 리소스의 생성 및 수정에 사용
  • 보안이 비교적 좋음
profile
https://develop-chick.tistory.com/ 첫번째 블로그

0개의 댓글