분류 전체보기 (109) 썸네일형 리스트형 ArrayList Class Iterable interface 목록에서 원소를 자동으로 하나하나꺼내는 for문에서 사용할 수 있다. => for each loop E set(int index, E element) Replaces the element at the specified position in this list with the specified element. Returns the element previously at the specified position => 변경 이전 값 리턴 boolean add(E e) Appends the specified element to the end of this list. void add(int index, E element) Inserts the specified element at .. streamAPI의 오해 - for문 종종 streamAPI forEach가 for문 보다 느려서, for문이 더 무조건 효율적이라는 글들이 있다. for문 - 캐쉬. 반복문이 10만 100만인가 반복하면 캐쉬안함. => arrayList, LinkedList 성능 차이 테스트할 때, arrayList가 LinkedList 보다 훨씬 빨랏다. 이유는 캐쉬 LinkedList는 객체간 연관성이라 캐쉬가 안됨 arryList는 메모리 배열을 그대로 캐쉬에 넣엇다. 따라서 큰단위에서는 캐쉬를 안한다. @Setter VO (Value Object) - 데이터 그 자체로 의미 있는 것을 담아 두는 객체 DTO (Data Transfer Object) - 전송되는 데이터 객체 빌더패턴 : 객체의 생성을 쉽게 한다. @Setter를 사용하면 객체를 언제든지 변경할 수 있는 상태가 되어서 객체 안정성을 보장받기 힘들다. 즉, 무분별하게 사용하면 객체의 상태가 어디서 바뀌는지 모르는 문제가 발생한다. 이 문제의 해결방법으로는 Value Object로 만들어서 객체를 Value처럼 사용한다. 즉, 새로운 객체를 만드는 방법이 있다. 그래서 JPA에서 Update 작업시, 엔티티에서 @Setter를 사용하지 않고 빌더패턴으로(일부만 변경해서 새로운 객체를 생성하는 작업)을 사용했다. 즉, setter를 빌더패턴으로 대체했다. 하.. 토비의 스프링3.1 - 템플릿 메소드 패턴, 팩토리 메소드 패턴 Date - 2019. 03. 03 템플릿 메소드 패턴(Template method pattern) - 상속을 통해 부모클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법이다. - 변하지 않는 기능은 부모클래스에 만들어주고 자주 변경되며 확장할 기능은 자식클래스에서 만들도록 한다.- 부모 클래스에는 기본적인 로직과 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 메소드 등으로 만든다. - 자식 클래스에는 부모 클래스에서 만든 그 메소드를 필요에 맞게 구현한다.- 훅 메소드 : 선택적 오버라이드할 수 있도록 만들어둔 메소드 팩토리 메소드 패턴(Factory method pattern) - 객체 생성을 직접하지 않고, 하위 클래스가 어떤 객체를 생성할지 결정하도록 위임하는 디자인 패턴이다.- 즉, 오.. Spring Security + Spring MVC JPA Entity Class# User.java import lombok.Data; import javax.persistence.*;@Data @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) int id; @Column(name = "userId") String loginId; String password; String name; String email; boolean enabled; String userType; @ManyToOne @JoinColumn(name = "departmentId") Department department; } Repository Class# UserRepository.ja.. Spring Security 보안 관련 3요소접근 주체(Principal) : 보호된 대상에 접근하는 사용자인증(authentication) : 사용자의 신원을 식별하는 기능. ex) 로그인 기능인가(authorization) : 권한 관리 기능. ex) role # 인증(authentication) 방식 1. credential 기반 인증 : 사용자명과 비밀번호를 이용. 2. 이중 인증 : 사용자가 입력한 개인정보를 인증 후, 다른 인증 체계를 이용하여 두가지의 조합으로 인증. 3. 하드웨어 인증 : 자동차 키와 같은 방식. 이 중 Spring Security는 credential 기반의 인증을 취한다. principal : 아이디 / credential : 비밀번호 Spring Security 구조Spring Security :.. spring core(핵심) 기능 1) Dependency Injection (DI) 기능 사용할 객체를 소스코드에서 직접 생성하지 않는다. 직접 생성의 예) StudentService studentService = new StudentService(); 스프링 엔진이 생성하여 넣어 준다(inject). 예) @Autowired StudentService studentService; 이 기능이 좋은(핵심인) 이유. 프로젝트가 커지면, 수정할(유지보수할)일이 점점 많아진다. 처음에는 StudentService 클래스를 구현해서 잘 사용했는데, 요구사항이 변해서, StudentService 클래스를 상속해서, StudentService2 클래스를 새로 구현하였다. 예) class StudentService2 extends StudentSer.. ModelAttribute model attribute //Get @RequestMapping(value="register", method=RequestMethod.GET) public String register(Model model, UserRegistrationModel userModel) { model.addAttribute("departments", departmentService.findAll()); return "user/register"; } //Post @RequestMapping(value="register", method=RequestMethod.POST) public String register(@Valid UserRegistrationModel userModel, BindingResult bindingRes.. 이전 1 ··· 9 10 11 12 13 14 다음