서비스 추상화 서비스 추상화란 어떤 기능이나 상위기준에서 이해하고 다루기 위해서 세부 사항을 숨기고 추상화하는 것을 말한다. 즉 복잡한 시스템을 관리하기 쉽고 이해하기 쉽게 만들기 위함이다. 단 이몇줄로 이해하기 힘들 것이다. 간단한 코드를 통해서 어떤 식으로 추상화를 사용하는지 알아보자 예시 간단한 카페 등급을 예시를 들어서 생각해보자 카페 등급에는 총 3단계로 이뤄저 있다. 초급 단계 : 카페 가입시 기본등급 중급 단계 : 게시글 작성 3회 이상, 로그인 횟수 10회 이상 고급 단계 : 게시글 작성 10회 이상. 로그인 횟수 20회 이상 이 조건을 만족해야만 해당 등급으로 변경된다. 이런 기능을 추가할때는 DAO에다가 기능을 적용할 수도 있다. 하지만 스프링이 추구하는 "역할과 책임"을 위배하는 코드..
분류 전체보기
Exception 예외 종류 Error java.lang.Error 클래스의 서브 클래스이다. 에러는 시스템에 뭔가 비정상적인 상황이 발생했을때 사용된다. 체크 예외와 언체크 예외 Exception java.lang.Exception 클래스와 그 서브 클래스로 정의되는 예외들은 에러와 달리 개발자가 작업중에 코드에 예외상황이 발생했을때 사용된다. 체크예외 컴파일에러 복구불가능한 에러 RuntimeException만 상속받지않은 예외 RuntimeException java.lang.RuntimeException 클래스를 상속한 예외들은 명시적인 예외처리를 강제하기 때문에 언체크 예외라고 불린다. 런타임 예외 개발자가 부주의해서 발생할 수 있는 경우에 발생하도록 만든 예외 catch나 throws를 사용하지..
오브젝트 및 의존관계 들어가며 토비 님의 토비스프링 책을 참고하여 작성했으며, gradle로 파일을 설정하며 lombok 등의 플로그인을 사용하여 코드를 단순화했습니다. 오브젝트 오브젝트란 자바(Java)에서 "오브젝트"는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 개념에 기반한 핵심 요소입니다. 객체 지향 프로그래밍은 현실 세계의 사물을 모델링하고 이를 소프트웨어로 구현하는 개념입니다. 스프링을 이해하려면 일단 오브젝트에 대해서 관심을 두어야한다. 애플리케이션에서 오브젝트가 어떻게 생성되며, 어떤 관계 맺고 사용되고 소멸되기까지 전 과정을 이해해야 하는 것이 중요하다. 결국 오브젝트를 의 설계 방향으로 발전했다. 객체지향 설계의 기초를 비롯해서이다.(재활용과, 더..
상품등록을 위한 엔티티 설계 및 등록하기 들어가며 이번포스팅에서는 상품을 등록하는 기능을 개발해 보겠습니다. (도서 판매 페이지를 기준으로 개발) 엔티티 설계 사용자가 상품을 등록할때에는 여러 개의 상품을 등록할 수 있으며, 상품은 사용자의 한 명으로만 매핑되도록 설계했으며 아이템엔티티는 상속을 통해서 Book을 설계하도록 했습니다. 엔티티 작성 Member @OneToMany(mappedBy = "member") private List items = new ArrayList(); 일대다 관계 매핑을 위해서 Member 에다가 위에 코드를 추가한다. Item @Entity @Getter@Setter public abstract class Item { @Id@GeneratedValue private Lon..
아이디(이메일인증 통한) 찾기 및 비밀번호 찾기 들어가며 이번에는 회원가입을 했을때 아이디나 비밀번호가 기억이 나지않았을때 찾을수있는 기능을 구현해볼 예정입니다. 아이디는 보인인증을 통해서 찾으며 비밀번호는 찾은 아이디와 이름을 통해서 찾아볼 계횝입니다. 또한 찾은 비밀번호를 url에서는 암호화해서 표시하도록 해보겠습니다. Reposiotry Repository를 작성해야합니다. 저번에 LoginRepositoryImpl를 구현했지만 이번에는 LoginFindRepositoryImpl를 구현해볼 예정입니다. 그래서 LoginRepository 를 상속받아서 새로 메소드를 정의해서 만들어보겠습니다. LoginFindRepositoryImpl @Repository @RequiredArgsConstructor..
세션을 사용하여 로그인(아이디 기억하기) 및 로그아웃하기 들어가며 이번 포스팅에서는 세션을 사용하여 로그인상태를 유지하고 사용자권한별로 접속하는 페이지가 다르게 하며 로그아웃하는 기능을 개발해 보겠습니다. Repository 이번 로그인에서도 JpaRepositroy를 사용하지 않고 직접 개발하여 사용하도록 하겠습니다 Reposiotry를 인터페이스로 만들어 오버라이딩하여 사용하도록 하겠습니다. LoginRepository public interface LoginRepository { List findById(String id); List findBPwd(String pwd); } findById(String id) : 객체에서 아이디값을 찾는 메서드 findByPwd(String pwd) : 객체에서 ..
로그인 페이지 레이아웃 구성 들어가며 이전 포스팅까지는 회원가입을 하는기능을 개발해봤습니다. 이제부터는 회원가입한 데이터값을 이용해서 로그인 기능을 개발해볼 예정입니다. 이번 포스팅에서는 로그인 페이지의 레이아웃 부터 구성해보겠습니다. 예상 로그인 페이지 간단한 기능이 있는 로그인 페이지 HTML 기존에 만들었던 header.html 에서 href 부분에 "/login"을 추가한다. | 로그인 templates/ 하위에 login폴더 생성후 loginPage.html 생성 bootstrap을 사용할 예정이라 css파일에다가 bootstrap다운받은후에 bootstrap.min.css 파일을 넣어줘야합니다. loginPage.html 책방 Id Password Remember Id Sign in 아이디 찾..