목록[백엔드] (125)
개발자로 후회없는 삶 살기
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - 예외 처리와 오류 페이지 프로젝트를 하다보면 예외가 터질 수 있습니다. 그러면 고객에게 정돈된 예쁜 오류 페이지를 보여줘야 합니다. 인프런의 경우 "ufo가 나오면서 죄송합니다. 시스템에 오류가 있습니다." 를 보여준다고 합니다. 어떤 오류 페이지를 언제 배치하는지 알아보겠습니다. - 서블릿 예외처리 서블릿은 2가지 방법으로 예외를 지원합니다. 하나는 진짜 예외(exc..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - 서블릿 필터 요구사항을 보면 로그인된 사용자만 상품 목록을 볼 수 있게 해야합니다. 근데 지금은 url로 맵핑 요청을 직접하여 접근할 수 있습니다. 방법이 있긴 있습니다. 상품 관리 컨트롤러에서 등록, 수정, 삭제, 조회 등등의 처리를 할 때 로그인 여부를 다 체크하면 됩니다. 홈 컨트롤러에서 한 것처럼 세션을 봐서 @SessionAttribute를 모든 GET 맵핑 ..
서론※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다.https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요.www.inflearn.com 본론- 로그인 요구사항상품관리 시스템에 로그인과 관련된 요구사항이 나타났습니다. 홈 화면을 만들고 로그인 전 화면에서는 회원가입하는 페이지로 이동할 수 있고 로그인 화면으로 이동할 수 있습니다. 로그인 후 화면에서는 회원 이름이 나타나고, 상품관리와 로그아웃 버튼이 나오게 할 것입니다. + 보안 요구사항이제는 로그인한 회원만 상품관리를 할 수 있고 로그인을 하지 않은 사용자가 상품관리..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - 빈 검증 소개 검증 코드 if문을 직접 지저분하게 짰는데 매우 번거롭습니다. 근데 잘 생각해보면 특정 필드에 대한 검증 로직은 대부분 그 특정 필드가 비었는지 아닌지, 범위를 넘는지 아닌지와 같이 매우 일반적인 로직입니다. 그래서 편리하게 해보자는 것에서 빈 검증이 나왔습니다. @Data public class Item { private Long id; @NotBlan..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - 검증 요구사항 기존 프로젝트에 검증 로직을 추가해달라는 요구사항이 추가되었습니다. 타입 검증은 가격, 수량 같은 경우 숫자만 와야하는데 문자가 오는 지 검증하는 것이고, 필드 검증에서는 필드가 null이 안 들어오게 하고 가격의 범위, 수량의 범위 등 각 필드 당 검증 요구사항이 있습니다. > 지금까지 만든 프로그램은 상품명을 입력 안해도 되고 가격, 수량에 문자를 적..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - 메시지 화면의 상품명을 모두 상품이름으로 바꾸고 싶습니다. 이 프로젝트는 5군데가 하드코딩 되어있는데 실무에서는 수 백개를 고쳐야 할 수도 있습니다. 이때 여러 화면을 다 찾아가면서 고치는게 불편합니다. 이런 다양한 메시지를 한 곳에 관리하도록 하는 기능을 메시지 기능이라고 합니다. messages.properties라는 메시지 관리용 파일을 만들고 위 사진처럼 키, ..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - 텍스트 text, utext th:text해서 넣어주면 태그 사이에 content에 값이 들어갑니다. @GetMapping("/text-basic") public String textBasic(Model model) { model.addAttribute("data", " Hello Spring!"); return "basic/text-unescaped"; } 모델에 d..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 본론 - Model Attribute 실제 개발을 하면 요청을 받아서 객체를 만들고 그 객체에 값을 넣어주고 보통 위 코드처럼 예전에 코드를 작성했습니다. 지금 요청 파라미터를 배우는 과정이니 객체를 담아서 return하는 게 아니라 그냥 객체에 담아서 get으로 사용하는 과정입니다. 스프링은 이 과정을 완전히 자동화해주는 @Modelattribute를 제공합니다. @Data ..