일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
- 톰캣
- Spring Data JPA
- spring jpa
- static inner class
- spring boot
- Spring Batch
- spring boot tomcat
- IntelliJ
- JPA
- Data REST
- batch
- JPA mapping
- JUnit
- spring pid
- REST API
- tomcat
- ApplicationPidFileWriter
- spring batch 코드
- Spring Data REST
- spring-webmvc
- ORM
- spring camp
- spring-webmvc #코드읽기
- SuperTypeToken
- docker
- spring-mvc
- 코드 리뷰
- spring bean
- 세미나
- Spring
- Today
- 1
- Total
- 916,386
목록net.woniper.java (163)
woniper
발표자료 Booting Spring Data REST Spring Data REST 예제 Spring Data REST #1 Introduction Spring Data REST #2 동작 원리 Spring Data REST #3 내부 동작 Introduction에서 Spring Data REST에 대한 간단한 소개와 사용방법을 알아봤다. Spring Data에서 제공하는 Repository interface 선언만으로 REST API가 만들어졌다. 어떻게 Repository 선언만으로 REST API가 제공될까? 위 그림은 발표 장표 중 하나다. CrudRepository에 선언된 메소드가 곧 REST API로 지원되는 것이다. @RepositoryRestResource public inte..
발표자료 Booting Spring Data REST Spring Data REST 예제 Spring Data REST #1 Introduction Spring Data REST #2 동작 원리 Spring Data REST #3 내부 동작 Spring Camp 2017에서 Spring Data REST를 소개하는 발표를 했는데, 45분이라는 시간으로 Spring Data REST(이하 Data REST)를 모두 전달하기에는 짧은 시간이다. 그래서 블로그를 통해 좀 더 많은 내용을 전달하려고 한다. Introduction Spring Data REST 레퍼런스 문서에서 REST API는 애플리케이션 통합에서 중요한 수단이고, Spring MVC를 통해 쉽게 만들 수 있지만, 간단한 REST A..
Spring Camp 연사로 올해 Spring Camp 2017은 KSUG 10주년으로 Spring Camp 역사상 가장 크게 열렸다. 이틀 동안 진행되며, 참석자도 하루 500명씩 총 1000명이다. 작년은 못 갔지만, 올해는 꼭 가야겠다고 생각하고 있던 와중에 연사 모집 글도 올라왔다. 이 글을 쓰면서 다시 보니 모집 글이 꽤 빨리 올라왔다. (2016년 11월이니..) 나는 어떻게 연사가 됐을까? 개발을 시작하면서 경력 5년 차가 되기 전에 몇 가지 하고 싶은 게 있었다. (올해 4년 차) 그중 하나가 발표였다. 사실 SLiPP에서 영속성 컨텍스트로 보는 JPA 발표를 했었다. 이번이 두 번째 발표지만, 난생 처음 하는 기분이었다. 나는 2017년 1월에 우아한형제들로 입사하게 됐다. KSUG 큰 ..
Spring Tips: The Spring Framework *Utils Classes 를 보고 정리하면 좋겠다고 생각했다. 전체 예제 DemoClass @Data @Slf4j @AllArgsConstructor @NoArgsConstructor public class DemoClass { private List list = new ArrayList(); @PostConstruct public void begin() { log.info("begin"); } } org.springframework.util.Assert @Test public void assertIsNull() throws Exception { demoClass.setList(null); Assert.isNull(demoClass.getLi..
무거운 주제지만 쉽게 풀어 독자에게 전달하는 책이다. 예전에 도메인 주도 설계 라는 유명한 책을 읽었는데 처음부터 너무 어렵다는 생각이 들어 중간에 포기했다.하지만 DDD Start!는 DDD에 나오는 용어(Aggregate, Entity, Repository 등)를 쉽게 풀어서 전달한다. 그리고 DDD가 JPA와 얼마나 잘 어울리는 기술인지 알 수 있는 내용이 담겨져있고 이를 활용할 수 있는 내용이 있어 쉽게 와닿는다. 물론 JPA를 조금은 알고 있는 상태에서 읽어서 더 쉽게 다가왔을 수도 있다.눈에 쏙쏙 들어오게 잘 읽히고 예제 또한 주문 도메인을 선택해 너무 어렵지도 너무 쉽지도 않은 예제를 선사한다.나는 이 책을 한두 번 더 읽고 다시 한번 도메인 주도 설계 읽기를 도전할 생각이다. 올해는 객체지..
REST API에서 자원(Resource)은 client에게 표현할 수 있는 수단이다. 이 자원을 표현할 수 있는 설계가 잘못된다면 REST API에 이점도 사라진다. 그만큼 설계도 어렵다는 뜻이다. 자원을 이야기하며 빼놓을 수 없는 게 바로 Metadata라고 생각한다. wiki에서는 Metadata를 이렇게 말한다. 데이터의 데이터. 어떤 목적을 가지고 만들어진 데이터. 데이터의 데이터라는 뜻은 무엇일까? 사진을 예로 들어보자. 스마트폰을 이용해서 사진을 찍으면 그 사진에 대한 파일이 생성된다. 그 파일의 크기(용량), 생성날짜와 시간(사진을 찍은 날짜와 시간), pixel, 등 여러 가지 그 사진 파일을 표현할 수 있는 데이터가 있을 것이다. 바로 이것이 사진의 Metadata라고 할 수 있다. 그..
여러 권에 TDD 책을 보진 못했지만, 지금까지 봐왔던 책과는 조금은 다르다. 제목 그대로 TDD에 대한 오해와 진실을 말하고 있다. 가볍게 보기 위해 샀는데, 주제 자체는 생각을 많이 하게 되는 주제다. 이 책에 주제인 "오해"와 "진실"에 대해서 저자에 생각(주장)이 담겨있는 책이고, 공감 가는 내용도 많다. TDD를 하며 의문을 품었던 부분을 설명한 부분도 좋다. 하지만 "오해"와 "진실"만 알아서는 TDD를 여전히 잘하기는 어렵다.한 개발자 선배가 해준 말이 떠오른다. "토할 때까지 하면 된다." 실제로 TDD를 이야기하며 내게 해준 말이다. 잘하기 위해서는 실제로 (토할 때까지) 해봐야 실력이 는다.
Bean Scope를 좀 살펴보다가 아래와 같은 테스트를 돌려보았다. @Configuration public class BeanScopeConfig { @Bean public AccountService accountService() { AccountService accountService = new AccountService(); accountService.setAccountRepository(accountRepository()); return accountService; } @Bean @Scope(scopeName = "prototype") public AccountRepository accountRepository() { return new AccountRepository(); } } public c..
앞서 bean 등록(registry)과 getBean 메소드 호출 과정을 살펴보았다. 간단하게 다시 정리해보자면 bean 등록 : 메타데이터를 통해 BeanDefinition을 Map에 저장한다. getBean 처음 호출 GenericBeanDefinition을 RootBeanDefinition으로 재 정의 후 Map에 저장 bean instance 생성 후 Map에 저장 후 반환 2번 이상 호출 Map에 bean instance 꺼내와 반환 예제로 설명한 AnnotationConfigApplicationContext는 DefaultListableBeanFactory를 통해 대부분에 기능을 위임하고 있는 것을 확인했다. 그렇다면 BeanFactory와 ApplicationContext는 무엇일까? 이번 ..
Spring IoC Container를 까보자 #Bean 등록은 어떻게 될까? 라는 글에서 IoC Container인 BeanFactory와 ApplicationContext에서 어떻게 Bean을 등록하고 보관하는지 알아보았다. 이번 글에서는 등록된 Bean 정확히 말하면 BeanDefinition을 어떻게 instance 화 후 반환 하는지 알아보자. getBean 메소드의 정체 @Configuration public class BeanConfig { @Bean public AccountService accountService() { AccountService accountService = new AccountService(); accountService.setAccou..
Spring에서 IoC Container 역할을 하는 BeanFactory 와 ApplicationContext 동작 방법이 궁금했다. 작년 SLiPP에서 스터디를 했었는데, 다시 한번 블로그에 정리하려 한다. 스프링 구조 일단 스프링에서 BeanFactory와 ApplicationContext의 다이어그램을 보자. 사실 스프링 구조를 잘 이해하지 못하고 다이어그램만 보고는 각각의 interface와 class가 어떤 역할을 하는지 도통 알 수 없다. 핵심은 BeanFactory와 ApplicationContext다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BeanConfig.class); Annotat..
책 검색 서비스를 만들기 위해서 책 검색 API를 찾던 중 네이버 검색 API를 발견했다. 검색 API는 여러 종류에 검색 API를 제공하고 그 중 책 검색 API를 예제로 설명할 것이다. 사실 URL만 다르지 검색 API 모두 xml, json 구조는 모두 동일하고 아래와 같다. 예제 소스검색 API 문서 XML : 기본 검색1234567891011121314151617181920212223 Naver Open API - book ::'주식' http://search.naver.com Naver Search Result Mon, 26 Sep 2016 10:40:35 +0900 20177110 불곰의 주식투자 불패공식 (60개 매도종목 평균 수익률 62%) http://openapi.naver.com/l..