SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 - SRP (Single responsibility principle): 단일 책임 원칙 - OCP(Open/closed principle) : 개방-폐쇄 원칙 - LSP(Liskov substitution principle) : 리스코프 치환 원칙 - ISP(Interface segregation principle) : 인터페이스 분리 원칙 - DIP(Dependency inversion principle) : 의존관계 역전 원칙 SRP (Single responsibility principle) 단일 책임 원칙 - 하나의 클래스는 하나의 책임만 가져야 한다. - 하나의 책임이라는 것은 모호하다. > 클 수 있고, 작..
객체지향의 특징 - 캡슐화 - 상속 - 추상화 - 다형성 객체지향 프로그래밍이란? 객체지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메세지를 주고받고 , 데이터를 처리할 수 있다. (협력) 객체지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기때문에 대규모 스프트웨어 개발에 많이 사용된다. 유연하고 변경이 용이 컴포넌트를 쉽고 유연하게 변경하면서 개발 할 수 있는 방법 궁극의 유연함, 궁극의 변경 용이 >> 다형성 (Polimorphism) 다형성 역할과 구현으로 구분 실생활에서 비유 ) 운전자는 소나타를 타다가 테슬라 3로 바꾼다 > 그래도 운전 할 수 있음. 자동차라는 역할에 ..
Spring 이란? Java 의 웹 프레임워크로 Java 언어를 기반으로 사용한다. Java를 이용한 기술은 JSP,MyBatis,JPA 등 여러가지가 있는데 Spring은 이 기술들을 더 편하게 사용하기 위해 만들어졌다. Spring의 장점 1. 중복코드의 사용률 감소 2. 비즈니스 로직을 더 간단하게 해준다. 3.오픈소스를 보다 효율적으로 사용이 가능 => Java 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임 워크 Spring 생태계 Spring은 어떤 특정한 하나가 아니라, 여러가지 기술들의 모음이다. - 스프링프레임워크 : 스프링의 핵심이 되는 기술 - 스프링부트 : 여러 스프링 기술들을 편리하게 사용하도록 도와줌 - 스트링 데이터 : DB 기술을 간단하게 도와주는 기술. 가장 많이 ..
리뷰를 GET 할 때 리뷰 이미지에 index값이 1,2,3,4,5, 이런식으로 들어오는 게 아니라 이런 식으로 들어온다.. 이제 왜때문에 이렇게 값이 들어오는지 파보도록 하자 .. * 오른쪽으로 들어와야 정상 = localhost로 연결했을 때 상황 우선, 추측을 해보면 1. addReview 할 때 애초에 잘못 insert 했다. 2. getReview 할 때 reviewImage 값 set이 이상하게 됐다. 3. 배포 연결한 DB 설정 /서버 문제 정도로 우선 예상이 가는데 우선 local에서는 같은 코드로도 아주 잘 돌아가니 3번이 제일 의심간다 (근데 저 ImageIndexs는 Vo로 만든건데 그게 연관이 있나..) 우선 배포한 사이트에서만 오류가 나기때문에 서버로그를 확인하기 위해 SSH 접속..
이번엔 회원가입, 이메일 재설정,비밀번호 재설정 등 많은 서비스 구현에서 사용되는 emailAuth 를 구현해보자 ! 1. '이메일 인증' 버튼을 누르면 Controller 에서 작동될 'postEmail' 메서드 만들기 @RequestMapping(value = "email", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public String postEmail(UserEntity user, EmailAuthEntity emailAuth) throws NoSuchAlgorithmException, MessagingException { Enum result = this.memberServic..
1. MemberController에서 회원가입시 정보를 받을 화면을 getRegister 메서드에서 register.html 연결 @RequestMapping(value = "register", method = RequestMethod.GET, produces = MediaType.TEXT_HTML_VALUE) public ModelAndView getRegister() { ModelAndView modelAndView = new ModelAndView("member/register"); return modelAndView; } 2. 이메일 인증,비밀번호 해싱 등 다른 서비스 구현은 다음에 할 테니 우선 생략 위 html 에서 입력받은 'user' 객체를'IMemberMapper' 객체의 'insert..