인증과 인가란인증 : (식별가능한 정보로) 서비스에 등록된 유저의 신원을 입증하는 과정인가 : 인증된 사용자에 대한 자원 접근 권한 확인 자원을 적절한/유효한 사용자에게 전달/공개하기 위한 방법 인증하기(로그인하기) - Request Header 아이디와 비밀번호를 앞에 달아주기만 해도 API가 구축되어 있는 상황이라면 자동으로 로그인 요청이 간다. (브라우저가 처리) 들어온 URI에서 user:1q2w3e!를 파싱한 후 Base64 인코더를 이용해서 인코딩을 한 후에 전달을 해준다. 그 다음 요청 헤더에 넣어서 보내주는 개념이다. HTTP로 쏘면 서버가 DB checking을 하고 DB에 실제로 값이 있으니 ok 싸인을 준다. 문제점사용자가 매번 로그인을 계속 해주어야 한다.이걸 해결하기 위해 브..
전체 글
스프링 컨텍스트: 프레임워크가 관리하는 객체를 유지하는 데 사용하는 앱 메모리 공간이다. 프레임워크가 제공하는 기능으로 스프링 컨텍스트에서 보강해야 하는 모든 객체를 추가해야 한다. 2장에서는 컨텍스트 인스턴스의 getBean() 메서드를 사용하여 빈에 직접적으로 액세스했다. 하지만 앱에서는 필요한 곳에 스프링 컨텍스트의 인스턴스 참조를 제공하도록 스프링에 지시함으로써 하나의 빈에서 다른 빈으로 직관적으로 참조할 수 있게 해야 한다. 이 방법으로 빈들 사이의 관계를 설정한다(하나의 빈을 필요할 때 호출을 위임하고자 다른 빈에 대한 참조를 갖게 된다). 구성 파일에서 정의된 빈 간 관계 구현이번에는 @Bean 애너테이션으로 메서드를 지정하는 구성 클래스에서 정의된 두 빈 간 관계를 구현하는 방법을 배운다...
@Controller은 전통적인 Spring 컨트롤러에 사용되며, 프레임워크의 일부로 오랫동안 사용되어 왔다. Spring 4.0에서는 RESTful 웹 서비스를 더 쉽게 만들 수 있도록 @RestController 애노테이션을 도입했다. 이 애노테이션은 @Controller와 @ResponseBody를 결합하여, 컨트롤러 클래스의 모든 요청 처리 메서드에 @ResponseBody를 붙일 필요가 없도록 한다. controller - view, restcontroller - 데이터 @Controller전통적인 컨트롤러는 @Controller 애노테이션을 사용하여 주석을 달 수 있다. 이 애노테이션은 단순히 @Component 클래스의 특수화된 형태로, classpath scanning을 통해 구현 클래스를..
메이븐 프로젝트 생성메이븐 [Spring] Maven과 Gradle빌드 관리 도구빌드소스 코드 파일을 컴파일에서 실행할 수 있는 가공물로 변환하는 과정 또는 결과물우리가 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, jpa, jpg, properbest11gh.tistory.com사용하는 프레임워크에 관계없이 앱의 빌드 프로세스를 쉽게 관리하는 데 사용하는 도구실제 시나리오에서 스프링 프로젝트에 가장 많이 사용되는 빌드 도구 중 하나이다.GroupId : 관련된 여러 프로젝트를 그룹화하는 데 사용ArtifactId : 현재 애플리케이션 이름Version : 현재 구현 상태의 식별자, 프로젝트를 설정할 때 버전 설정이 나오지 않는다면 생성 후 pox.xml 파일에서 설정..
RESTful API란?APIApplication Programming Interface의 약어두 애플리케이션이 서로 통신하는 방법을 정의RESTfulREST 아키텍처 스타일로 요청과 응답을 하는 APIREST 아키텍처의 탄생 배경HTTP 프로토콜REST의 기반이 된다.클라이언트와 서버 간의 데이터를 주고받기 위해 사용되는 표준 HTTP 프로토콜이 표준화되어있긴 하지만 이를 어떻게 구현해야할지 그 방식에 대해서는 유연하기 때문에 개발자마다 구현 방식이 달라지게 된다. → 내용이 복잡하고 유지보수가 어렵게 된다. → 웹(HTTP)의 장점을 최대한 활용할 수 있는 REST 아키텍쳐를 만들자 REST란?REpresentational State Trasfer(표현 상태 전달)의 약자= 자원을 이름(표현)으로..
순수 Jdbc와 동일한 환경설정을 하면 된다.스프링 JdbcTemplate과 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 대부분 제거해준다. 하지만 SQL은 직접 작성해야 한다. public class JdbcTemplateMemberRepository implements MemberRepository { private final JdbcTemplate jdbcTemplate; @Autowired public JdbcTemplateMemberRepository(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource) } @Override public Mem..