Spring에서 HttpMessageConverter는 Http Request, Response에서 데이터타입인 Json, xml 등을 Java Bean으로 변환하거나 그 반대인 Java Bean을 Json, Xml로 변환하는 역할을 한다. 1. 언제, 어떤 용도로 사용할까? Client와 Server 환경을 생각해보자. Client는 Server 구성 환경에 대해 알 필요가 있을까? Server를 구현한 프로그래밍 언어가 C, JAVA, 혹은 파이썬 등 특정 프로그래밍 언어에 맞게 Request 요청을 해야한다면 굉장히 Client와 Server간의 의존도가 높은 어플리케이션이라고 볼 수 있다. 그래서 현재 통용되고 있는 JSON 타입으로 Client와 Server간의 의사소통을 통해 Serverles..
Spring Jpa Data의 JpaRepository와 결합된 CustomRepository를 만드는 방법과 구현해보면서 마주했던 문제들에 대해 정리한다. 1. CustomRepository 보통 Spring Data Jpa 사용할 경우 JpaRepository를 상속받아서 사용한다. CustomRepository를 생성 하기전에는 xxxRepository가 JpaRepository를 상속받는 구조이다. 여기서 Spring Data Jpa가 제공하는 Query method 이외에도 Custom한 Repository를 추가하고 싶을 경우, 사용자가 직접 query문을 만들어서 사용할 때가 필요하다. 위의 클래스다이어그램 처럼 하나의 CustomRepository Interface를 만들고 그 인터페이스를..
1편에서는 간단한 RootApplicationContext와 WebApplicationContext를 설정하였다면, JPA 설정기반과 Transaction 설정 위주로 진행하겠다. 1. JdbcTemplate Transaction 설정 지난 포스터에서는 Transaction 설정이 빠져있어 기본적인 JdbcTemplate에 Transaction 설정부터 먼저 하겠다. @Configuration @EnableTransactionManagement public class JdbcTemplateConfiguration { @Bean public NamedParameterJdbcTemplate jdbcTemplate(DataSource dataSource){ NamedParameterJdbcTemplate jd..
기존에는 xml방식으로 Spring 프로젝트를 만들었다. 익숙한 xml 설정은 대략적인 흐름도에 대한 이해만 있었고, 그 내부에 어떤 식으로 환경들을 구성하고 조립되는지에 대해 더 깊은 고민은 해보지 않았던 것 같았다. 이번 Java Code로 Spring 설정을 통해 Spring의 ServletContext 구조에 대해 조금 더 이해하기 위하여 해당 실습예제를 준비하였다. 1. RootApplicationContext / WebApplicationContext Java 코드로 Spring을 설정하기 전에 먼저 이해해야하는 부분은 RootApplicationContext와 WebApplicationContext이다. 처음에는 이 두 개의 용어가 Spring의 특별한 것을 일컫는줄 알았다. 특별한 기술용어..
근래에 테스트코드의 중요성을 많이 느끼고, 실무에서 테스트가 왜 필요한지 피부로 느껴서 그런지 2장 테스트는 부담없이 잘 읽혀져 나아갔다. 국비학원에서 UnitTest를 진행하였지만, 간단한 CRUD를 통한 UnitTest만 확인하고 계속 구현과정에만 급급했는데, 그때 2장 테스트를 읽었더라면 어땠을까라는 생각이 든다. 2장 테스트에서 언급한 것 중 "학습 테스트로 배우는 스프링"이라는 소제목이 있는데, 간단한 예제로 설명이 곁들어져 있다. 이 글을 보면서, 당장 급급하게 어떤걸 만들어봐야지라고 생각하고 이것저것 만드는 것보다는 테스트를 통해서 어떻게 돌아가는지 왜 그런지 단락별로 알 수 있는 점은 개발의 한 재미 한 재미요소라는 생각이 든다. 만약, 아직 테스트를 통한 개발을 한 경험이 없는 분들에게는..
- 목차 1. 개발서적 선정이유 2. 무엇을 배웠으며, 느낀점(1장 기준) 3. 정리 1. 개발서적 선정이유 국비학원에서 막 스프링을 배우기 시작한 시절, 반에 한 친구가 강사님께 스프링과 관련된 책 하나만 추천해 주실수 있냐고 요청을 하였다. 강사님께선 토비의 스프링을 읽고 굉장히 감명 깊게 읽었다는 말씀을 하셨었고, 이 계기로 나의 첫 개발서적은 토비의 스프링 3.1(Vol.1)이 되었다. 그때 당시 개발에 대한 지식이 부족하여, 강사님의 스프링 강의에 대해 제대로 흡수를 하지 못하였고, 토비의 스프링 제 1장조차 이해하지 못하여 독서를 포기하였다. 이후, 스프링 프로젝트 설정과 설정 후 오류에 대한 대응책은 익숙해졌지만, 개발환경에 대해 과연 내가 제대로 이해하고 있는가? 라는 생각이 들었다. 개발..
1. OAuth는 무엇인가요? OAuth가 사용되기 전에는 각 사의 개발방식에 따라 인증방식을 통해 인증하고 권한을 부여하는 API서비스를 제공하고 있었습니다. OAuth는 이렇게 제각각인 인증방식을 표준화한 인증방식입니다. OAuth를 이용하면 이 인증을 공유하는 애플리케이션끼리는 별도의 인증이 필요없습니다. 따라서 여러 애플리케이션을 통합하여 사용하는 것이 가능하게 됩니다. 아래의 예제를 통해 살펴보겠습니다. 인프런의 회원가입 화면입니다. '구글, 페이스북, 깃허브 가입' 방식으로 회원가입하는 서비스를 OAuth라 할 수 있습니다. 별도의 아이디나 비밀번호 입력없이 구글, 페이스북 등이 구현한 OAuth를 이용하여 인증 후 회원가입이 완료 될 수 있습니다. 위의 OAuth 회원가입 Flow를 나열하면..
1. What, 메시지 지향 미들웨어란? 1.1 미들웨어는 무엇인가요? - 애플리케이션들을 연결해 이들이 서로 데이터를 교환할 수 있게 해 주는 소프트웨어 1.2 메시지 지향(=메세징 시스템)은 무엇인가요? - 메시지API를 통해 각 분산되어 있는 어플리케이션간의 다리역할을 함으로써 데이터를 교환할 수 있도록 하는 시스템 1.3 고로, 메세지 지향 미들웨어란? - 메시지를 통해 여러 분산되어 있는 시스템 간의 Connector 역할로 결합성을 낮추고, 이들이 서로 실시간 비동기식 데이터를 교환할 수 있도록 하는 소프트웨어 [MoM 구조] 1.4 메시지 전달방식 Message Queue 기반 패턴 발행(Publish)-구독(Subscribe) 메세지 패턴 01. Message Queue 기반 패턴 - 메세..