반응형

분류 전체보기 543

[Spring] #15. 데이터 바인딩 추상화: PropertyEditor

데이터 바인딩 -기술적 관점: 프로퍼티의 값을 타겟 객체에 설정하는 기능 -사용자 관점: 사용자의 입력값을 애플리케이션 도메인 모델에 동적으로 할당하는 기능, 즉 입력값은 '문자열'인데, 그 값을 int, long, boolean, date 등 또는 Event, Book 같은 도메인 타입 그 자체로 변환해야 하는 경우 변환해주는 기능 -DataBinder 인터페이스: 여러 곳에서 쓰이는 스프링의 핵심 기술 중 하나로 데이터 바인딩에 관한 기능을 여러 인터페이스로 적절히 추상화시켜놓음 //Event.java public class Event { private Integer id; private String title; public Event(Integer id) { this.id=id; } public I..

[Spring] #14. Validation 추상화

Validation 추상화 -Bean Validation: 자바 표준 스펙 중 하나 -Validator: 주로 애플리케이션 MVC에서 사용하지만, 어떤 계층에서도 사용 가능한 인터페이스 두 가지 메소드를 제공합니다 ·supports: 검증해야 하는 인스턴스의 클래스가 해당 Validator가 지원 및 검증할 수 있는 클래스인지 확인해줍니다. ·validate: 실질적으로 검증 작업이 일어나는 곳입니다. //Event.java public class Event { Integer id; String title; public Integer getId() { return id; } public void setId(Integer id) { this.id=id; } public String getTitle() { ..

[Spring] #13. Resource 추상화

Resouce 추상화 -java.net.URL이라는 클래스를 org.springframework.core.io.Resource라는 클래스로 감싸서 low level에 있는 resource에 접근하는 기능입니다. -클래스 패스를 기준으로 리소스를 읽어오는 기능이 이전에 없었기 때문에 resource를 추상화한 것입니다. //클래스 패스를 기준으로 location에 있는 설정 파일을 찾는 방법 @Autowired ResourceLoader resourceLoader; @Override public void run(ApplicationArguments args) throws Exception { var ctx=new ClassPathXmlApplicationContext(configLocation: "sldi..

[Spring Boot] #5_1 게시판 만들기

학습 목표 -JSON API 및 AJAX를 활용해 답변 추가/삭제 구현 학습 목차 5-1. AJAX를 활용해 답변 추가 기능 구현 5-2. AJAX를 활용해 답변 추가 기능 구현2 5-3. AJAX를 활용해 답변 삭제 기능 구현 5-4. 질문 목록에 답변 수 보여주기 기능 추가 5-4. 중복 제거 및 리팩토링 5-5. JSON API 추가 및 리팩토링 footer.html에 사용하려는 js 파일들이 나와있습니다. 그 중 작업하려는 파일은 scripts.js 입니다. JQuery를 이용해서 답변하기를 클릭했을 때 서버로 바로 넘어가지 않도록 구현합니다. 1. class 이름을 "answer-write"으로 변경합니다. 1. action의 주소 앞에 "/api"를 추가하여 응답을 JSON이나 데이터만 준다는..

[Spring Boot] #4_3 게시판 만들기

학습 목표 -객체 간의 관계 설정(@OneToMany, @ManyToOne 등) 학습 목차 4-1. 회원과 질문 간의 관계 매핑 및 리팩토링 4-2. 질문 상세보기 기능 구현 4-3. 질문 수정/삭제 기능 구현 4-4. 수정/삭제 기능에 대한 보안 처리 및 LocalDateTime 설정 4-5. 답변 추가 및 답변 목록 기능 구현 4-6. QuestionController 중복 제거 리팩토링 4-7. 원격 서버에 소스 코드 배포 //QuestionController.java @Controller @RequestMapping("/questions") public class QuestionController { @Autowired private QuestionRepository questionReposito..

