1. Spring Data JPA ORM이란? Object Relation Mapping으로 객체(클래스)와 관계(관계형 데이터베이스)와의 설정을 의미한다. 객체지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다. 여기서 객체 모델과 관계형 모델간의 불일치가 존재하는데 이 객체간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결하는것이 ORM이다. JPA Java Persistence API로 자바 ORM 기술에 대한 표준 명세이다. 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. JPA는 특정 기능을하는 라이브러리가 아니다. JPA는 단순히 명세이기 때문에 구현이 없다. 하이버네이트 (Hibernate) 하이버네이트는 JPA라는 명세의 구현..
1. JUnit을 이용한 단위테스트 단위테스트란? 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인 할 수 있게 해준다. JUnit이란? 자바 프로그래밍 언어용 단위 테스트 프레임워크 이다. TDD (Test-Driven Development)? AS-IS) 설계 -> 개발 -> 테스트 -> 설계수정 TO-BE) 설계 -> 테스트 -> 설계수정 -> 테스트 TO-BE 방법이 테스트 주도 개발 TDD이다. Mockito Mock 객체를 쉽게 만들 수 있는 방법을 제공해준다. 스프링부트 안에 포함되어있다. Mock이란 각 테스트 케이스는 서로 분리되어야 좋기 때문에 가짜 객체 (Mock object)를 생성하는 것이..
1. 인증,인가 와 쿠키,세션 인증(Authenication) : 사용자 신원을 확인하는 행위 인가(Authorization) : 사용자 권한을 확인하는 행위 웹에서의 인증 및 인가 인증 : 로그인을 통해 본인임을 확인 (주로, 아이디와 패스워드 이용) 인가 : 주로 역할에 따른 사용권한 관리 HTTP HTTP는 상태를 저장하지 않는다. (Stateless 하다) 위에 그림에서 클라이언트의 요청을 서버에게 보낸 후 응답을 받을 때 까지가 하나의 HTTP요청이다. 하지만 HTTP 상태는 기억되지 않기 때문에 웹 서버에서는 1번과 2번이 같은 클라이언트의 요청인지 알 수 없다. 쿠키와 세션 모두 HTTP에 상태 정보를 유지(Stateful)하기 위해 사용된다. 즉, 쿠키와 세션을 통해 서버에서는 클라이언트 ..
1. Servlet, Controller Servlet(서블릿)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말한다. 예전에는 서블릿으로 모두 자바코드를 작성하였지만 스프링이 나오게 되고 Client와 Server간에 통신에 필요한 JSON코드로 스프링이 알아서 변경을 해주게 되어서 서블릿 코드를 직접 작성할 필요가 없게 되었다. 위 사진 처럼 Request가 들어오면 Controller전에 Servlet이 먼저 받게되는데 스프링에서 알아서 Servlet으로 받고 Controller로 보내주기 때문에 따로 코드를 작성안해도 된다. 2. Controller vs RestController Controller @Controller class ExamController { @..