본문 바로가기

프레임워크

(35)
@RestController와 @ResponseBody의 상관관계 HTTP 통신 HTTP통신은 Header와 Body로 정보를 주고 받으면 통신을 한다. 여기서 ResponseBody란 Body에 해당 정보를 넣어서 응답을 하겠다는 의미이다. 현재는 주로 JSON Format을 활용한 방식이 주가 되었다. Spring MVC 흐름 @RestContoller를 설명하기전에 스프링에서 데이터가 송수신되는 과정을 살펴보자. 1. 클라이언트는 웹서버에 요청을 보내게 된다. 2. Dispatcher Servlet을 Front controller로써, 그 요청을 받게되고 요청을 처리할 Hanlder Mapping을 찾게 된다. 3. Hadler Mapping을 찾고, Handler Mapping에 의해 적합한 Controller을 찾고 Controller은 작업후 결과를 반환하게..
2. IOC, DI Spring Boot탐구(2)
Spring Security 구조 Spring Security 란 spring application 의 사용자 인증(Authentication), 권한 부여(Authorize) 및 기타 보안 기능을 제공하는 Java / Java EE 프레임 워크이다. 보안 분야는 아무래도 개발에 있어서 시간이 많이 소요되는 것들 중 하나이다. Spring Security 는 미리 짜여진 내부 로직을 통해 인증, 권한 확인에 필요한 옵션을 제공한다. Authentication & Authorization 특정 자원에 대한 접근을 제어하기위해 객체는 "권한" 을 가진다. 특정 권한을 얻기 위해 사용자는 인증정보(Authentication) 을 제출해야하고 관리자는 해당 정보를 참고해서 권한을 부여(Authorization) 한다. 보편적으로 username..
@Qualifier, @Primary @Autowired, @Resource, @Inject 어노테이션으로만 자동적으로 객체를 주입할 경우 컨테이너에서 주입할 대상이 여러개여서 의존성을 주입하지 못하는 경우가 발생할 수 있다. public class Player { @Autowired private Weapon weapon; Player(){ } public Player(Weapon weapon) { super(); this.weapon = weapon; } public void setWeapon(Weapon weapon) { this.weapon = weapon; } public Weapon getWeapon() { return weapon; } public void usePlayerWeapon() { weapon.useWeapon(); ..
1. IOC, DI Spring Boot탐구(1) 최근 Spring Boot에 대해서, 좀더 깊게 알아보고자 Spring boot 내부 코드를 Clone Coding하면서 알아가는 과정을 거쳤다. 그 내용을 정리해보고자 한다. https://github.com/diqksrk/spring-boot-ioc-di GitHub - diqksrk/spring-boot-ioc-di Contribute to diqksrk/spring-boot-ioc-di development by creating an account on GitHub. github.com Annotation Application Context 기존의 XML방식에서 벗어나 @Annotation을 활용하여 새로운 장을 열게 해준 클래스이다. public class AnnotationConfigAppli..
Spring Aop Aop란? AOP(Aspect Oriented Programing)는 관점지향형 프로그래밍이다. 이는 반복 사용되는 로직들을 모듈화 하여 필요할때 호출해서 사용하는 방법이다. 즉 횡단 관심사(Cross-Cutting Concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. * Proxy는 중개인을 뜻하는 영단어로써, 업무처리를 대신한다는 개념이다. 구체적인 예시를 통해 알아보자. public interface ControllerContainer { public void controller1(int[] arr); public void controller2(int[] arr); } public static class ControllerFactory implements C..
JWT란 ? Auithorization 인가(Authorization)는 요청을 보낸 유저가 그 서비스를 사용할 수 있는 유저인지를 확인하는 절차이다. 인가 = Can you do that? 을 확인하는 과정 서버는 그 유저를 어떻게 확인할까? Authorization 절차는 다음과 같다. 서버에 로그인을 성공한 유저는 인증을 받았다는 표시로 그 서버가 발행한 토큰을 발급받는다. 보통 이 토큰을 access token 이라고 한다. 이 token에는 user id와 같이 아주 중요한 정보가 아니면서도(예를 들어 주민등록번호 같은) 유저를 확실하게 구분할 수 있는 정보가 있어야 한다. 인증을 받은 유저는 request를 보낼 때 request header에 보통 'Authorization' 라는 이름으로 token 정..
Restful api 규칙 Restful api 설계시 가장 중요한 항목은 다음 2가지로 나눌 수 있습니다. 1-1 REST API 중심 규칙 1. URI는 정보의 자원을 표현해야 한다. 2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. 1) URI는 정보의 자원을 표현해야 한다. GET /members/delete/1 다음의 행위는 REST를 제대로 적용하지 않은 URI입니다. URI는 자원을 표현하는데 중점을 두어야 합니다. Delete와 같은 행위에 대한 표현이 들어가서는 안된다. 2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. 위의 경우를 수정하면 DELETE /members/1 와 같은 형태로 수정이 가능하다. 실제로..