Spring/Spring[Info](19)
-
Spring[Info] - RESTful
🤔 REST (Representational State Transfer) 자원의 상태 전달 네트워크 아키텍처 🤔 REST 조건 1. Client, Server 클라이언트와 서버가 서로 독립적으로분리 되어 있어야 한다. 2. Stateless 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다. 3. Cache 클라이언트는 서버의 응답을 Cache(임시저장) 할 수 있어야 한다. 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮춤 4. 계층화 (Layered System) 서버와 클라이언트 사이에 방화벽, 게이트웨이, Proxy등 다양한 계층 형태로 구성 가능해야 하고 이를 확장 할 수 있어야 한다. 5. 인터페이스 일관성 인터페이스의 일관성을 지키고, ..
2021.07.02 -
Spring[Info] - Validation
🤔 Validation? 일반적인 애플리케이션에서 데이터 유효성 검사 로직은 다음과 같은 문제를 가지고 있다. 애플리케이션 전체에 분산되어 있다. 코드 중복이 심하다. 비즈니스 로직에 섞여있어 검사 로직 추척이 어렵고 애플리케이션이 복잡해진다. 위 경우를 해결하기 위한 Bean Validation 이라는 데이터 유효성 검사 프레임워크를 제공하고 있다. Validation Anntation Validation 사용법 dependencies { implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.1' } build.gradle 추가 @Data public class Input..
2021.07.02 -
Spring[Info] - Redis
Reference 개발자를 위한 레디스 튜토리얼 01 : NHN Cloud Meetup 🤔 Redis ? Remote DIctionary Server 레디스는 In-Memory 데이터베이스 즉, 모든 데이터를 메모리에 저장하고 죄회 기존 관계형 데이터베이스 보다 훨씬 빠름 다양한 자료 구조를 지원 * DB CRUD작업 시 Redis cache에 저장하여 비교 작업후 DB에 접근하는 방식을 주로 사용한다. * Redis cache에 DB data가 있는지 확인 후 실제 DB에 접근하기 때문에 부하량이 적어진다. Redis 자료 구조 String 레디스의 String은 키와 연결할 수 있는 가장 간단한 유형의 값 키가 문자열이므로 이 구조는 문자열을 다른 문자열에 매핑하는 것 string 타입에는 '모든 종..
2021.07.02 -
Spring[Info] Filter 와 Interceptor
Filiter DispatcherServlet 앞에서 먼저 동작 웹 어플리케이션의 Context의 기능 스프링 기능을 활용하기에 어려움 일반적으로 인코딩, CORS, XSS, LOG, 인증, 권한 등을 구현 Interceptor DispatcherServlet에서 Controller 사이에서 동작 Spring Context의 기능이며 일종의 빈 스프링 컨테이너이기에 다른 빈을 중비하여 활용성이 좋음 다른 빈을 활용 가능하기에 인증, 권한 등을 구현 스프링부트에서 필터 설정 1. FilterRegistrationBean으로 등록 자바 프로그래밍 방식으로 FilterRegistrationBean을 이용해서 필터로 등록한 후에 WebMvcConfigurer을 상속 받아 설정 후 빈으로 등록하는 방식 @Slf4..
2021.07.02 -
Spring[Info] - JPA 프로그래밍
🤔 ORM? (Objet-relational mapping) 객체는 객체대로 설계하고, 관계형 데이터베이스는 베이스대로 설계 ORM 프레임워크가 중간에서 매핑해줌 대중적인 언어에는 대부분 ORM 기술이 존재 즉, SQL Query가 아닌 직관적인 코드(메서드)로서 데이터를 조작할 수 있다. ex) Select * from member; 이를 ORM을 사용하면 member.findAll()이라는 메서드 호출로 데이터 조회가 가능하다. 🤔 JPA? (Java Persistence API) 한마디로 ORM을 사용하기 위한 인터페이스를 모아둔 것 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 결국 인터페이스이기 때문에 JPA를 사용하기 위해선 ORM 프레임워크를 사용해야함 🤔 Hi..
2021.07.02 -
코배스 Part2 : chapter 06
💬 @Controller 파라미터가 자동으로 수집되는 기능! 매번 request.getParameter("~~")를 이용하는 불편함을 없앨 수 있다. 파라미터를 수집할 때 자동으로 타입을 변환해서 처리한다. 자동으로 Bean으로 등록된다. 📕 파라미터의 수집 @Controller @RequestMapping("/sample/*") @Log4j public class SampleController { // 여러개의 Method 요청을 받고 싶을 때 // http://localhost:8080/sample/basic @RequestMapping(value = "/basic", method = { RequestMethod.GET, RequestMethod.POST }) public void basicGet()..
2021.03.26