[Spring Boot] #4_2 게시판 만들기

학습 목표 -객체 간의 관계 설정(@OneToMany, @ManyToOne 등) 학습 목차 4-1. 회원과 질문 간의 관계 매핑 및 리팩토링 4-2. 질문 상세보기 기능 구현 4-3. 질문 수정/삭제 기능 구현 4-4. 수정/삭제 기능에 대한 보안 처리 및 LocalDateTime 설정 4-5. 답변 추가 및 답변 목록 기능 구현 4-6. QuestionController 중복 제거 리팩토링 4-7. 원격 서버에 소스 코드 배포 //QuestionController.java @Controller @RequestMapping("/questions") public class QuestionController { @Autowired private QuestionRepository questionReposito..

[Spring Boot] #4_1 게시판 만들기

학습 목표 -객체 간의 관계 설정(@OneToMany, @ManyToOne 등) 학습 목차 4-1. 회원과 질문 간의 관계 매핑 및 리팩토링 4-2. 질문 상세보기 기능 구현 4-3. 질문 수정/삭제 기능 구현 4-4. 수정/삭제 기능에 대한 보안 처리 및 LocalDateTime 설정 4-5. 답변 추가 및 답변 목록 기능 구현 4-6. QuestionController 중복 제거 리팩토링 4-7. 원격 서버에 소스 코드 배포 //Question.java @Entity public class Question { @Id @GeneratedValue private Long id; @ManyToOne//2. @JoinColumn(foreignKey=@ForeignKey(name="fk_question_wri..

[Spring Boot] #3_2 게시판 만들기

학습 목표 -로그인 기능 구현을 통한 쿠키와 세션에 대한 대략적인 이해 -로그인 사용자에 대한 접근 제한 학습 목차 3-1. 로그인 기능 구현 3-2. 로그인 상태에 따른 메뉴 처리 및 로그아웃 3-3. 로그인 사용자에 한해 자신의 정보를 수정하도록 수정 3-4. 중복 제거 및 읽기 좋은 코드를 위한 리팩토링 3-5. 질문하기, 질문목록 기능 구현 3-6. 원격 서버에 소스 코드 배포 //User.java @Entity public class User { @Id @GeneratedValue private Long id; @Column(nullable=false, length=20) private String userId; private String password; private String name; ..

[Spring Boot] #3_1 게시판 만들기

학습 목표 -로그인 기능 구현을 통한 쿠키와 세션에 대한 대략적인 이해 -로그인 사용자에 대한 접근 제한 학습 목차 3-1. 로그인 기능 구현 3-2. 로그인 상태에 따른 메뉴 처리 및 로그아웃 3-3. 로그인 사용자에 한해 자신의 정보를 수정하도록 수정 3-4. 중복 제거 및 읽기 좋은 코드를 위한 리팩토링 3-5. 질문하기, 질문목록 기능 구현 3-6. 원격 서버에 소스 코드 배포 //UserController.java @Controller @RequestMapping("/users") public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/loginForm")//1. public Stri..

[Spring Boot] #2_2 게시판 만들기

학습 목표 -데이터베이스에 사용자 데이터 추가 -개인정보 수정 기능 구현 -질문하기, 질문목록 기능 구현 학습 목차 2-1. QnA HTML 템플릿, H2 데이터베이스 설치, 설정, 관리 툴 확인 2-2. 자바 객체와 테이블 매핑, 회원가입 기능 구현 2-3. HTML 정리, URL 정리 2-4. 개인정보 수정 기능 구현 1 (수정 화면으로 이동할 수 있는 기능 구현) 2-5. 개인정보 수정 기능 구현 2 (수정 화면에서 사용자가 수정한 내용을 다시 submit하면, 서버가 받아서 database에 수정을 해주는 기능 구현) 2-6. 원격 서버에 소스 코드 배포 //HomeController.java @Controller public class HomeController {//1. @GetMapping(..

반응형