Server Programming (202) 썸네일형 리스트형 [스프링 풀스택 클론 코딩 - 계정 설정] (2-9) 닉네임 변경 1. 리팩토링 패키지별로 구분 com.demo.settings.form : Nicknameform, Notifications, PasswordForm, Profile, SignUpForm 이동 com.demo.settings.validator : NicknameValidator, PasswordFormValidator 이동 2.객체를 미리 검증해주는 nicknameFormInitBinder 작성 : validator를 직접 호출하지 않고 사용할 수 있게 해주는 어노테이션 -> Validator를 사용 시 @Valid 어노테이션으로 검증할 객체를 가져오기 전에 수행할 method를 지정해주는 어노테이션 @InitBinder("passwordForm") public void passwordFormInitBi.. 인텔리J 단축키 인스턴스명 생성 = Ctrl+Space bar 오버라이딩 생성자 메서드 = Ctrl+O 클래스 생성 = Ctrl+n 테스트 키 = Ctrl +Shift+T 검색 =shift 두번 리팩토링 = 중복처리 =Ctrl+alt+V 클래스 이름 변경 = shift+F2 현재 클래스 실행 = Ctrl+Shift+R 이전 클래스 실행 = Ctrl+R [스프링 풀스택 클론 코딩 - 계정 설정] (2-8) ModelMapper 적용 ModelMapper : 객체의 프로퍼티를 다른 객체의 프로퍼티로 맵핑해주는 유틸리티 http://modelmapper.org/ ModelMapper - Simple, Intelligent, Object Mapping. Why ModelMapper? The goal of ModelMapper is to make object mapping easy, by automatically determining how one object model maps to another, based on conventions, in the same way that a human would - while providing a simple, refactoring-safe API for handli modelmapper.org 의존.. [스프링 풀스택 클론 코딩 - 계정 설정] (2-7) 알림 설정 Account //생성, 가입, 갱신정보 알림 설정 -> Email, Web, 둘다 private boolean studyCreatedByEmail; private boolean studyCreatedByWeb; private boolean studyEnrollmentResultByEmail; private boolean studyEnrollmentResultByWeb; private boolean studyUpdatedByEmail; private boolean studyUpdatedByWeb; //생성, 가입, 갱신정보 알림 설정 -> Email, Web, 둘다 private boolean studyCreatedByEmail; private boolean studyCreatedByWeb=true; p.. [스프링 풀스택 클론 코딩 - 계정 설정] (2-5) 패스워드 수정 SettingsController package com.demo.settings; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.Errors; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.InitBinder; import org.springfr.. [스프링 풀스택 클론 코딩 - 계정 설정] (2-4) 프로필 이미지 변경 npm install cropper npm install jquery-cropper $("#profile-image-file").change(function(e) { if (e.target.files.length === 1) { const reader = new FileReader(); reader.onload = e => { if (e.target.result) { let img = document.createElement("img"); img.id = 'new-profile'; img.src = e.target.result; img.width = 250; $newProfileImage.html(img); $newProfileImage.show(); $currentProfileImage.hide(); .. [스프링 풀스택 클론 코딩] 엔티티 상태에 따른 DB 반영 영속성 컨텍스트에서 관리하는 객체가 되면, DB에 적용이 된다. 엔터티의 상태 1. Transient: 객체를 생성하고, 값을 주어도 JPA나 hibernate가 그 객체에 관해 아무것도 모르는 상태. 즉, 데이터베이스와 매핑된 것이 아무것도 없다. 2. Persistent: 저장을 하고나서, JPA가 아는 상태(관리하는 상태)가 된다. 그러나 .save()를 했다고 해서, 이 순간 바로 DB에 이 객체에 대한 데이터가 들어가는 것은 아니다. JPA가 persistent 상태로 관리하고 있다가, 후에 데이터를 저장한다.(1차 캐시, Dirty Checking(변경사항 감지), Write Behind(최대한 늦게, 필요한 시점에 DB에 적용) 3. Detached: JPA가 더이상 관리하지 않는 상태. J.. [스프링 풀스택 클론 코딩 - 계정 설정] (2-2) 프로필 수정 처리 SettingsController package com.demo.settings; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.Errors; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; import.. 이전 1 ··· 18 19 20 21 22 23 24 ··· 26 다음